diff --git a/src/wp-content/themes/lqdvi/archive.php b/src/wp-content/themes/lqdvi/archive.php index b613cd8f..edb4697b 100644 --- a/src/wp-content/themes/lqdvi/archive.php +++ b/src/wp-content/themes/lqdvi/archive.php @@ -172,7 +172,7 @@ if (have_posts()) : while (have_posts()) : the_post();

- - . + .     diff --git a/src/wp-content/themes/lqdvi/blog.php b/src/wp-content/themes/lqdvi/blog.php index 61ba0e26..7a955816 100644 --- a/src/wp-content/themes/lqdvi/blog.php +++ b/src/wp-content/themes/lqdvi/blog.php @@ -207,7 +207,7 @@ if (have_posts()) : while (have_posts()) : the_post();
-

+

@@ -216,7 +216,7 @@ if (have_posts()) : while (have_posts()) : the_post();

- - . + .     diff --git a/src/wp-content/themes/lqdvi/category-recomendamos.php b/src/wp-content/themes/lqdvi/category-recomendamos.php new file mode 100644 index 00000000..5c8966fc --- /dev/null +++ b/src/wp-content/themes/lqdvi/category-recomendamos.php @@ -0,0 +1,176 @@ + +
+
+
+

+
+
+
+
+ + +
+
+ + +

+ + + + + + + + + +
+ + +
+
+
+ + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/category.php b/src/wp-content/themes/lqdvi/category.php index 43704de4..ff94d6ee 100644 --- a/src/wp-content/themes/lqdvi/category.php +++ b/src/wp-content/themes/lqdvi/category.php @@ -138,7 +138,7 @@ if (have_posts()) : while (have_posts()) : the_post();
-

+

@@ -147,7 +147,7 @@ if (have_posts()) : while (have_posts()) : the_post();

- - . + .     diff --git a/src/wp-content/themes/lqdvi/css/lqdvi.css b/src/wp-content/themes/lqdvi/css/lqdvi.css index a3fa3ea9..5d8f178b 100644 --- a/src/wp-content/themes/lqdvi/css/lqdvi.css +++ b/src/wp-content/themes/lqdvi/css/lqdvi.css @@ -4,7 +4,7 @@ body { p, li { text-align: justify; - + } pre, code, tt @@ -20,25 +20,67 @@ pre, code, tt } #footer { - background-color: #000; + background-color: #fff; + margin-top: 0 !important; } -body.home #footer, body.home #copyright { +body.home #footer, #copyright { background-color: #fff; } +#footer #logos_apoyos { + margin: auto; + width: 860px; + height: 200px; + color: #37A3DE +} + +#footer #logos_apoyos a, +#footer #logos_apoyos h2 { + color: #37A3DE; + text-align: center; +} + +#footer #logos_apoyos h2 { + margin-bottom: 10px; +} + +#footer #logos_apoyos h2 a { + color: #37A3DE; +} + +#footer #logos_apoyos .caroufredsel_wrapper { + width: 860px !important ; +} + +#footer #logos_apoyos ul#logo_slider { + margin: 0; + float: left; + height: 120px; + list-style: none outside none; +} + +#footer #logos_apoyos ul#logo_slider li { + display: inline-block; + float: left; + height: 120px; + margin-right: 20px; + width: auto; + display: none; +} + #header_wrapper { - background: #0077D4; /* url('../images/featuredbg.jpg') no-repeat top ;*/ - height: 192px; - border-bottom: 2px solid #001623; + background: #0077D4; /* url('../images/featuredbg.jpg') no-repeat top ;*/ + height: 192px; + border-bottom: 2px solid #001623; } .page_caption { - background: transparent; - border: none; - padding-top: 0; - padding-bottom: 0; - font-weight: normal; + background: transparent; + border: none; + padding-top: 0; + padding-bottom: 0; + font-weight: normal; } .page_caption h1 { @@ -62,19 +104,18 @@ body.home #footer, body.home #copyright { margin: 0 50px 8px 0; } -#top_bar -{ - background: #004971; +#top_bar { + height: 192px; + position: relative; } #welcome_msg { } -#welcome_msg h1 -{ - font-size: 36px; - font-weight: bold; +#welcome_msg h1 { + font-size: 36px; + font-weight: bold; } #welcome_msg p { @@ -83,105 +124,203 @@ body.home #footer, body.home #copyright { margin-bottom: 15px; } + +#topbar_wrapper { + height: 100px; + float: right; + width: 770px; +} + +#topbar_wrapper #topbar_contact { + float: right; + margin-top: 25px; + text-align: right; + line-height: 100%; + width: 100%; +} + +#topbar_wrapper #topbar_contact h1 { + color: #fff; + font-size: 34px; + font-weight: normal; + margin: -20px 0 0; + padding: 0; + letter-spacing: -1px; +} + +#topbar_wrapper #topbar_contact .icons { + float: right; +} + +#topbar_wrapper #topbar_contact .icons .icon { + margin-left: 6px; +} + +#topbar_wrapper #topbar_contact a, #topbar_wrapper #topbar_contact a:visited, #topbar_wrapper #topbar_contact a:active { + color: #E5F1F8; + font-weight: normal; +} + +#topbar_wrapper #topbar_qtranslate { + float: right; + margin-top: 5px; + margin-right: 5px; + text-align: right; + line-height: 100%; + display: block; + width: 100%; +} + +#topbar_wrapper #topbar_qtranslate ul li { + list-style: none; + display: inline; + float: right; + margin-left: 8px; +} + +#topbar_wrapper #topbar_search { + float: right; + margin-top: 20px; + margin-right: 5px; + text-align: right; + line-height: 100%; + height: 30px; + display: block; + width: 100%; +} + +#topbar_wrapper #topbar_search .field { + background: url("../images/search-dark.png") no-repeat 10px 6px #E5F1F8; + border: 0; + color: #001623; + width: 150px; + padding: 6px 15px 6px 35px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset; + -webkit-transition: all 0.7s ease 0s; + -moz-transition: all 0.7s ease 0s; + -o-transition: all 0.7s ease 0s; + transition: all 0.7s ease 0s; +} + +#topbar_wrapper #topbar_search .field:focus { + width: 200px; +} + +#topbar_wrapper #topbar_search .icon { + display: none; +} + #menu_wrapper { - padding: 95px 10px 3px 0; + padding: 0; + width: 100%; + bottom: 15px; + right: 0; + position: absolute; } #menu_wrapper .nav ul, #menu_wrapper div .nav { - list-style: none; - display: block; - padding: 8px 0 0 0; - float: right; - text-transform: lowercase; - font-size: 23px; + list-style: none; + display: block; + padding: 0; + float: right; + text-transform: lowercase; + font-size: 32px; } #menu_wrapper .nav ul li, #menu_wrapper div .nav li { - display: block; - float :left; - margin: 0 0 0 0; + display: block; + float :left; + margin: 0 0 0 32px; +} + +#menu_wrapper .nav li ul.sub-menu li { + margin: 8px 0; } #menu_wrapper .nav ul li a, #menu_wrapper div .nav li a { - display: block; - padding: 8px; - margin: 20px 0 0 0; - color: #fff; + display: block; + padding: 8px; + letter-spacing: -1px; + margin: 0; + color: #fff; } #menu_wrapper .nav ul li a.hover, #menu_wrapper .nav ul li a:hover, #menu_wrapper div .nav li a.hover, #menu_wrapper div .nav li a:hover { - color: #000; - background-color: #37A3DE; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; + color: #000; + background-color: #37A3DE; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; } #menu_wrapper div .nav li.current-menu-item a { - color: #000; + color: #000; } #menu_wrapper .nav ul li ul, #menu_wrapper div .nav li ul { - display: none; - list-style: none; - background: #37A3DE; - box-shadow: none; - border: none; - position:absolute; - float: none; - padding: 3px 0 5px 0; - width: 200px; - z-index: 1000; - margin-top: -33px; - padding-bottom: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - font-size: 18px; + display: none; + list-style: none; + background: #37A3DE; + box-shadow: none; + border: none; + position:absolute; + float: none; + padding: 3px 0 5px 0; + width: 200px; + z-index: 1000; + margin-top: -33px; + padding-bottom: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + font-size: 18px; } #menu_wrapper .nav ul li:hover ul, #menu_wrapper div .nav li:hover ul { - display: block; + display: block; } #menu_wrapper .nav ul li ul li ul, #menu_wrapper div .nav li ul li ul { - margin-left: 190px; - margin-top: -43px; + margin-left: 190px; + margin-top: -43px; } #menu_wrapper .nav ul li ul li, #menu_wrapper div .nav li ul li { - clear: both; - width: 200px; + clear: both; + width: 200px; } #menu_wrapper .nav ul li ul li:last-child, #menu_wrapper div .nav li ul li:last-child { - margin-bottom: 7px; + margin-bottom: 7px; } #menu_wrapper div .nav li ul li a, #menu_wrapper div .nav li.current-menu-item ul li a, #menu_wrapper div .nav li ul li.current-menu-item a,#menu_wrapper .nav ul li ul li a, #menu_wrapper .nav ul li.current-menu-item ul li a, #menu_wrapper .nav ul li ul li.current-menu-item a { - color: #fff; - display: block; - width: 100%; - line-height: 18px; - padding: 0px 7px 0 17px; - border: 0; - background: transparent; + color: #fff; + display: block; + width: 100%; + line-height: 18px; + padding: 0px 7px 0 17px; + border: 0; + background: transparent; } #menu_wrapper .nav ul li ul li a, #menu_wrapper div .nav li ul li a { - width: 170px; - display: block; + width: 170px; + display: block; } #menu_wrapper .nav ul li ul li a.hover, #menu_wrapper .nav ul li ul li a:hover, #menu_wrapper div .nav li ul li a.hover, #menu_wrapper div .nav li ul li a:hover @@ -190,9 +329,10 @@ body.home #footer, body.home #copyright { .logo { - margin: 13px 0 0 -95px; + margin: 5px 0 0 0; overflow: visible; - width: 0; + width: 0; + display: block; } #content_wrapper { @@ -214,19 +354,19 @@ body.home #footer, body.home #copyright { #content_wrapper, .content_bg, #content_wrapper.content_bg { - background: #fff; - text-shadow: none; /*0 1px 1px #003756;*/ + background: #fff; /*#E5F1F8;*/ + text-shadow: none; /*0 1px 1px #003756;*/ } body.home div.content_bg { - background: #000; + background: #000; } h1, h2, h3, h4, h5, .sidebar_content h1, .sidebar_content h2, .sidebar_content h3, .sidebar_content h4, .sidebar_content h5, .sidebar_content h6 { - text-shadow: none; /*0 1px 1px #003756;*/ - font-weight: normal; - line-height: 120%; + text-shadow: none; /*0 1px 1px #003756;*/ + font-weight: normal; + line-height: 120%; } #content_wrapper .sidebar .content .sidebar_widget li ul.twitter li, #footer .sidebar_widget li ul.twitter li, ul.twitter li @@ -236,87 +376,87 @@ h1, h2, h3, h4, h5, .sidebar_content h1, .sidebar_content h2, .sidebar_content h #content_wrapper .inner .inner_wrapper .sidebar_wrapper { - border-left: 1px solid #37A3DE; + /*border-left: 1px solid #37A3DE;*/ } #anything_slider .arrow.forward { - background: transparent; + background: transparent; } #anything_slider .arrow.back { - background: transparent; + background: transparent; } .nivo-prevNav { - background: transparent; + background: transparent; } .nivo-nextNav { - background: transparent; + background: transparent; } .roundabout-moveable-item { - background: #000; - border: 1px solid #37A3DE; - -webkit-box-shadow: 1px 1px 5px #000; - -moz-box-shadow: 1px 1px 5px #000; - box-shadow: 1px 1px 5px #000; + background: #000; + border: 1px solid #37A3DE; + -webkit-box-shadow: 1px 1px 5px #000; + -moz-box-shadow: 1px 1px 5px #000; + box-shadow: 1px 1px 5px #000; } img.frame { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } .frame_left { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } .frame_left .caption, .frame_right .caption, .frame_center .caption { - /*color: #ccc;*/ + /*color: #ccc;*/ } .frame_right { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } .frame_center { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } #content_wrapper .sidebar .content .posts.blog li img, #content_wrapper .posts.blog li img { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } input[type=text], input[type=password], select { - border: 1px solid #37A3DE; - color: #fff; + border: 1px solid #37A3DE; + color: #fff; } input[type=text].blur { - color: #fff; + color: #fff; } textarea { - color: #fff; - border: 1px solid #37A3DE; + color: #fff; + border: 1px solid #37A3DE; } input[type=text]:hover, input[type=password]:hover, textarea:hover { - border: 1px solid #fff; - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; + border: 1px solid #fff; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; } input[type=text], input[type=password], select, textarea @@ -346,7 +486,7 @@ input[type=submit], input[type=button], a.button margin:0; font-size: 14px; font-weight: bold; - color: #555; + /*color: #555;*/ } .post_header h3 a { @@ -358,7 +498,7 @@ input[type=submit], input[type=button], a.button } .post_img img { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } .post_img img.frame { @@ -367,44 +507,49 @@ input[type=submit], input[type=button], a.button .post_img_date { - background: #000; - color: #fff; - text-shadow: none; /*0 0 0 #003756;*/ + background: #000; + color: #fff; + text-shadow: none; /*0 0 0 #003756;*/ } #respond { - border-bottom: 1px solid #37A3DE; + border-bottom: 1px solid #37A3DE; } #about_the_author { - border-bottom: 1px solid #37A3DE; + border-bottom: 1px solid #37A3DE; } .related_posts { - border-bottom: 1px solid #37A3DE; + border-bottom: 1px solid #37A3DE; } #about_the_author .thumb img { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } .comment .left img.avatar { - border: 1px solid #37A3DE; - background: #000; + border: 1px solid #37A3DE; + background: #000; } -.portfolio1_hover, .portfolio2_hover, .portfolio3_hover, .portfolio4_hover +.portfolio1_hover, .portfolio2_hover, .portfolio3_hover, .portfolio4_hover, .portfolio5_hover { - background: transparent; + background: transparent; } .one_third .portfolio_image { height: 232px; + text-align: center; +} + +.one_third .portfolio_desc { + text-align: center; } .portfolio3_hover img { @@ -415,8 +560,12 @@ input[type=submit], input[type=button], a.button margin: 8px 0; } +.portfolio_desc > p { + text-align: center; +} + #searchform { - margin-bottom: 0; + margin-bottom: 0; } #content_wrapper .sidebar .content .sidebar_widget li ul li { @@ -425,122 +574,122 @@ input[type=submit], input[type=button], a.button #content_wrapper table { - border: 1px solid #37A3DE; - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; + border: 1px solid #37A3DE; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; } #content_wrapper table tr { - background: #000; + background: #000; } #content_wrapper table tr td, #content_wrapper table tr th { - border-bottom: 1px solid #37A3DE; + border-bottom: 1px solid #37A3DE; } #content_wrapper table tr th { - font-weight: bold; - background: #37A3DE; - text-align: left; - text-shadow: none; /*0 1px 1px #003756;*/ - color: #fff; + font-weight: bold; + background: #37A3DE; + text-align: left; + text-shadow: none; /*0 1px 1px #003756;*/ + color: #fff; } .pagination a { - background: #222; - border: 1px solid #37A3DE; - color: #ccc; - text-shadow: none; /*0 1px 1px #003756;*/ + background: #222; + border: 1px solid #37A3DE; + color: #ccc; + text-shadow: none; /*0 1px 1px #003756;*/ } .pagination a:hover { - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; - border: 1px solid #37A3DE; - background: #37A3DE; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; + border: 1px solid #37A3DE; + background: #37A3DE; } .pagination a:active, .pagination a.active { - color: #fff; - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; - border: 1px solid #37A3DE; - background: #37A3DE; + color: #fff; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; + border: 1px solid #37A3DE; + background: #37A3DE; } .accordion { - border: 1px solid #37A3DE; - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; + border: 1px solid #37A3DE; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; } .ui-accordion .ui-accordion-header { - background: #333; + background: #333; } .ui-accordion .ui-accordion-header a { - color: #fff; + color: #fff; } .accordion div { - border-top: 1px solid #37A3DE; + border-top: 1px solid #37A3DE; } .ui-widget-header { - border-bottom: 1px solid #37A3DE; + border-bottom: 1px solid #37A3DE; } .tabs .ui-state-default a { - color: #ccc; + color: #ccc; } .tabs .ui-state-active, .tabs .ui-state-default { - background: #000; - text-shadow: 0 1px 1px #003756; - border: 1px solid #37A3DE; + background: #000; + text-shadow: 0 1px 1px #003756; + border: 1px solid #37A3DE; } .tabs .ui-tabs-panel { - border: 1px solid #37A3DE; - -moz-box-shadow: 0 1px 3px #000; - -webkit-box-shadow: 0 1px 3px #000; - box-shadow: 0px 1px 3px #000; - background: #000; + border: 1px solid #37A3DE; + -moz-box-shadow: 0 1px 3px #000; + -webkit-box-shadow: 0 1px 3px #000; + box-shadow: 0px 1px 3px #000; + background: #000; } .tabs .ui-state-active a { - color: #fff; + color: #fff; } hr { - border-top: 1px solid #37A3DE; + border-top: 1px solid #37A3DE; } .line_shadow { - height: 1px; + height: 1px; } #content_wrapper .sidebar .content .sidebar_widget li ul.flickr li img, #footer .sidebar_widget li ul.flickr li img { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } #footer { @@ -551,12 +700,12 @@ hr #footer ul{ font-size: 13px; padding-top: 0px; - padding-bottom: 50px; + padding-bottom: 0px; } #footer .posts.blog li img { - border: 1px solid #37A3DE; + border: 1px solid #37A3DE; } #copyright { @@ -570,7 +719,7 @@ hr #footer ul li.widget .widgettitle { - margin-bottom: 8px; + margin-bottom: 8px; } .img_shadow_536, .img_shadow_360, .img_shadow_220, .img_shadow_160 { @@ -598,7 +747,7 @@ hr } div.wpcf7 .watermark { - color: #fff !important; + color: #fff !important; } .captura { @@ -640,7 +789,7 @@ li.gce-feed-1 { #content_wrapper table tr { - background: none; + background: none; } .home-qtranslate-chooser { @@ -665,22 +814,31 @@ li.gce-feed-1 { .slideshow { height: 171px; width: 355px; margin: auto } +ul.ser-socio-amigo { + height: 155px; +} + +ul.ser-socio-amigo li { + border: 0 !important; +} + + .ser-socio { - background: url(../images/ser-socio.png) no-repeat; - width: 250px; + background: url(../images/ser-socio-3.png) no-repeat; + width: 200px; height: 0; - padding-top: 196px; + padding-top: 155px; overflow: hidden; z-index: 100; position: relative; display: block; - top: -240px; - left: -5px; + top: 0px; + left: 15px; } .ser-amigo { - background: url(../images/ser-amigo.png) no-repeat; - width: 250px; + background: url(../images/ser-amigo-2.png) no-repeat; + width: 200px; height: 0; padding-top: 196px; overflow: hidden; @@ -688,9 +846,23 @@ li.gce-feed-1 { position: relative; display: block; top: -70px; - left: 225px; + left: -30px; } +.suscribete { + background: url(../images/suscribete-2.png) no-repeat; + width: 200px; + height: 0; + padding-top: 196px; + overflow: hidden; + z-index: 99; + position: relative; + display: block; + top: 185px; + left: 15px; +} + + .wp_bannerize { margin-top: 25px; } @@ -719,3 +891,161 @@ li.gce-feed-1 { .gform_wrapper h2.gsection_title, .gform_wrapper .gsection_description, .gform_wrapper h3.gform_title { font-size: 18px!important; } + + +.qtrans_flag { + height: 24px !important; + width: 24px !important; +} + +#content p.rtw_main, p.rtw_main, div.rtw_main { + color: #555; +} + +.rotatingtweet p.rtw_main { + text-align: left; + font-size: 80%; +} + +.event_title { + padding-left: 0 !important; +} + +#content_wrapper .event_description .posts li strong a { + font-weight: bold !important; +} + +#content_wrapper .event_description .posts li img, +#content_wrapper.congreso .posts li img { + width: 100px !important; + height: 100px !important; +} + +#content_wrapper .event_description .posts li p { + margin-top: 0 !important; + margin-bottom: 0 !important; + width: 100% !important; +} + +#content_wrapper .event_description h2, +#content_wrapper .event_description h3, +#content_wrapper .event_description h4 { + margin-top: 10px !important; + margin-bottom: 5px !important; +} + +#content_wrapper .event_description p { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +#content_wrapper .event_description a { + font-weight: bold !important; +} + + +.apoyos .post_img img { + border: 0px !important; + width: 160px !important; + height: 160px !important; +} + + +#content_wrapper.content_bg .sidebar_content .widget_tweetblender { + width: 650px !important; + background: #E5F1F8; + padding: 10px; + font-size: 12px; +} + +.widget_tweetblender .tb_author a { + color: #0077D4 !important; +} + +.widget_tweetblender .tb_msg { + color: #333; +} + +.widget_tweetblender .tb_tweet-info a { + color: #37A3DE; +} + +.widget_tweetblender .tb_tweet { + padding: 0 10px !important; + border-top: 0 !important; + margin: 10px 0 15px 0; +} + +.proyectos .one_third { + min-height: 500px; + height: 500px; +} + +#suscripcion { + background: url("http://boletin.loquedeverdadimporta.org/images/bocadillo.png") no-repeat scroll left top transparent; + float: right; + height: 196px; + overflow: hidden; + width: 250px; +} + + +#suscripcion p { + float: right; + font-size: 13px; + margin: 0; + padding: 0; + width: 200px; +} + +#suscripcion label { + color: #FFFFFF; + display: block; + margin-left: 70px; + margin-top: 55px; +} +#suscripcion input { + color: #666666; + font-size: 13px; + font-style: italic; + height: 25px; + line-height: 25px; + margin-left: 70px; + margin-top: 15px; + padding-left: 3px; + padding-right: 3px; + width: 155px; +} +#suscripcion a.btn { + background: url("http://boletin.loquedeverdadimporta.org/images/btn.png") no-repeat scroll left top transparent; + color: #fff !important; + display: block; + float: right; + font-size: 13px; + font-weight: normal; + height: 24px; + left: -6px; + line-height: 24px; + margin-right: 20px; + margin-top: 10px; + padding: 0 8px; + position: relative; + text-decoration: none; + top: 0; +} +#suscripcion a.btn:hover { + background-position: left bottom; +} +#suscripcion a.btn span { + background: url("http://boletin.loquedeverdadimporta.org/images/btn.png") no-repeat scroll right top transparent; + display: block; + height: 24px; + line-height: 24px; + position: absolute; + right: -1px; + top: 0; + width: 8px; +} +#suscripcion a.btn:hover span { + background-position: right bottom; +} \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/css/screen.css b/src/wp-content/themes/lqdvi/css/screen.css index c2ded399..76b8258b 100644 --- a/src/wp-content/themes/lqdvi/css/screen.css +++ b/src/wp-content/themes/lqdvi/css/screen.css @@ -101,7 +101,7 @@ hr { width: 100%; margin: -9px 0 0 0; - padding: 20px 0 0 0; + padding: 0; margin-top:1px; border-top: 2px solid #444; background: #222; @@ -721,7 +721,7 @@ body.home #top_bar padding: 0; border-top:2px solid #444; border-bottom:2px solid #444; - display:none; + /*display:none;*/ } /* @@ -832,7 +832,7 @@ body.home #top_bar .nivo-directionNav a.nivo-nextNav { background: transparent url('../images/right_slide_nav.png') no-repeat center 15px; text-indent: -9999px; - left: 895px; + left: 960px; top: 42px; } @@ -907,13 +907,13 @@ body.home #top_bar .caption_inner { - width: 895px; + width: 960px; margin: auto; } #content_wrapper .inner .inner_wrapper { - width: 900px; + width: 960px; margin: auto; padding: 30px 0 25px 0; background: transparent; @@ -926,16 +926,19 @@ body.home #top_bar #content_wrapper .inner .inner_wrapper .sidebar_content { - width: 600px; + width: 688px; /*660px;*/ float: left; padding: 0; + margin-right: 0px; + margin-top: -10px; + border-right: 1px solid #37A3DE; } #content_wrapper .inner .inner_wrapper .sidebar_wrapper { width: 270px; float: right; - margin-left: 15px; + margin-left: 0px; margin-top: -10px; } @@ -950,7 +953,7 @@ body.home #top_bar { width: 270px; float: left; - height: 32px; + height: 5px; /*32px;*/ } #content_wrapper .inner .inner_wrapper .sidebar_wrapper .sidebar_bottom @@ -1144,6 +1147,7 @@ body.home #top_bar #content_wrapper .sidebar .content .sidebar_widget li .widgettitle { font-size: 22px; + margin-bottom: 8px; } div.textwidget @@ -1158,8 +1162,8 @@ div.textwidget .post_wrapper { - width: 100%; - margin: 0 0 70px 0; + width: auto; + margin: 0 25px 50px 0; } .post_wrapper.single @@ -1510,7 +1514,8 @@ ul.children .comment .one_fourth { - width: 22.5%; + width: 21.5%; + min-height: 375px; float: left; margin-right: 3%; margin-bottom: 2%; @@ -1531,7 +1536,7 @@ ul.children .comment .one_fourth .portfolio_image img.frame { position: relative; - top: 20px; + top: 10px; } .img_shadow_160 @@ -1564,6 +1569,27 @@ ul.children .comment margin-right: 0; } +.one_fifth .portfolio_image { + height: 165px; +} + +.one_fifth .portfolio_desc +{ + width: 88%; + margin: auto; +} + +.one_fifth .portfolio_desc h2 +{ + font-size: 18px; +} + + +.one_fifth .portfolio_image img.frame { + position: relative; + top: 10px; +} + .one_sixth { width: 11%; @@ -1585,7 +1611,7 @@ ul.children .comment display: block; position: relative; top: -133px; - left: 6px; + left: 0; z-index: 999; background: transparent; cursor: pointer; @@ -1594,7 +1620,7 @@ ul.children .comment .portfolio4_hover img { width: 60px; - margin: 25px 0 0 0; + margin: 40px 0 0 0; } .blog_grid_desc @@ -1684,7 +1710,7 @@ ul.children .comment } .pagination { - margin: 100px 0 30px -3px; + margin: 50px 0 30px -3px; text-align: left; } @@ -1699,13 +1725,13 @@ ul.children .comment .pagination a:hover { border: 1px solid #333; background: #333; - color: #999; + color: #222; } .pagination a:active, .pagination a.active { border: 1px solid #333; background: #333; - color: #999; + color: #222; } .arrow_list, .check_list, .star_list, .pp_list ul @@ -1863,7 +1889,7 @@ ul.flickr li #slider_loading { - width: 900px; + width: 960px; height: 420px; margin: auto; background: transparent url('../images/ajax-loader.gif') no-repeat center center; @@ -2003,7 +2029,7 @@ strong.header position: relative; margin: 0; padding: 0; - width: 900px; + width: 960px; height: 380px; margin:auto; top: 15px; @@ -2245,4 +2271,5 @@ img.fade #content_wrapper ul.list { margin-left: 20px; -} \ No newline at end of file +} + diff --git a/src/wp-content/themes/lqdvi/fields/page.fields.php b/src/wp-content/themes/lqdvi/fields/page.fields.php index e3c3691f..91675a3d 100644 --- a/src/wp-content/themes/lqdvi/fields/page.fields.php +++ b/src/wp-content/themes/lqdvi/fields/page.fields.php @@ -47,6 +47,7 @@ function page_create_meta_box() { global $page_postmetas; if ( function_exists('add_meta_box') && isset($page_postmetas) && count($page_postmetas) > 0 ) { add_meta_box( 'page_metabox', 'Page Options', 'page_new_meta_box', 'page', 'normal', 'high' ); + add_meta_box( 'page_metabox', 'Page Options', 'page_new_meta_box', 'proyecto', 'normal', 'high' ); } } diff --git a/src/wp-content/themes/lqdvi/fields/post.fields.php b/src/wp-content/themes/lqdvi/fields/post.fields.php index 7cefeef2..60c6e95f 100644 --- a/src/wp-content/themes/lqdvi/fields/post.fields.php +++ b/src/wp-content/themes/lqdvi/fields/post.fields.php @@ -122,7 +122,7 @@ function post_type_proyectos() { ); } -add_action('init', 'post_type_proyectos'); +//add_action('init', 'post_type_proyectos'); add_filter( 'manage_posts_columns', 'rt_add_gravatar_col'); function rt_add_gravatar_col($cols) { diff --git a/src/wp-content/themes/lqdvi/footer.php b/src/wp-content/themes/lqdvi/footer.php index 36efc095..868c741c 100644 --- a/src/wp-content/themes/lqdvi/footer.php +++ b/src/wp-content/themes/lqdvi/footer.php @@ -6,62 +6,70 @@ */ ?> - - - - -
- + + + + +

+ + + - - - * tag of your theme, or you will break many plugins, which - * generally use this hook to reference JavaScript files. - */ +/* Always have wp_footer() just before the closing + * tag of your theme, or you will break many plugins, which + * generally use this hook to reference JavaScript files. + */ - wp_footer(); +wp_footer(); ?> diff --git a/src/wp-content/themes/lqdvi/functions.php b/src/wp-content/themes/lqdvi/functions.php index 86ad71d4..a47ff418 100644 --- a/src/wp-content/themes/lqdvi/functions.php +++ b/src/wp-content/themes/lqdvi/functions.php @@ -4,7 +4,7 @@ define("THEMENAME", "lqdvi"); define("SHORTNAME", "pp"); require_once ('save_application_form.php'); -require_once ('pasarela_tpv.php'); +//require_once ('pasarela_tpv.php'); <- no utilizar más la pasarela TPV load_theme_textdomain( 'lqdvi', TEMPLATEPATH.'/languages' ); @@ -499,4 +499,46 @@ function deregister_cf7_styles() { } } -?> \ No newline at end of file +if(!function_exists('_log')){ + function _log( $message ) { + if( WP_DEBUG === true ){ + if( is_array( $message ) || is_object( $message ) ){ + error_log( print_r( $message, true ) ); + } else { + error_log( $message ); + } + } + } +} + + +function the_slug() { + $post_data = get_post($post->ID, ARRAY_A); + $slug = $post_data['post_name']; + return $slug; +} + +function get_the_post_thumbnail_src($img) { + return (preg_match('~\bsrc="([^"]++)"~', $img, $matches)) ? $matches[1] : ''; +} + + +function custom_plugin_language_dir() { + load_plugin_textdomain('tweetblender', false, '../languages/'); +} +add_action('after_setup_theme', 'custom_plugin_language_dir'); + + +function my_init() { + if (!is_admin()) { + // comment out the next two lines to load the local copy of jQuery + wp_deregister_script('jquery'); + wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', false, '1.8.3'); + wp_enqueue_script('jquery'); + } +} +add_action('init', 'my_init'); + +?> + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/header.php b/src/wp-content/themes/lqdvi/header.php index 420fecad..6c4637ca 100644 --- a/src/wp-content/themes/lqdvi/header.php +++ b/src/wp-content/themes/lqdvi/header.php @@ -4,516 +4,476 @@ * * @package WordPress */ - $pp_theme_version = '1.0'; - ?> > - - -<?php wp_title('‹', true, 'right'); ?><?php bloginfo('name'); ?> - - - + + + <?php wp_title('‹', true, 'right'); ?><?php bloginfo('name'); ?> + + + - - +/** + * Get favicon URL + * */ +$pp_favicon = get_option('pp_favicon'); - - + + -?> + + - + + - if(!empty($pp_gm_key)) - { - -?> - - + + wp_enqueue_script("cufon_menu_font", get_bloginfo('stylesheet_directory') . "/fonts/" . $pp_menu_font . ".js", false, $pp_theme_version); + } - - * tag of your theme, or you will break many plugins, which - * generally use this hook to add elements to such - * as styles, scripts, and meta tags. - */ - wp_head(); -?> + wp_enqueue_script("browser_js", get_bloginfo('stylesheet_directory') . "/js/browser.js", false, $pp_theme_version); + wp_enqueue_script("video_js", get_bloginfo('stylesheet_directory') . "/js/video.min.js", false, $pp_theme_version); + wp_enqueue_script("custom_js", get_bloginfo('stylesheet_directory') . "/js/custom.js", false, $pp_theme_version); + ?> - + + * tag of your theme, or you will break many plugins, which + * generally use this hook to add elements to such + * as styles, scripts, and meta tags. + */ + wp_head(); + ?> - - - -'; - echo $pp_custom_css; - echo ''; - } ?> - + body, .styled_box_content, blockquote h2, label, #searchform label, + body.home #footer, body.home #footer ul, body.home #footer h2, .tubepress_container { color:; } + + + + a, .post_header a, .post_header h3 a, #content_wrapper .sidebar a, #content_wrapper .posts li a , .one_third .blog_grid_desc a, + body.home #footer a { color:; } + + + + a:hover, a:active, .post_header a:hover, .post_header h3 a:hover, #content_wrapper .sidebar a:hover, #content_wrapper .posts li a:hover, .one_third .blog_grid_desc a:hover, + body.home #footer a:active, body.home #footer a:hover { color:; } + + + + input[type=submit], input[type=button], a.button { + background: ; + background: -webkit-gradient(linear, left top, left bottom, from(), to()); + background: -moz-linear-gradient(top, , ); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='', endColorstr=''); + } + input[type=submit]:active, input[type=button]:active, a.button:active + { + background: ; + background: -webkit-gradient(linear, left top, left bottom, from(), to()); + background: -moz-linear-gradient(top, , ); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='', endColorstr=''); + } + + + + .page_caption h1 + { + color: ; + } + + + + .caption_desc + { + color: ; + } + + + + input[type=submit], input[type=button], a.button { + color: ; + } + input[type=submit]:hover, input[type=button]:hover, a.button:hover + { + color: ; + } + + + + input[type=submit], input[type=button], a.button { + border: 1px solid ; + } + + + + #footer, #footer ul, #footer h2, body.home div.content_bg, body.home div.content_bg ul { color:; } + + + + #footer a { color:; } + + + + + #footer a:hover, #footer a:active { color:; } + + + + + img.fade { + opacity: ; + filter:alpha(opacity=); + } + + + +'; + echo $pp_custom_css; + echo ''; +} +?> + + + + + +ID); /** -* Get current page id -**/ + * Get current page id + * */ $current_page_id = ''; -if(isset($page->ID)) -{ +if (isset($page->ID)) { $current_page_id = $page->ID; } - ?> -> - - -
- - -
-
- - - - - -
-
- - - - \ No newline at end of file + +
+ + +
+
+ + +
+
+

+
+ +
+ +
+
+ + + + + +
+
+
+ + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/images/24x24-facebook.png b/src/wp-content/themes/lqdvi/images/24x24-facebook.png new file mode 100644 index 00000000..58840bd3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/24x24-facebook.png differ diff --git a/src/wp-content/themes/lqdvi/images/24x24-twitter.png b/src/wp-content/themes/lqdvi/images/24x24-twitter.png new file mode 100644 index 00000000..b5ede9b5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/24x24-twitter.png differ diff --git a/src/wp-content/themes/lqdvi/images/24x24-youtube.png b/src/wp-content/themes/lqdvi/images/24x24-youtube.png new file mode 100644 index 00000000..d890adba Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/24x24-youtube.png differ diff --git a/src/wp-content/themes/lqdvi/images/32x32-facebook.png b/src/wp-content/themes/lqdvi/images/32x32-facebook.png new file mode 100644 index 00000000..4fe2c4b2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/32x32-facebook.png differ diff --git a/src/wp-content/themes/lqdvi/images/32x32-twitter.png b/src/wp-content/themes/lqdvi/images/32x32-twitter.png new file mode 100644 index 00000000..c6e9cf54 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/32x32-twitter.png differ diff --git a/src/wp-content/themes/lqdvi/images/32x32-youtube.png b/src/wp-content/themes/lqdvi/images/32x32-youtube.png new file mode 100644 index 00000000..46b6f7c6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/32x32-youtube.png differ diff --git a/src/wp-content/themes/lqdvi/images/bocadillo.png b/src/wp-content/themes/lqdvi/images/bocadillo.png new file mode 100644 index 00000000..2099a134 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/bocadillo.png differ diff --git a/src/wp-content/themes/lqdvi/images/btn.png b/src/wp-content/themes/lqdvi/images/btn.png new file mode 100644 index 00000000..bc4bb49e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/btn.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AD.png new file mode 100644 index 00000000..29e00275 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AE.png new file mode 100644 index 00000000..8263f12c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AF.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AF.png new file mode 100644 index 00000000..e5c8d7b4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AG.png new file mode 100644 index 00000000..81a6c22d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AI.png new file mode 100644 index 00000000..754da164 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AL.png new file mode 100644 index 00000000..281fd929 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AM.png new file mode 100644 index 00000000..5e6fcd92 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AN.png new file mode 100644 index 00000000..14325697 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AO.png new file mode 100644 index 00000000..feac91ac Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AQ.png new file mode 100644 index 00000000..69be87b5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AR.png new file mode 100644 index 00000000..5a0e3a6e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AS.png new file mode 100644 index 00000000..07ce8bd8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AT.png new file mode 100644 index 00000000..4c43c027 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AU.png new file mode 100644 index 00000000..a7962b55 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AW.png new file mode 100644 index 00000000..e411a751 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AX.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AX.png new file mode 100644 index 00000000..906ee2e3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AZ.png new file mode 100644 index 00000000..64931b7d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/AZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BA.png new file mode 100644 index 00000000..95080437 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BB.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BB.png new file mode 100644 index 00000000..3e6ce2e3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BD.png new file mode 100644 index 00000000..a6a4ecf8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BE.png new file mode 100644 index 00000000..df1eb165 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BF.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BF.png new file mode 100644 index 00000000..e352be31 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BG.png new file mode 100644 index 00000000..b24e1e21 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BH.png new file mode 100644 index 00000000..2d5e754d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BI.png new file mode 100644 index 00000000..d5acd665 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BJ.png new file mode 100644 index 00000000..3cdb27cf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BL.png new file mode 100644 index 00000000..67f7149e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BM.png new file mode 100644 index 00000000..f06f74c2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BN.png new file mode 100644 index 00000000..ef38045d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BO.png new file mode 100644 index 00000000..d413a728 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BR.png new file mode 100644 index 00000000..40890a6d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BS.png new file mode 100644 index 00000000..b9ca7b5d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BT.png new file mode 100644 index 00000000..acaa3809 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BW.png new file mode 100644 index 00000000..c6518772 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BY.png new file mode 100644 index 00000000..9c5be98c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BZ.png new file mode 100644 index 00000000..c3031651 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/BZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CA.png new file mode 100644 index 00000000..dae9153f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CC.png new file mode 100644 index 00000000..aee171e2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CD.png new file mode 100644 index 00000000..1b9bf6f7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CF.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CF.png new file mode 100644 index 00000000..902b3237 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CG.png new file mode 100644 index 00000000..b7449050 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CH.png new file mode 100644 index 00000000..985ff52f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CI.png new file mode 100644 index 00000000..f908d9b5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CK.png new file mode 100644 index 00000000..7b884dbe Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CL.png new file mode 100644 index 00000000..9e16fd9a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CM.png new file mode 100644 index 00000000..70136aab Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CN.png new file mode 100644 index 00000000..17cd5d01 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CO.png new file mode 100644 index 00000000..0b0eddc6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CR.png new file mode 100644 index 00000000..7d9c882d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CU.png new file mode 100644 index 00000000..e282c1ca Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CV.png new file mode 100644 index 00000000..03b727be Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CX.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CX.png new file mode 100644 index 00000000..96c01739 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CY.png new file mode 100644 index 00000000..89b1ced5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CZ.png new file mode 100644 index 00000000..82ce85ce Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/CZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DE.png new file mode 100644 index 00000000..ebb18434 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DJ.png new file mode 100644 index 00000000..a0b0bcce Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DK.png new file mode 100644 index 00000000..cb7bff7c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DM.png new file mode 100644 index 00000000..1a336cce Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DO.png new file mode 100644 index 00000000..76f13634 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DZ.png new file mode 100644 index 00000000..124e087b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/DZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EC.png new file mode 100644 index 00000000..58a6aa47 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EE.png new file mode 100644 index 00000000..47eb4f6c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EG.png new file mode 100644 index 00000000..9bc72846 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EH.png new file mode 100644 index 00000000..7cd1b3ba Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ER.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ER.png new file mode 100644 index 00000000..025ac945 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ER.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ES.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ES.png new file mode 100644 index 00000000..cf53a8d6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ES.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ET.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ET.png new file mode 100644 index 00000000..95711ddd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ET.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EU.png new file mode 100644 index 00000000..a9af51ca Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/EU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FI.png new file mode 100644 index 00000000..a585cf48 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FJ.png new file mode 100644 index 00000000..f7b5ccbf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FK.png new file mode 100644 index 00000000..e375bc13 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FM.png new file mode 100644 index 00000000..7dccaf04 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FO.png new file mode 100644 index 00000000..02daeca4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FR.png new file mode 100644 index 00000000..91a645e8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/FR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GA.png new file mode 100644 index 00000000..beeaa4fb Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GB.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GB.png new file mode 100644 index 00000000..fb1edaa0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GD.png new file mode 100644 index 00000000..ccd42710 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GE.png new file mode 100644 index 00000000..ae3088bd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GG.png new file mode 100644 index 00000000..2d7233cb Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GH.png new file mode 100644 index 00000000..d76972ea Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GI.png new file mode 100644 index 00000000..07017bac Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GL.png new file mode 100644 index 00000000..572fa5c6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GM.png new file mode 100644 index 00000000..643f21a0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GN.png new file mode 100644 index 00000000..eeb48b70 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GQ.png new file mode 100644 index 00000000..8292015f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GR.png new file mode 100644 index 00000000..c185d0bf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GS.png new file mode 100644 index 00000000..73ac17c3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GT.png new file mode 100644 index 00000000..8ce5c719 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GU.png new file mode 100644 index 00000000..3a0081a0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GW.png new file mode 100644 index 00000000..d87c8351 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GY.png new file mode 100644 index 00000000..0064a1ca Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/GY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HK.png new file mode 100644 index 00000000..1137e86d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HN.png new file mode 100644 index 00000000..d59671c2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HR.png new file mode 100644 index 00000000..effebf8b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HT.png new file mode 100644 index 00000000..c12253a5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HU.png new file mode 100644 index 00000000..62bfc27c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/HU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ID.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ID.png new file mode 100644 index 00000000..e938f433 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ID.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IE.png new file mode 100644 index 00000000..baaae6a7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IL.png new file mode 100644 index 00000000..9bac6ece Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IM.png new file mode 100644 index 00000000..442bfd9b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IN.png new file mode 100644 index 00000000..0e5ee79c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IQ.png new file mode 100644 index 00000000..b712f74f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IR.png new file mode 100644 index 00000000..eca434ca Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IS.png new file mode 100644 index 00000000..01e12fbb Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IT.png new file mode 100644 index 00000000..8e9e7fa6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/IT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JE.png new file mode 100644 index 00000000..606798c9 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JM.png new file mode 100644 index 00000000..002f61ff Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JO.png new file mode 100644 index 00000000..ace43ca8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JP.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JP.png new file mode 100644 index 00000000..8fb1a36a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/JP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KE.png new file mode 100644 index 00000000..87f6c6e5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KG.png new file mode 100644 index 00000000..c3bd3f6d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KH.png new file mode 100644 index 00000000..f9f196de Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KI.png new file mode 100644 index 00000000..6f04a1f7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KM.png new file mode 100644 index 00000000..fbaceeca Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KN.png new file mode 100644 index 00000000..27a1f7fc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KP.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KP.png new file mode 100644 index 00000000..bd631b8a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KR.png new file mode 100644 index 00000000..58b00b58 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KV.png new file mode 100644 index 00000000..f42a566b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KW.png new file mode 100644 index 00000000..7ac9ab13 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KY.png new file mode 100644 index 00000000..fb4ea9bd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KZ.png new file mode 100644 index 00000000..9891af67 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/KZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LA.png new file mode 100644 index 00000000..8905a7be Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LB.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LB.png new file mode 100644 index 00000000..9486645f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LC.png new file mode 100644 index 00000000..7c03a0f1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LI.png new file mode 100644 index 00000000..1d9203e7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LK.png new file mode 100644 index 00000000..e9b9c877 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LR.png new file mode 100644 index 00000000..5a1f700f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LS.png new file mode 100644 index 00000000..6c8b9f53 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LT.png new file mode 100644 index 00000000..ed53328e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LU.png new file mode 100644 index 00000000..b28669f5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LV.png new file mode 100644 index 00000000..007cdce9 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LY.png new file mode 100644 index 00000000..6ebc2867 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/LY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MA.png new file mode 100644 index 00000000..05ba8113 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MC.png new file mode 100644 index 00000000..e938f433 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MD.png new file mode 100644 index 00000000..20870c2e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ME.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ME.png new file mode 100644 index 00000000..90be1f11 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ME.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MG.png new file mode 100644 index 00000000..404af716 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MH.png new file mode 100644 index 00000000..e93857ae Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MK.png new file mode 100644 index 00000000..a93dc0e1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ML.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ML.png new file mode 100644 index 00000000..bc27e269 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ML.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MM.png new file mode 100644 index 00000000..6ef221a4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MN.png new file mode 100644 index 00000000..1dc766a0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MO.png new file mode 100644 index 00000000..cc4f3795 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MP.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MP.png new file mode 100644 index 00000000..cfc72618 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MR.png new file mode 100644 index 00000000..f5866f88 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MS.png new file mode 100644 index 00000000..f6332126 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MT.png new file mode 100644 index 00000000..f633f295 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MU.png new file mode 100644 index 00000000..18fc541b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MV.png new file mode 100644 index 00000000..703aa75e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MW.png new file mode 100644 index 00000000..10e134a6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MX.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MX.png new file mode 100644 index 00000000..5a8e4b4d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MY.png new file mode 100644 index 00000000..51606fa8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MZ.png new file mode 100644 index 00000000..2825be91 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/MZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NA.png new file mode 100644 index 00000000..6ab06d17 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NC.png new file mode 100644 index 00000000..36f9c702 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NE.png new file mode 100644 index 00000000..2b46f7a3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NF.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NF.png new file mode 100644 index 00000000..2bca9549 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NG.png new file mode 100644 index 00000000..14eef799 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NI.png new file mode 100644 index 00000000..1dcb912e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NL.png new file mode 100644 index 00000000..0f98743c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NO.png new file mode 100644 index 00000000..f228e9f4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NP.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NP.png new file mode 100644 index 00000000..3d896f91 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NR.png new file mode 100644 index 00000000..179fa787 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NU.png new file mode 100644 index 00000000..7bb2da23 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NZ.png new file mode 100644 index 00000000..70091f3b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/NZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/OM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/OM.png new file mode 100644 index 00000000..d757f908 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/OM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PA.png new file mode 100644 index 00000000..0908aac7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PE.png new file mode 100644 index 00000000..ff925420 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PG.png new file mode 100644 index 00000000..0f2c976a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PH.png new file mode 100644 index 00000000..9686b255 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PK.png new file mode 100644 index 00000000..d01eddf0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PL.png new file mode 100644 index 00000000..b9807dcc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PN.png new file mode 100644 index 00000000..a27696fd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PR.png new file mode 100644 index 00000000..fdfc417b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PS.png new file mode 100644 index 00000000..205061fc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PT.png new file mode 100644 index 00000000..8698cfaa Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PW.png new file mode 100644 index 00000000..cf148a2a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PY.png new file mode 100644 index 00000000..fc4b2a21 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/PY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/QA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/QA.png new file mode 100644 index 00000000..0a1876f2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/QA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RO.png new file mode 100644 index 00000000..cc2494d2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RS.png new file mode 100644 index 00000000..8dca3540 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RU.png new file mode 100644 index 00000000..d36f4b8f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RW.png new file mode 100644 index 00000000..2e87e41c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/RW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SA.png new file mode 100644 index 00000000..f5a10f01 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SB.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SB.png new file mode 100644 index 00000000..4836b72a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SC.png new file mode 100644 index 00000000..52becc54 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SD.png new file mode 100644 index 00000000..7d75423f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SE.png new file mode 100644 index 00000000..df520500 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SG.png new file mode 100644 index 00000000..b23f6850 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SH.png new file mode 100644 index 00000000..35c6ac79 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SI.png new file mode 100644 index 00000000..584888a1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SK.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SK.png new file mode 100644 index 00000000..8d9d1d76 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SL.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SL.png new file mode 100644 index 00000000..3ff9f7c3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SM.png new file mode 100644 index 00000000..b058d14a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SN.png new file mode 100644 index 00000000..0c6664f3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SO.png new file mode 100644 index 00000000..8acf3de1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SR.png new file mode 100644 index 00000000..dca8d1b6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SS.png new file mode 100644 index 00000000..bdaa77ce Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ST.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ST.png new file mode 100644 index 00000000..5fe3cb2f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ST.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SV.png new file mode 100644 index 00000000..78c554a2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SY.png new file mode 100644 index 00000000..cf21d7f8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SZ.png new file mode 100644 index 00000000..a1a9d5ae Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/SZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TC.png new file mode 100644 index 00000000..10a97986 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TD.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TD.png new file mode 100644 index 00000000..09a12366 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TG.png new file mode 100644 index 00000000..406e51ba Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TH.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TH.png new file mode 100644 index 00000000..a50b0e44 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TJ.png new file mode 100644 index 00000000..147d03f6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TM.png new file mode 100644 index 00000000..c2f342a4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TN.png new file mode 100644 index 00000000..cf508c64 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TO.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TO.png new file mode 100644 index 00000000..36873d33 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TP.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TP.png new file mode 100644 index 00000000..ee26b56e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TR.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TR.png new file mode 100644 index 00000000..c147631c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TT.png new file mode 100644 index 00000000..2a2ec086 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TV.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TV.png new file mode 100644 index 00000000..b48b323f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TW.png new file mode 100644 index 00000000..03a51bcf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TZ.png new file mode 100644 index 00000000..26389e15 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/TZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UA.png new file mode 100644 index 00000000..badac50f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UG.png new file mode 100644 index 00000000..3a8f4e1a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/US.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/US.png new file mode 100644 index 00000000..b269593a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/US.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UY.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UY.png new file mode 100644 index 00000000..6789faad Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UZ.png new file mode 100644 index 00000000..0a0cc518 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/UZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VA.png new file mode 100644 index 00000000..6ebc4ee2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VC.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VC.png new file mode 100644 index 00000000..f0b561de Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VE.png new file mode 100644 index 00000000..6e3a4652 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VG.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VG.png new file mode 100644 index 00000000..870a155e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VI.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VI.png new file mode 100644 index 00000000..fcaf84e6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VN.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VN.png new file mode 100644 index 00000000..6668916c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VU.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VU.png new file mode 100644 index 00000000..b000f11b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/VU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/WS.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/WS.png new file mode 100644 index 00000000..c88f2e86 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/WS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YE.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YE.png new file mode 100644 index 00000000..eed64e03 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YT.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YT.png new file mode 100644 index 00000000..33860741 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/YT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZA.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZA.png new file mode 100644 index 00000000..be9909f2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZM.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZM.png new file mode 100644 index 00000000..04946ddf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZW.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZW.png new file mode 100644 index 00000000..52b47a4e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/ZW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_abkhazia.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_abkhazia.png new file mode 100644 index 00000000..b410c95e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_abkhazia.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_british-antarctic-territory.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_british-antarctic-territory.png new file mode 100644 index 00000000..2a2bf702 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_british-antarctic-territory.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_commonwealth.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_commonwealth.png new file mode 100644 index 00000000..e7fd173a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_commonwealth.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_england.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_england.png new file mode 100644 index 00000000..f6d3af38 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_england.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_gosquared.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_gosquared.png new file mode 100644 index 00000000..428fb4ec Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_gosquared.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_mars.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_mars.png new file mode 100644 index 00000000..f6554b1a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_mars.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nagorno-karabakh.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nagorno-karabakh.png new file mode 100644 index 00000000..8168fa38 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nagorno-karabakh.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nato.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nato.png new file mode 100644 index 00000000..c7404d17 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_nato.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_northern-cyprus.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_northern-cyprus.png new file mode 100644 index 00000000..65242f00 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_northern-cyprus.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_olympics.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_olympics.png new file mode 100644 index 00000000..35912bc0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_olympics.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_red-cross.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_red-cross.png new file mode 100644 index 00000000..1676e65d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_red-cross.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_scotland.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_scotland.png new file mode 100644 index 00000000..293bef55 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_scotland.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_somaliland.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_somaliland.png new file mode 100644 index 00000000..5dfd5a2a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_somaliland.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_south-ossetia.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_south-ossetia.png new file mode 100644 index 00000000..094884a7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_south-ossetia.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_united-nations.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_united-nations.png new file mode 100644 index 00000000..629d7445 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_united-nations.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_wales.png b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_wales.png new file mode 100644 index 00000000..1bf5a19d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/flat/24/_wales.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AD.png new file mode 100644 index 00000000..52b3f8dc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AE.png new file mode 100644 index 00000000..a4383d26 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AF.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AF.png new file mode 100644 index 00000000..11074cc5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AG.png new file mode 100644 index 00000000..ca684822 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AI.png new file mode 100644 index 00000000..c2d32a34 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AL.png new file mode 100644 index 00000000..9b6ce18d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AM.png new file mode 100644 index 00000000..30975d04 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AN.png new file mode 100644 index 00000000..b09f1529 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AO.png new file mode 100644 index 00000000..f73e6e37 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AQ.png new file mode 100644 index 00000000..cfd62d0d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AR.png new file mode 100644 index 00000000..3f11d753 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AS.png new file mode 100644 index 00000000..bc04b1d7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AT.png new file mode 100644 index 00000000..563e011c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AU.png new file mode 100644 index 00000000..1f60807b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AW.png new file mode 100644 index 00000000..64169752 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AX.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AX.png new file mode 100644 index 00000000..32d81619 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AZ.png new file mode 100644 index 00000000..f2c8a781 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/AZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BA.png new file mode 100644 index 00000000..a4b3d21d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BB.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BB.png new file mode 100644 index 00000000..863a3471 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BD.png new file mode 100644 index 00000000..88e78d74 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BE.png new file mode 100644 index 00000000..c3ea8ce6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BF.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BF.png new file mode 100644 index 00000000..cb5daf2e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BG.png new file mode 100644 index 00000000..ffb444a2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BH.png new file mode 100644 index 00000000..3ac5bae4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BI.png new file mode 100644 index 00000000..ebe14f3e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BJ.png new file mode 100644 index 00000000..d78c94c8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BL.png new file mode 100644 index 00000000..ade01d44 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BM.png new file mode 100644 index 00000000..ed7fb2ff Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BN.png new file mode 100644 index 00000000..d6d0d6cb Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BO.png new file mode 100644 index 00000000..ac32cdf1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BR.png new file mode 100644 index 00000000..e660338c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BS.png new file mode 100644 index 00000000..24db9da3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BT.png new file mode 100644 index 00000000..13989ed3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BW.png new file mode 100644 index 00000000..77c37611 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BY.png new file mode 100644 index 00000000..784f69cc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BZ.png new file mode 100644 index 00000000..ca66a155 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/BZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CA.png new file mode 100644 index 00000000..fd089c2a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CC.png new file mode 100644 index 00000000..35cfe7f0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CD.png new file mode 100644 index 00000000..bec710de Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CF.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CF.png new file mode 100644 index 00000000..ae334520 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CG.png new file mode 100644 index 00000000..c0b72bc5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CH.png new file mode 100644 index 00000000..2f22b90e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CI.png new file mode 100644 index 00000000..8326e1d3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CK.png new file mode 100644 index 00000000..fbdb7dd6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CL.png new file mode 100644 index 00000000..6768c75f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CM.png new file mode 100644 index 00000000..c03409b4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CN.png new file mode 100644 index 00000000..08fca13d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CO.png new file mode 100644 index 00000000..af86cd03 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CR.png new file mode 100644 index 00000000..9de7a24d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CU.png new file mode 100644 index 00000000..4ba1a41c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CV.png new file mode 100644 index 00000000..b8bf1798 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CX.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CX.png new file mode 100644 index 00000000..0916464d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CY.png new file mode 100644 index 00000000..885bfd62 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CZ.png new file mode 100644 index 00000000..73ac4424 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/CZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DE.png new file mode 100644 index 00000000..0c229c32 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DJ.png new file mode 100644 index 00000000..68a297b3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DK.png new file mode 100644 index 00000000..6edf00b3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DM.png new file mode 100644 index 00000000..7cd1131b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DO.png new file mode 100644 index 00000000..d2ae5b66 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DZ.png new file mode 100644 index 00000000..9cde0872 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/DZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EC.png new file mode 100644 index 00000000..ba11aaaf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EE.png new file mode 100644 index 00000000..20150fcd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EG.png new file mode 100644 index 00000000..9b157a4c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EH.png new file mode 100644 index 00000000..caec7187 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ER.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ER.png new file mode 100644 index 00000000..c36d2184 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ER.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ET.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ET.png new file mode 100644 index 00000000..87da26f0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ET.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EU.png new file mode 100644 index 00000000..ccdf7d82 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/EU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FI.png new file mode 100644 index 00000000..c9f17f6d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FJ.png new file mode 100644 index 00000000..13a8bfd4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FK.png new file mode 100644 index 00000000..f9ebef29 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FM.png new file mode 100644 index 00000000..e4596cea Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FO.png new file mode 100644 index 00000000..8cb6c905 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FR.png new file mode 100644 index 00000000..f27f4114 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/FR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GA.png new file mode 100644 index 00000000..317dd671 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GD.png new file mode 100644 index 00000000..1670317d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GE.png new file mode 100644 index 00000000..eda18d86 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GG.png new file mode 100644 index 00000000..273e5e70 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GH.png new file mode 100644 index 00000000..4fcc198c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GI.png new file mode 100644 index 00000000..8b76b45e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GL.png new file mode 100644 index 00000000..a3835b79 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GM.png new file mode 100644 index 00000000..814d391d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GN.png new file mode 100644 index 00000000..1c3b5b2a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GQ.png new file mode 100644 index 00000000..ce539071 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GR.png new file mode 100644 index 00000000..5f6320fa Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GS.png new file mode 100644 index 00000000..00d20b63 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GT.png new file mode 100644 index 00000000..a587b514 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GU.png new file mode 100644 index 00000000..5004db65 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GW.png new file mode 100644 index 00000000..808a1ef5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GY.png new file mode 100644 index 00000000..b94d7361 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/GY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HK.png new file mode 100644 index 00000000..c17e4ce4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HN.png new file mode 100644 index 00000000..9635f7ec Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HR.png new file mode 100644 index 00000000..e4fc75ac Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HT.png new file mode 100644 index 00000000..9f52fc4c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HU.png new file mode 100644 index 00000000..6d4478f8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/HU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ID.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ID.png new file mode 100644 index 00000000..63ad1fcf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ID.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IE.png new file mode 100644 index 00000000..44062f6c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IL.png new file mode 100644 index 00000000..8a8d4a8f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IM.png new file mode 100644 index 00000000..3f30b7ae Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IN.png new file mode 100644 index 00000000..3e433378 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IQ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IQ.png new file mode 100644 index 00000000..6418593b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IQ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IR.png new file mode 100644 index 00000000..1506e99d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IS.png new file mode 100644 index 00000000..33d24997 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IT.png new file mode 100644 index 00000000..53ec7025 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/IT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JE.png new file mode 100644 index 00000000..2e3a1a76 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JM.png new file mode 100644 index 00000000..b55ccfc6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JO.png new file mode 100644 index 00000000..7a3be3fc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JP.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JP.png new file mode 100644 index 00000000..0516af4a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/JP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KE.png new file mode 100644 index 00000000..7296684d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KG.png new file mode 100644 index 00000000..1b38e318 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KH.png new file mode 100644 index 00000000..4881570e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KI.png new file mode 100644 index 00000000..0bf057e1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KM.png new file mode 100644 index 00000000..eef9dcb3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KN.png new file mode 100644 index 00000000..55a0a88e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KP.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KP.png new file mode 100644 index 00000000..8323a97e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KR.png new file mode 100644 index 00000000..f6f6baaf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KV.png new file mode 100644 index 00000000..a919bbaf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KW.png new file mode 100644 index 00000000..3e899f6f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KY.png new file mode 100644 index 00000000..49e4c7c5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KZ.png new file mode 100644 index 00000000..04e0e429 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/KZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LA.png new file mode 100644 index 00000000..e3d22fd0 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LB.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LB.png new file mode 100644 index 00000000..04d889cd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LC.png new file mode 100644 index 00000000..fbba84e5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LI.png new file mode 100644 index 00000000..78ddc1fd Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LK.png new file mode 100644 index 00000000..d393119c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LR.png new file mode 100644 index 00000000..17954ee8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LS.png new file mode 100644 index 00000000..9eca7935 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LT.png new file mode 100644 index 00000000..3d2b5254 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LU.png new file mode 100644 index 00000000..36171c83 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LV.png new file mode 100644 index 00000000..89f459f7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LY.png new file mode 100644 index 00000000..58ad284d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/LY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MA.png new file mode 100644 index 00000000..055948e1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MC.png new file mode 100644 index 00000000..63ad1fcf Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MD.png new file mode 100644 index 00000000..6713c383 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ME.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ME.png new file mode 100644 index 00000000..663cd070 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ME.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MG.png new file mode 100644 index 00000000..78baaa8b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MH.png new file mode 100644 index 00000000..3ead7c0c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MK.png new file mode 100644 index 00000000..3bdb9a83 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ML.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ML.png new file mode 100644 index 00000000..a027a3c1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ML.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MM.png new file mode 100644 index 00000000..798d802f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MN.png new file mode 100644 index 00000000..2f714555 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MO.png new file mode 100644 index 00000000..3d9e0e0a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MP.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MP.png new file mode 100644 index 00000000..5b59f918 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MR.png new file mode 100644 index 00000000..e5f0792e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MS.png new file mode 100644 index 00000000..7f9ee942 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MT.png new file mode 100644 index 00000000..a44e22fa Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MU.png new file mode 100644 index 00000000..1c274115 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MV.png new file mode 100644 index 00000000..4e924019 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MW.png new file mode 100644 index 00000000..149a1d15 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MX.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MX.png new file mode 100644 index 00000000..86f12720 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MX.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MY.png new file mode 100644 index 00000000..7ba7b031 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MZ.png new file mode 100644 index 00000000..f20e5254 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/MZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NA.png new file mode 100644 index 00000000..100b38e7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NC.png new file mode 100644 index 00000000..2c8bb2af Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NE.png new file mode 100644 index 00000000..8f501cd1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NF.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NF.png new file mode 100644 index 00000000..be1ed103 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NF.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NG.png new file mode 100644 index 00000000..4a00307d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NI.png new file mode 100644 index 00000000..709fcc6f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NL.png new file mode 100644 index 00000000..505b9ce8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NO.png new file mode 100644 index 00000000..20d65342 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NP.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NP.png new file mode 100644 index 00000000..75c012e6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NR.png new file mode 100644 index 00000000..a970507d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NU.png new file mode 100644 index 00000000..cd3c5dc8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NZ.png new file mode 100644 index 00000000..0c5a8e07 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/NZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/OM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/OM.png new file mode 100644 index 00000000..384def24 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/OM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PA.png new file mode 100644 index 00000000..e20a7430 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PE.png new file mode 100644 index 00000000..616b6557 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PG.png new file mode 100644 index 00000000..13dc48a3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PH.png new file mode 100644 index 00000000..36b3612d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PK.png new file mode 100644 index 00000000..317e02db Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PL.png new file mode 100644 index 00000000..92cd1ca3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PN.png new file mode 100644 index 00000000..e26fad99 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PR.png new file mode 100644 index 00000000..b466682f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PS.png new file mode 100644 index 00000000..d95bacb8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PT.png new file mode 100644 index 00000000..6e4d7340 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PW.png new file mode 100644 index 00000000..6852102e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PY.png new file mode 100644 index 00000000..e4445d58 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/PY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/QA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/QA.png new file mode 100644 index 00000000..e3fa51f5 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/QA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RO.png new file mode 100644 index 00000000..e7fa4f5c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RS.png new file mode 100644 index 00000000..4c1e9f51 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RU.png new file mode 100644 index 00000000..d9624ca1 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RW.png new file mode 100644 index 00000000..6f5f588b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/RW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SA.png new file mode 100644 index 00000000..d386dc0e Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SB.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SB.png new file mode 100644 index 00000000..1c255534 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SB.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SC.png new file mode 100644 index 00000000..dd27a217 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SD.png new file mode 100644 index 00000000..4cbba36a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SE.png new file mode 100644 index 00000000..fd0b55b2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SG.png new file mode 100644 index 00000000..a3dbbfc7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SH.png new file mode 100644 index 00000000..22504133 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SI.png new file mode 100644 index 00000000..9938beef Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SK.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SK.png new file mode 100644 index 00000000..bf7a247f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SK.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SL.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SL.png new file mode 100644 index 00000000..f5ccc931 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SL.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SM.png new file mode 100644 index 00000000..fc5036c9 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SN.png new file mode 100644 index 00000000..861df133 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SO.png new file mode 100644 index 00000000..ea7eb21c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SR.png new file mode 100644 index 00000000..4fa6114f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SS.png new file mode 100644 index 00000000..7e644898 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ST.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ST.png new file mode 100644 index 00000000..34868539 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ST.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SV.png new file mode 100644 index 00000000..a3697967 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SY.png new file mode 100644 index 00000000..aee3c969 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SZ.png new file mode 100644 index 00000000..b89f4d1c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/SZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TC.png new file mode 100644 index 00000000..f076b4ab Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TD.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TD.png new file mode 100644 index 00000000..8b17d5ce Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TD.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TG.png new file mode 100644 index 00000000..00933c4d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TH.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TH.png new file mode 100644 index 00000000..0ea4ed85 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TH.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TJ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TJ.png new file mode 100644 index 00000000..69222445 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TJ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TM.png new file mode 100644 index 00000000..e0813d0c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TN.png new file mode 100644 index 00000000..deacc5b6 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TO.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TO.png new file mode 100644 index 00000000..f2e9026c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TO.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TP.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TP.png new file mode 100644 index 00000000..a8e5a43a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TP.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TR.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TR.png new file mode 100644 index 00000000..786d7364 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TR.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TT.png new file mode 100644 index 00000000..99b1d60d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TV.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TV.png new file mode 100644 index 00000000..3c363788 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TV.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TW.png new file mode 100644 index 00000000..0bd41256 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TZ.png new file mode 100644 index 00000000..c927c656 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/TZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UA.png new file mode 100644 index 00000000..e46611fa Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UG.png new file mode 100644 index 00000000..209aa452 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/US.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/US.png new file mode 100644 index 00000000..2b04dcf7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/US.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UY.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UY.png new file mode 100644 index 00000000..0edaf691 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UY.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UZ.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UZ.png new file mode 100644 index 00000000..19f5c390 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/UZ.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VA.png new file mode 100644 index 00000000..ed1d70ad Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VC.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VC.png new file mode 100644 index 00000000..5191c65f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VC.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VE.png new file mode 100644 index 00000000..e28cbf7d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VG.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VG.png new file mode 100644 index 00000000..00c72f89 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VG.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VI.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VI.png new file mode 100644 index 00000000..bce202d2 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VI.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VN.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VN.png new file mode 100644 index 00000000..33385c12 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VN.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VU.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VU.png new file mode 100644 index 00000000..08534b95 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/VU.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/WS.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/WS.png new file mode 100644 index 00000000..520b84f4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/WS.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YE.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YE.png new file mode 100644 index 00000000..651c4f09 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YE.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YT.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YT.png new file mode 100644 index 00000000..dea0a0f7 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/YT.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZA.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZA.png new file mode 100644 index 00000000..177fe751 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZA.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZM.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZM.png new file mode 100644 index 00000000..26f99693 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZM.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZW.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZW.png new file mode 100644 index 00000000..6cccf56f Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/ZW.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_abkhazia.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_abkhazia.png new file mode 100644 index 00000000..267eb2fc Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_abkhazia.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_british-antarctic-territory.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_british-antarctic-territory.png new file mode 100644 index 00000000..fae8b5ea Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_british-antarctic-territory.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_commonwealth.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_commonwealth.png new file mode 100644 index 00000000..52ded7e4 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_commonwealth.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_england.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_england.png new file mode 100644 index 00000000..ce1d2269 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_england.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_gosquared.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_gosquared.png new file mode 100644 index 00000000..ae596b48 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_gosquared.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_mars.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_mars.png new file mode 100644 index 00000000..cf80d899 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_mars.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nagorno-karabakh.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nagorno-karabakh.png new file mode 100644 index 00000000..a7f38452 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nagorno-karabakh.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nato.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nato.png new file mode 100644 index 00000000..faa5f764 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_nato.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_northern-cyprus.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_northern-cyprus.png new file mode 100644 index 00000000..45a987f3 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_northern-cyprus.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_olympics.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_olympics.png new file mode 100644 index 00000000..9f4b7e49 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_olympics.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_red-cross.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_red-cross.png new file mode 100644 index 00000000..201b1c66 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_red-cross.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_scotland.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_scotland.png new file mode 100644 index 00000000..c11234ae Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_scotland.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_somaliland.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_somaliland.png new file mode 100644 index 00000000..00a975f9 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_somaliland.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_south-ossetia.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_south-ossetia.png new file mode 100644 index 00000000..7b3324e9 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_south-ossetia.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_united-nations.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_united-nations.png new file mode 100644 index 00000000..7d0dda17 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_united-nations.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_wales.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_wales.png new file mode 100644 index 00000000..30d99d6b Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/_wales.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/es.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/es.png new file mode 100644 index 00000000..39d0c76c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/es.png differ diff --git a/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/gb.png b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/gb.png new file mode 100644 index 00000000..02fa2a15 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/flags-iso/shiny/24/gb.png differ diff --git a/src/wp-content/themes/lqdvi/images/search-dark.png b/src/wp-content/themes/lqdvi/images/search-dark.png new file mode 100644 index 00000000..24e34fb8 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/search-dark.png differ diff --git a/src/wp-content/themes/lqdvi/images/search.png b/src/wp-content/themes/lqdvi/images/search.png new file mode 100644 index 00000000..30789d1d Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/search.png differ diff --git a/src/wp-content/themes/lqdvi/images/ser-amigo-2.png b/src/wp-content/themes/lqdvi/images/ser-amigo-2.png new file mode 100644 index 00000000..0d95b69a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/ser-amigo-2.png differ diff --git a/src/wp-content/themes/lqdvi/images/ser-socio-2.png b/src/wp-content/themes/lqdvi/images/ser-socio-2.png new file mode 100644 index 00000000..2495265a Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/ser-socio-2.png differ diff --git a/src/wp-content/themes/lqdvi/images/ser-socio-3.png b/src/wp-content/themes/lqdvi/images/ser-socio-3.png new file mode 100644 index 00000000..1e04f41c Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/ser-socio-3.png differ diff --git a/src/wp-content/themes/lqdvi/images/suscribete-2.png b/src/wp-content/themes/lqdvi/images/suscribete-2.png new file mode 100644 index 00000000..3b5d9d42 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/suscribete-2.png differ diff --git a/src/wp-content/themes/lqdvi/images/suscribete.png b/src/wp-content/themes/lqdvi/images/suscribete.png new file mode 100644 index 00000000..b89c9265 Binary files /dev/null and b/src/wp-content/themes/lqdvi/images/suscribete.png differ diff --git a/src/wp-content/themes/lqdvi/index.php b/src/wp-content/themes/lqdvi/index.php index f97a2b7a..8e5b0ab7 100644 --- a/src/wp-content/themes/lqdvi/index.php +++ b/src/wp-content/themes/lqdvi/index.php @@ -9,219 +9,45 @@ function cleanSource ($src) { return str_replace ('http://localhost/lqdvi', '', $src); } -$pp_slider_sort = get_option('pp_slider_sort'); -if(empty($pp_slider_sort)) -{ - $pp_slider_sort = 'ASC'; -} +get_header(); -$pp_slider_items = get_option('pp_slider_items'); -if(empty($pp_slider_items)) -{ - $pp_slider_items = 60; -} - -$pp_slider_img_width = get_option('pp_slider_img_width'); -if(empty($pp_slider_img_width)) -{ - $pp_slider_img_width = 240; -} - -$pp_slider_img_height = get_option('pp_slider_img_height'); -if(empty($pp_slider_img_height)) -{ - $pp_slider_img_height = 160; -} - -$pp_slider_rows = get_option('pp_slider_rows'); -if(empty($pp_slider_rows)) -{ - $pp_slider_rows = 3; -} - -$pp_slider_opacity = get_option('pp_slider_opacity'); -if(empty($pp_slider_opacity)) -{ - $pp_slider_opacity = 40; -} - -$pp_homepage_auto_scroll = get_option('pp_homepage_auto_scroll'); - -$args = array( - 'numberposts' => $pp_slider_items, - 'order' => $pp_slider_sort, - 'orderby' => 'date', - 'post_type' => 'slides', -); - -$all_photo_arr = get_posts($args); - - -get_header(); ?> +?> - - + - -
+
+
-
+ + -
+ +
+ +
+ - - - - - - - $photo) - { - $title = $photo->post_title; - $content = $photo->post_content; - $small_image_url = get_bloginfo( 'stylesheet_directory' ).'/images/000_70.png'; - - $slide_link_to = get_post_meta($photo->ID, 'slide_link_to', true); - - if(has_post_thumbnail($photo->ID, 'large')) - { - - - $image_id = get_post_thumbnail_id($photo->ID); - $image_url = wp_get_attachment_image_src($image_id, 'large', true); - //$image_url[0] = cleanSource($image_url[0]); - - $small_image_url = get_bloginfo( 'stylesheet_directory' ).'/timthumb.php?src='.cleanSource($image_url[0]).'&h='.$pp_gallery_height.'&w='.$pp_gallery_width.'&zc=1'; - - if(!empty($slide_link_to) && $slide_link_to != 'Image') - { - $hyperlink_url = get_post_meta($photo->ID, 'gallery_link_url', true); - } - else - { - $hyperlink_url = $image_url[0]; - } - - } - ?> - - -
- -
- - > - - - - -
- - -
- - - - -
- -
-
- -
-
- - - - -
- - - -
- -

-

-
- - - - -
-
- - - - - -
- -
- - - -
- -
- - -
- -
-
-
-
+ +
+ +
+ +
+
+
\ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.ba-throttle-debounce.min.js b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.ba-throttle-debounce.min.js new file mode 100644 index 00000000..d3eacc0f --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.ba-throttle-debounce.min.js @@ -0,0 +1,9 @@ +/* + * jQuery throttle / debounce - v1.1 - 3/7/2010 + * http://benalman.com/projects/jquery-throttle-debounce-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.mousewheel.min.js b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.mousewheel.min.js new file mode 100644 index 00000000..fcf0e743 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.mousewheel.min.js @@ -0,0 +1,12 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery) diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.touchSwipe.min.js b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.touchSwipe.min.js new file mode 100644 index 00000000..42708a91 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.touchSwipe.min.js @@ -0,0 +1,13 @@ +/* +* touchSwipe - jQuery Plugin +* https://github.com/mattbryson/TouchSwipe-Jquery-Plugin +* http://labs.skinkers.com/touchSwipe/ +* http://plugins.jquery.com/project/touchSwipe +* +* Copyright (c) 2010 Matt Bryson (www.skinkers.com) +* Dual licensed under the MIT or GPL Version 2 licenses. +* +* $version: 1.3.3 +*/ + +(function(g){function P(c){if(c&&void 0===c.allowPageScroll&&(void 0!==c.swipe||void 0!==c.swipeStatus))c.allowPageScroll=G;c||(c={});c=g.extend({},g.fn.swipe.defaults,c);return this.each(function(){var b=g(this),f=b.data(w);f||(f=new W(this,c),b.data(w,f))})}function W(c,b){var f,p,r,s;function H(a){var a=a.originalEvent,c,Q=n?a.touches[0]:a;d=R;n?h=a.touches.length:a.preventDefault();i=0;j=null;k=0;!n||h===b.fingers||b.fingers===x?(r=f=Q.pageX,s=p=Q.pageY,y=(new Date).getTime(),b.swipeStatus&&(c= l(a,d))):t(a);if(!1===c)return d=m,l(a,d),c;e.bind(I,J);e.bind(K,L)}function J(a){a=a.originalEvent;if(!(d===q||d===m)){var c,e=n?a.touches[0]:a;f=e.pageX;p=e.pageY;u=(new Date).getTime();j=S();n&&(h=a.touches.length);d=z;var e=a,g=j;if(b.allowPageScroll===G)e.preventDefault();else{var o=b.allowPageScroll===T;switch(g){case v:(b.swipeLeft&&o||!o&&b.allowPageScroll!=M)&&e.preventDefault();break;case A:(b.swipeRight&&o||!o&&b.allowPageScroll!=M)&&e.preventDefault();break;case B:(b.swipeUp&&o||!o&&b.allowPageScroll!= N)&&e.preventDefault();break;case C:(b.swipeDown&&o||!o&&b.allowPageScroll!=N)&&e.preventDefault()}}h===b.fingers||b.fingers===x||!n?(i=U(),k=u-y,b.swipeStatus&&(c=l(a,d,j,i,k)),b.triggerOnTouchEnd||(e=!(b.maxTimeThreshold?!(k>=b.maxTimeThreshold):1),!0===D()?(d=q,c=l(a,d)):e&&(d=m,l(a,d)))):(d=m,l(a,d));!1===c&&(d=m,l(a,d))}}function L(a){a=a.originalEvent;a.preventDefault();u=(new Date).getTime();i=U();j=S();k=u-y;if(b.triggerOnTouchEnd||!1===b.triggerOnTouchEnd&&d===z)if(d=q,(h===b.fingers||b.fingers=== x||!n)&&0!==f){var c=!(b.maxTimeThreshold?!(k>=b.maxTimeThreshold):1);if((!0===D()||null===D())&&!c)l(a,d);else if(c||!1===D())d=m,l(a,d)}else d=m,l(a,d);else d===z&&(d=m,l(a,d));e.unbind(I,J,!1);e.unbind(K,L,!1)}function t(){y=u=p=f=s=r=h=0}function l(a,c){var d=void 0;b.swipeStatus&&(d=b.swipeStatus.call(e,a,c,j||null,i||0,k||0,h));if(c===m&&b.click&&(1===h||!n)&&(isNaN(i)||0===i))d=b.click.call(e,a,a.target);if(c==q)switch(b.swipe&&(d=b.swipe.call(e,a,j,i,k,h)),j){case v:b.swipeLeft&&(d=b.swipeLeft.call(e, a,j,i,k,h));break;case A:b.swipeRight&&(d=b.swipeRight.call(e,a,j,i,k,h));break;case B:b.swipeUp&&(d=b.swipeUp.call(e,a,j,i,k,h));break;case C:b.swipeDown&&(d=b.swipeDown.call(e,a,j,i,k,h))}(c===m||c===q)&&t(a);return d}function D(){return null!==b.threshold?i>=b.threshold:null}function U(){return Math.round(Math.sqrt(Math.pow(f-r,2)+Math.pow(p-s,2)))}function S(){var a;a=Math.atan2(p-s,r-f);a=Math.round(180*a/Math.PI);0>a&&(a=360-Math.abs(a));return 45>=a&&0<=a?v:360>=a&&315<=a?v:135<=a&&225>=a? A:45a?C:B}function V(){e.unbind(E,H);e.unbind(F,t);e.unbind(I,J);e.unbind(K,L)}var O=n||!b.fallbackToMouseEvents,E=O?"touchstart":"mousedown",I=O?"touchmove":"mousemove",K=O?"touchend":"mouseup",F="touchcancel",i=0,j=null,k=0,e=g(c),d="start",h=0,y=p=f=s=r=0,u=0;try{e.bind(E,H),e.bind(F,t)}catch(P){g.error("events not supported "+E+","+F+" on jQuery.swipe")}this.enable=function(){e.bind(E,H);e.bind(F,t);return e};this.disable=function(){V();return e};this.destroy=function(){V();e.data(w,null); return e}}var v="left",A="right",B="up",C="down",G="none",T="auto",M="horizontal",N="vertical",x="all",R="start",z="move",q="end",m="cancel",n="ontouchstart"in window,w="TouchSwipe";g.fn.swipe=function(c){var b=g(this),f=b.data(w);if(f&&"string"===typeof c){if(f[c])return f[c].apply(this,Array.prototype.slice.call(arguments,1));g.error("Method "+c+" does not exist on jQuery.swipe")}else if(!f&&("object"===typeof c||!c))return P.apply(this,arguments);return b};g.fn.swipe.defaults={fingers:1,threshold:75, maxTimeThreshold:null,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,click:null,triggerOnTouchEnd:!0,allowPageScroll:"auto",fallbackToMouseEvents:!0};g.fn.swipe.phases={PHASE_START:R,PHASE_MOVE:z,PHASE_END:q,PHASE_CANCEL:m};g.fn.swipe.directions={LEFT:v,RIGHT:A,UP:B,DOWN:C};g.fn.swipe.pageScroll={NONE:G,HORIZONTAL:M,VERTICAL:N,AUTO:T};g.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:x}})(jQuery); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.transit.min.js b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.transit.min.js new file mode 100644 index 00000000..cc3331b7 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/helper-plugins/jquery.transit.min.js @@ -0,0 +1,22 @@ +/*! + * jQuery Transit - CSS3 transitions and transformations + * (c) 2011-2012 Rico Sta. Cruz + * MIT Licensed. + * + * http://ricostacruz.com/jquery.transit + * http://github.com/rstacruz/jquery.transit + */ +(function(d){function m(a){if(a in j.style)return a;var b=["Moz","Webkit","O","ms"],c=a.charAt(0).toUpperCase()+a.substr(1);if(a in j.style)return a;for(a=0;ad.fn.jquery&&(d.cssHooks.transformOrigin={get:function(a){return a.style[e.transformOrigin]},set:function(a,b){a.style[e.transformOrigin]=b}},d.cssHooks.transition={get:function(a){return a.style[e.transition]},set:function(a,b){a.style[e.transition]=b}});f("scale"); +f("translate");f("rotate");f("rotateX");f("rotateY");f("rotate3d");f("perspective");f("skewX");f("skewY");f("x",!0);f("y",!0);l.prototype={setFromString:function(a,b){var c="string"===typeof b?b.split(","):b.constructor===Array?b:[b];c.unshift(a);l.prototype.set.apply(this,c)},set:function(a){var b=Array.prototype.slice.apply(arguments,[1]);this.setter[a]?this.setter[a].apply(this,b):this[a]=b.join(",")},get:function(a){return this.getter[a]?this.getter[a].apply(this):this[a]||0},setter:{rotate:function(a){this.rotate= +g(a,"deg")},rotateX:function(a){this.rotateX=g(a,"deg")},rotateY:function(a){this.rotateY=g(a,"deg")},scale:function(a,b){void 0===b&&(b=a);this.scale=a+","+b},skewX:function(a){this.skewX=g(a,"deg")},skewY:function(a){this.skewY=g(a,"deg")},perspective:function(a){this.perspective=g(a,"px")},x:function(a){this.set("translate",a,null)},y:function(a){this.set("translate",null,a)},translate:function(a,b){void 0===this._translateX&&(this._translateX=0);void 0===this._translateY&&(this._translateY=0); +null!==a&&void 0!==a&&(this._translateX=g(a,"px"));null!==b&&void 0!==b&&(this._translateY=g(b,"px"));this.translate=this._translateX+","+this._translateY}},getter:{x:function(){return this._translateX||0},y:function(){return this._translateY||0},scale:function(){var a=(this.scale||"1,1").split(",");a[0]&&(a[0]=parseFloat(a[0]));a[1]&&(a[1]=parseFloat(a[1]));return a[0]===a[1]?a[0]:a},rotate3d:function(){for(var a=(this.rotate3d||"0,0,0,0deg").split(","),b=0;3>=b;++b)a[b]&&(a[b]=parseFloat(a[b])); +a[3]&&(a[3]=g(a[3],"deg"));return a}},parse:function(a){var b=this;a.replace(/([a-zA-Z0-9]+)\((.*?)\)/g,function(a,d,e){b.setFromString(d,e)})},toString:function(a){var b=[],c;for(c in this)if(this.hasOwnProperty(c)&&(e.transform3d||!("rotateX"===c||"rotateY"===c||"perspective"===c||"transformOrigin"===c)))"_"!==c[0]&&(a&&"scale"===c?b.push(c+"3d("+this[c]+",1)"):a&&"translate"===c?b.push(c+"3d("+this[c]+",0)"):b.push(c+"("+this[c]+")"));return b.join(" ")}};d.fn.transition=d.fn.transit=function(a, +b,c,f){var h=this,g=0,j=!0;"function"===typeof b&&(f=b,b=void 0);"function"===typeof c&&(f=c,c=void 0);"undefined"!==typeof a.easing&&(c=a.easing,delete a.easing);"undefined"!==typeof a.duration&&(b=a.duration,delete a.duration);"undefined"!==typeof a.complete&&(f=a.complete,delete a.complete);"undefined"!==typeof a.queue&&(j=a.queue,delete a.queue);"undefined"!==typeof a.delay&&(g=a.delay,delete a.delay);"undefined"===typeof b&&(b=d.fx.speeds._default);"undefined"===typeof c&&(c=d.cssEase._default); +b=n(b);var l=q(a,b,c,g),k=d.transit.enabled&&e.transition?parseInt(b,10)+parseInt(g,10):0;if(0===k)return b=j,c=function(b){h.css(a);f&&f.apply(h);b&&b()},!0===b?h.queue(c):b?h.queue(b,c):c(),h;var m={};b=j;c=function(b){this.offsetWidth;var c=!1,g=function(){c&&h.unbind(p,g);0 + + + + + + carouFredSel: a circular, responsive jQuery carousel + + + + + + + + + + + + + + + + + + +
+

carouFredSel

+

This is a demo page, for more examples, the complete documentation, tips & tricks, a support-forum and even a configuration robot, visit caroufredsel.dev7studios.com

+
+ +
+
+ + +

Basic carousel.

+ +
+ + +

Basic carousel + timer, using CSS-transitions.

+ +
+ + +

Carousel scrolled by user interaction.
+ (prev-button, next-button, pagination, mousewheel and swipe)

+ +
+ + +

Carousel with a variable number of visible items with variable sizes.

+ +
+
+ + +

Responsive layout example resizing the items (resize your browser).

+ +
+ + +

Responsive layout example centering the items (resize your browser).

+ +
+ + +
+
+ + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/jquery-1.8.2.min.js b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery-1.8.2.min.js new file mode 100644 index 00000000..f65cf1dc --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery-1.8.2.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&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 p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(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 bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(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 bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0-packed.js b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0-packed.js new file mode 100644 index 00000000..e8c180a4 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0-packed.js @@ -0,0 +1,15 @@ +/* + * jQuery carouFredSel 6.2.0 + * Demo's and documentation: + * caroufredsel.dev7studios.com + * + * Copyright (c) 2013 Fred Heusschen + * www.frebsite.nl + * + * Dual licensed under the MIT and GPL licenses. + * http://en.wikipedia.org/wiki/MIT_License + * http://en.wikipedia.org/wiki/GNU_General_Public_License + */ + + +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(D($){8($.1s.1v){H}$.1s.6i=$.1s.1v=D(u,w){8(1l.S==0){18(J,\'6j 55 6k 1j "\'+1l.4o+\'".\');H 1l}8(1l.S>1){H 1l.1W(D(){$(1l).1v(u,w)})}F y=1l,$12=1l[0],56=L;8(y.1q(\'57\')){56=y.1P(\'3o\',\'4p\');y.T(\'3o\',[\'4q\',J])}F z={};z.59=D(o,a,b){o=3S($12,o);o.E=6l($12,o.E);o.1K=6m($12,o.1K);o.N=6n($12,o.N);o.14=5a($12,o.14);o.16=5a($12,o.16);o.1b=6o($12,o.1b);o.1r=6p($12,o.1r);o.1Q=6q($12,o.1Q);8(a){31=$.1L(J,{},$.1s.1v.5b,o)}7=$.1L(J,{},$.1s.1v.5b,o);7.d=6r(7);A.2l=(7.2l==\'5c\'||7.2l==\'1m\')?\'16\':\'14\';F c=y.13(),2m=5d($1n,7,\'P\');8(3p(7.25)){7.25=\'7Q\'+G.3T}7.3U=5e(7,2m);7.E=6s(7.E,7,c,b);7[7.d[\'P\']]=6t(7[7.d[\'P\']],7,c);7[7.d[\'1e\']]=6u(7[7.d[\'1e\']],7,c);8(7.2H){8(!3V(7[7.d[\'P\']])){7[7.d[\'P\']]=\'2I%\'}}8(3V(7[7.d[\'P\']])){A.6v=J;A.4r=7[7.d[\'P\']];7[7.d[\'P\']]=4s(2m,A.4r);8(!7.E.M){7.E.U.1d=J}}8(7.2H){7.1R=L;7.1i=[0,0,0,0];7.1B=L;7.E.U.1d=L}O{8(!7.E.M){7=6w(7,2m)}8(!7[7.d[\'P\']]){8(!7.E.U.1d&&Y(7.E[7.d[\'P\']])&&7.E.1t==\'*\'){7[7.d[\'P\']]=7.E.M*7.E[7.d[\'P\']];7.1B=L}O{7[7.d[\'P\']]=\'1d\'}}8(1z(7.1B)){7.1B=(Y(7[7.d[\'P\']]))?\'5f\':L}8(7.E.U.1d){7.E.M=32(c,7,0)}}8(7.E.1t!=\'*\'&&!7.E.U.1d){7.E.U.4t=7.E.M;7.E.M=3W(c,7,0)}7.E.M=2x(7.E.M,7,7.E.U.2c,$12);7.E.U.20=7.E.M;8(7.2H){8(!7.E.U.34){7.E.U.34=7.E.M}8(!7.E.U.1X){7.E.U.1X=7.E.M}7=5g(7,c,2m)}O{7.1i=6x(7.1i);8(7.1B==\'3q\'){7.1B=\'1m\'}O 8(7.1B==\'5h\'){7.1B=\'35\'}1F(7.1B){R\'5f\':R\'1m\':R\'35\':8(7[7.d[\'P\']]!=\'1d\'){7=5i(7,c);7.1R=J}17;2J:7.1B=L;7.1R=(7.1i[0]==0&&7.1i[1]==0&&7.1i[2]==0&&7.1i[3]==0)?L:J;17}}8(!Y(7.1K.1M)){7.1K.1M=6y}8(1z(7.1K.E)){7.1K.E=(7.2H||7.E.U.1d||7.E.1t!=\'*\')?\'M\':7.E.M}7.N=$.1L(J,{},7.1K,7.N);7.14=$.1L(J,{},7.1K,7.14);7.16=$.1L(J,{},7.1K,7.16);7.1b=$.1L(J,{},7.1K,7.1b);7.N=6z($12,7.N);7.14=5j($12,7.14);7.16=5j($12,7.16);7.1b=6A($12,7.1b);7.1r=6B($12,7.1r);7.1Q=6C($12,7.1Q);8(7.2n){7.2n=5k(7.2n)}8(7.N.5l){7.N.4u=7.N.5l;3X(\'N.5l\',\'N.4u\')}8(7.N.5m){7.N.4v=7.N.5m;3X(\'N.5m\',\'N.4v\')}8(7.N.5n){7.N.4w=7.N.5n;3X(\'N.5n\',\'N.4w\')}8(7.N.5o){7.N.2K=7.N.5o;3X(\'N.5o\',\'N.2K\')}};z.6D=D(){y.1q(\'57\',J);F a=y.13(),3Y=6E(y,[\'6F\',\'6G\',\'3r\',\'3q\',\'35\',\'5h\',\'1m\',\'3Z\',\'P\',\'1e\',\'6H\',\'1S\',\'5p\',\'6I\']),5q=\'7R\';1F(3Y.3r){R\'6J\':R\'7S\':5q=3Y.3r;17}8(G.3s==\'36\'){41($1n)}O{$1n.Z(3Y)}$1n.Z({\'7T\':\'3t\',\'3r\':5q});41(y);y.1q(\'6K\',3Y.3Z);y.Z({\'6F\':\'1m\',\'6G\':\'42\',\'3r\':\'6J\',\'3q\':0,\'35\':\'N\',\'5h\':\'N\',\'1m\':0,\'6H\':0,\'1S\':0,\'5p\':0,\'6I\':0});4x(a,7);41(a);8(7.2H){5r(7,a)}};z.6L=D(){z.5s();y.11(I(\'6M\',G),D(e,a){e.1g();8(!A.2d){8(7.N.W){7.N.W.3a(2y(\'4y\',G))}}A.2d=J;8(7.N.1G){7.N.1G=L;y.T(I(\'3b\',G),a)}H J});y.11(I(\'5t\',G),D(e){e.1g();8(A.26){43(V)}H J});y.11(I(\'3b\',G),D(e,a,b){e.1g();1u=3u(1u);8(a&&A.26){V.2d=J;F c=2o()-V.2L;V.1M-=c;8(V.4z){V.4z.1M-=c}8(V.4A){V.4A.1M-=c}43(V,L)}8(!A.27&&!A.26){8(b){1u.3v+=2o()-1u.2L}}8(!A.27){8(7.N.W){7.N.W.3a(2y(\'6N\',G))}}A.27=J;8(7.N.4v){F d=7.N.2K-1u.3v,3c=2I-1H.2z(d*2I/7.N.2K);7.N.4v.1h($12,3c,d)}H J});y.11(I(\'1G\',G),D(e,b,c,d){e.1g();1u=3u(1u);F v=[b,c,d],t=[\'2M\',\'28\',\'3d\'],a=3e(v,t);b=a[0];c=a[1];d=a[2];8(b!=\'14\'&&b!=\'16\'){b=A.2l}8(!Y(c)){c=0}8(!1k(d)){d=L}8(d){A.2d=L;7.N.1G=J}8(!7.N.1G){e.2e();H 18(G,\'3w 4y: 2p 3f.\')}8(A.27){8(7.N.W){7.N.W.2N(2y(\'4y\',G));7.N.W.2N(2y(\'6N\',G))}}A.27=L;1u.2L=2o();F f=7.N.2K+c;44=f-1u.3v;3c=2I-1H.2z(44*2I/f);8(7.N.1f){1u.1f=7U(D(){F a=2o()-1u.2L+1u.3v,3c=1H.2z(a*2I/f);7.N.1f.4B.1h(7.N.1f.2q[0],3c)},7.N.1f.5u)}1u.N=7V(D(){8(7.N.1f){7.N.1f.4B.1h(7.N.1f.2q[0],2I)}8(7.N.4w){7.N.4w.1h($12,3c,44)}8(A.26){y.T(I(\'1G\',G),b)}O{y.T(I(b,G),7.N)}},44);8(7.N.4u){7.N.4u.1h($12,3c,44)}H J});y.11(I(\'3g\',G),D(e){e.1g();8(V.2d){V.2d=L;A.27=L;A.26=J;V.2L=2o();3x(V,G)}O{y.T(I(\'1G\',G))}H J});y.11(I(\'14\',G)+\' \'+I(\'16\',G),D(e,b,f,g,h){e.1g();8(A.2d||y.2f(\':3t\')){e.2e();H 18(G,\'3w 4y 7W 3t: 2p 3f.\')}F i=(Y(7.E.4C))?7.E.4C:7.E.M+1;8(i>K.Q){e.2e();H 18(G,\'2p 6O E (\'+K.Q+\' Q, \'+i+\' 6P): 2p 3f.\')}F v=[b,f,g,h],t=[\'2A\',\'28/2M\',\'D\',\'3d\'],a=3e(v,t);b=a[0];f=a[1];g=a[2];h=a[3];F k=e.5v.19(G.3y.45.S);8(!1T(b)){b={}}8(1o(g)){b.3h=g}8(1k(h)){b.2O=h}b=$.1L(J,{},7[k],b);8(b.5w&&!b.5w.1h($12,k)){e.2e();H 18(G,\'7X "5w" 7Y L.\')}8(!Y(f)){8(7.E.1t!=\'*\'){f=\'M\'}O{F m=[f,b.E,7[k].E];1j(F a=0,l=m.S;a0){8(A.26){8(b.2O){8(b.2O==\'2P\'){2g=[]}8(b.2O!=\'X\'||2g.S==0){y.T(I(\'2O\',G),[k,[b,f,g]])}}e.2e();H 18(G,\'3w 81 3f.\')}}1u.3v=0;y.T(I(\'6R\'+k,G),[b,f]);8(7.2n){F s=7.2n,c=[b,f];1j(F j=0,l=s.S;j=K.Q){K.X-=K.Q}8(!7.1U){8(K.X==0&&b.4F){b.4F.1h($12,\'14\')}8(!7.3z){3A(7,K.X,G)}}y.13().19(K.Q-c,K.Q).83(y);8(K.Q<7.E.M+c){y.13().19(0,(7.E.M+c)-K.Q).4G(J).47(y)}F d=y.13(),3i=6V(d,7,c),2i=6W(d,7),1Z=d.1N(c-1),21=3i.2P(),2r=2i.2P();1Y(d,7);F h=0,2B=0;8(7.1B){F p=4H(2i,7);h=p[0];2B=p[1]}F i=(h<0)?7.1i[7.d[3]]:0;F j=L,2Q=$();8(7.E.M=0){1Y(21,7,7.1i[7.d[1]])}8(h>=0){1Y(1Z,7,7.1i[7.d[3]])}8(7.1B){7.1i[7.d[1]]=2B;7.1i[7.d[3]]=h}2T[7.d[\'1m\']]=-(3B-i);5A[7.d[\'1m\']]=-(3C-i);4K[7.d[\'1m\']]=2j[7.d[\'P\']];F m=D(){},1O=D(){},1C=D(){},3D=D(){},2C=D(){},5C=D(){},1D=D(){},3E=D(){},1x=D(){},1y=D(){},1J=D(){};1F(b.1V){R\'3j\':R\'1I\':R\'1I-1w\':R\'22\':R\'22-1w\':l=y.4G(J).47($1n);17}1F(b.1V){R\'3j\':R\'22\':R\'22-1w\':l.13().19(0,c).2t();l.13().19(7.E.U.20).2t();17;R\'1I\':R\'1I-1w\':l.13().19(7.E.M).2t();l.Z(5A);17}y.Z(2T);V=48(2U,b.2u,G);29[7.d[\'1m\']]=(7.1R)?7.1i[7.d[3]]:0;8(7[7.d[\'P\']]==\'1d\'||7[7.d[\'1e\']]==\'1d\'){m=D(){$1n.Z(2j)};1O=D(){V.1a.1c([$1n,2j])}}8(7.1R){8(2r.4M(1Z).S){2s[7.d[\'1S\']]=1Z.1q(\'2a\');8(h<0){1Z.Z(2s)}O{1D=D(){1Z.Z(2s)};3E=D(){V.1a.1c([1Z,2s])}}}1F(b.1V){R\'1I\':R\'1I-1w\':l.13().1N(c-1).Z(2s);17}8(2r.4M(21).S){2S[7.d[\'1S\']]=21.1q(\'2a\');1C=D(){21.Z(2S)};3D=D(){V.1a.1c([21,2S])}}8(2B>=0){4L[7.d[\'1S\']]=2r.1q(\'2a\')+7.1i[7.d[1]];2C=D(){2r.Z(4L)};5C=D(){V.1a.1c([2r,4L])}}}1J=D(){y.Z(29)};F n=7.E.M+c-K.Q;1y=D(){8(n>0){y.13().19(K.Q).2t();3i=$(y.13().19(K.Q-(7.E.M-n)).3F().6Y(y.13().19(0,n).3F()))}5D(j);8(7.1R){F a=y.13().1N(7.E.M+c-1);a.Z(7.d[\'1S\'],a.1q(\'2a\'))}};F o=5E(3i,2Q,2i,c,\'14\',2U,2j);1x=D(){5F(y,l,b);A.26=L;2b.3h=4a($12,b,\'3h\',o,2b);2g=5G(y,2g,G);8(!A.27){y.T(I(\'1G\',G))}};A.26=J;1u=3u(1u);2b.3G=4a($12,b,\'3G\',o,2b);1F(b.1V){R\'42\':y.Z(29);m();1C();2C();1D();1J();1y();1x();17;R\'1w\':V.1a.1c([y,{\'1E\':0},D(){m();1C();2C();1D();1J();1y();V=48(2U,b.2u,G);V.1a.1c([y,{\'1E\':1},1x]);3x(V,G)}]);17;R\'3j\':y.Z({\'1E\':0});V.1a.1c([l,{\'1E\':0}]);V.1a.1c([y,{\'1E\':1},1x]);1O();1C();2C();1D();1J();1y();17;R\'1I\':V.1a.1c([l,29,D(){1C();2C();1D();1J();1y();1x()}]);1O();17;R\'1I-1w\':V.1a.1c([y,{\'1E\':0}]);V.1a.1c([l,29,D(){y.Z({\'1E\':1});1C();2C();1D();1J();1y();1x()}]);1O();17;R\'22\':V.1a.1c([l,4K,1x]);1O();1C();2C();1D();1J();1y();17;R\'22-1w\':y.Z({\'1E\':0});V.1a.1c([y,{\'1E\':1}]);V.1a.1c([l,4K,1x]);1O();1C();2C();1D();1J();1y();17;2J:V.1a.1c([y,29,D(){1y();1x()}]);1O();3D();5C();3E();17}3x(V,G);5H(7.25,y,G);y.T(I(\'3H\',G),[L,2j]);H J});y.11(I(\'84\',G),D(e,c,d){e.1g();F f=y.13();8(!7.1U){8(K.X==7.E.M){8(7.3z){y.T(I(\'14\',G),K.Q-1)}H e.2e()}}1Y(f,7);8(!Y(d)){8(7.E.1t!=\'*\'){F g=(Y(c.E))?c.E:5x(y,7);d=6Z(f,7,0,g)}O{d=7.E.M}d=4E(d,7,c.E,$12)}F h=(K.X==0)?K.Q:K.X;8(!7.1U){8(7.E.U.1d){F i=32(f,7,d),g=4D(f,7,h-1)}O{F i=7.E.M,g=7.E.M}8(d+i>h){d=h-g}}7.E.U.20=7.E.M;8(7.E.U.1d){F i=2x(5I(f,7,d,h),7,7.E.U.2c,$12);2h(7.E.M-d>=i&&d=0){o+=7.1i[7.d[1]]}2r.Z(7.d[\'1S\'],o);8(1Z.4M(21).S){2S[7.d[\'1S\']]=21.1q(\'2a\')}1C=D(){21.Z(2S)};3D=D(){V.1a.1c([21,2S])};F q=1Z.1q(\'2a\');8(j>0){q+=7.1i[7.d[3]]}2s[7.d[\'1S\']]=q;1D=D(){1Z.Z(2s)};3E=D(){V.1a.1c([1Z,2s])}}1J=D(){y.Z(2T)};F r=7.E.M+d-K.Q;1y=D(){8(r>0){y.13().19(K.Q).2t()}F a=y.13().19(0,d).47(y).2P();8(r>0){2i=3I(f,7)}5D(k);8(7.1R){8(K.Q<7.E.M+d){F b=y.13().1N(7.E.M-1);b.Z(7.d[\'1S\'],b.1q(\'2a\')+7.1i[7.d[1]])}a.Z(7.d[\'1S\'],a.1q(\'2a\'))}};F s=5E(3i,2Q,2i,d,\'16\',2U,2j);1x=D(){y.Z(\'3Z\',y.1q(\'6K\'));5F(y,m,c);A.26=L;2b.3h=4a($12,c,\'3h\',s,2b);2g=5G(y,2g,G);8(!A.27){y.T(I(\'1G\',G))}};A.26=J;1u=3u(1u);2b.3G=4a($12,c,\'3G\',s,2b);1F(c.1V){R\'42\':y.Z(29);n();1C();1D();1J();1y();1x();17;R\'1w\':V.1a.1c([y,{\'1E\':0},D(){n();1C();1D();1J();1y();V=48(2U,c.2u,G);V.1a.1c([y,{\'1E\':1},1x]);3x(V,G)}]);17;R\'3j\':y.Z({\'1E\':0});V.1a.1c([m,{\'1E\':0}]);V.1a.1c([y,{\'1E\':1},1x]);1O();1C();1D();1J();1y();17;R\'1I\':y.Z(7.d[\'1m\'],$1n[7.d[\'P\']]());V.1a.1c([y,2T,1x]);1O();1C();1D();1y();17;R\'1I-1w\':y.Z(7.d[\'1m\'],$1n[7.d[\'P\']]());V.1a.1c([m,{\'1E\':0}]);V.1a.1c([y,2T,1x]);1O();1C();1D();1y();17;R\'22\':V.1a.1c([m,4N,1x]);1O();1C();1D();1J();1y();17;R\'22-1w\':y.Z({\'1E\':0});V.1a.1c([y,{\'1E\':1}]);V.1a.1c([m,4N,1x]);1O();1C();1D();1J();1y();17;2J:V.1a.1c([y,29,D(){1J();1y();1x()}]);1O();3D();3E();17}3x(V,G);5H(7.25,y,G);y.T(I(\'3H\',G),[L,2j]);H J});y.11(I(\'3k\',G),D(e,b,c,d,f,g,h){e.1g();F v=[b,c,d,f,g,h],t=[\'2M/28/2A\',\'28\',\'3d\',\'2A\',\'2M\',\'D\'],a=3e(v,t);f=a[3];g=a[4];h=a[5];b=3J(a[0],a[1],a[2],K,y);8(b==0){H L}8(!1T(f)){f=L}8(g!=\'14\'&&g!=\'16\'){8(7.1U){g=(b<=K.Q/2)?\'16\':\'14\'}O{g=(K.X==0||K.X>b)?\'16\':\'14\'}}8(g==\'14\'){b=K.Q-b}y.T(I(g,G),[f,b,h]);H J});y.11(I(\'85\',G),D(e,a,b){e.1g();F c=y.1P(I(\'4b\',G));H y.1P(I(\'5J\',G),[c-1,a,\'14\',b])});y.11(I(\'86\',G),D(e,a,b){e.1g();F c=y.1P(I(\'4b\',G));H y.1P(I(\'5J\',G),[c+1,a,\'16\',b])});y.11(I(\'5J\',G),D(e,a,b,c,d){e.1g();8(!Y(a)){a=y.1P(I(\'4b\',G))}F f=7.1b.E||7.E.M,1X=1H.2z(K.Q/f)-1;8(a<0){a=1X}8(a>1X){a=0}H y.1P(I(\'3k\',G),[a*f,0,J,b,c,d])});y.11(I(\'73\',G),D(e,s){e.1g();8(s){s=3J(s,0,J,K,y)}O{s=0}s+=K.X;8(s!=0){8(K.Q>0){2h(s>K.Q){s-=K.Q}}y.87(y.13().19(s,K.Q))}H J});y.11(I(\'2n\',G),D(e,s){e.1g();8(s){s=5k(s)}O 8(7.2n){s=7.2n}O{H 18(G,\'6j 88 46 2n.\')}F n=y.1P(I(\'4p\',G)),x=J;1j(F j=0,l=s.S;j=K.Q){K.X-=K.Q}y.T(I(\'4O\',G));y.T(I(\'5L\',G));H J});y.11(I(\'77\',G),D(e,c,d,f){e.1g();F v=[c,d,f],t=[\'2M/28/2A\',\'3d\',\'28\'],a=3e(v,t);c=a[0];d=a[1];f=a[2];F g=L;8(c 2W $&&c.S>1){h=$();c.1W(D(i,a){F b=y.T(I(\'77\',G),[$(1l),d,f]);8(b){h=h.8e(b)}});H h}8(1z(c)||c==\'4c\'){h=y.13().2P()}O{c=3J(c,f,d,K,y);F h=y.13().1N(c);8(h.S){8(c1X){2k=1X}8(1o(a)){a.1h($12,2k)}H 2k});y.11(I(\'8g\',G),D(e,a){e.1g();F b=3I(y.13(),7);8(1o(a)){a.1h($12,b)}H b});y.11(I(\'19\',G),D(e,f,l,b){e.1g();8(K.Q==0){H L}F v=[f,l,b],t=[\'28\',\'28\',\'D\'],a=3e(v,t);f=(Y(a[0]))?a[0]:0;l=(Y(a[1]))?a[1]:K.Q;b=a[2];f+=K.X;l+=K.X;8(E.Q>0){2h(f>K.Q){f-=K.Q}2h(l>K.Q){l-=K.Q}2h(f<0){f+=K.Q}2h(l<0){l+=K.Q}}F c=y.13(),$i;8(l>f){$i=c.19(f,l)}O{$i=$(c.19(f,K.Q).3F().6Y(c.19(0,l).3F()))}8(1o(b)){b.1h($12,$i)}H $i});y.11(I(\'27\',G)+\' \'+I(\'2d\',G)+\' \'+I(\'26\',G),D(e,a){e.1g();F b=e.5v.19(G.3y.45.S),5M=A[b];8(1o(a)){a.1h($12,5M)}H 5M});y.11(I(\'6S\',G),D(e,a,b,c){e.1g();F d=L;8(1o(a)){a.1h($12,7)}O 8(1T(a)){31=$.1L(J,{},31,a);8(b!==L)d=J;O 7=$.1L(J,{},7,a)}O 8(!1z(a)){8(1o(b)){F f=4P(\'7.\'+a);8(1z(f)){f=\'\'}b.1h($12,f)}O 8(!1z(b)){8(2X c!==\'3d\')c=J;4P(\'31.\'+a+\' = b\');8(c!==L)d=J;O 4P(\'7.\'+a+\' = b\')}O{H 4P(\'7.\'+a)}}8(d){1Y(y.13(),7);z.59(31);z.5N();F g=4Q(y,7);y.T(I(\'3H\',G),[J,g])}H 7});y.11(I(\'5L\',G),D(e,a,b){e.1g();8(1z(a)){a=$(\'8h\')}O 8(1p(a)){a=$(a)}8(!2v(a)||a.S==0){H 18(G,\'2p a 5K 2A.\')}8(!1p(b)){b=\'a.6i\'}a.8i(b).1W(D(){F h=1l.79||\'\';8(h.S>0&&y.13().7a($(h))!=-1){$(1l).23(\'5O\').5O(D(e){e.2D();y.T(I(\'3k\',G),h)})}});H J});y.11(I(\'3H\',G),D(e,b,c){e.1g();8(!7.1b.1A){H}F d=7.1b.E||7.E.M,4R=1H.2z(K.Q/d);8(b){8(7.1b.3K){7.1b.1A.13().2t();7.1b.1A.1W(D(){1j(F a=0;a<4R;a++){F i=y.13().1N(3J(a*d,0,J,K,y));$(1l).76(7.1b.3K.1h(i[0],a+1))}})}7.1b.1A.1W(D(){$(1l).13().23(7.1b.3L).1W(D(a){$(1l).11(7.1b.3L,D(e){e.2D();y.T(I(\'3k\',G),[a*d,-7.1b.4S,J,7.1b])})})})}F f=y.1P(I(\'4b\',G))+7.1b.4S;8(f>=4R){f=0}8(f<0){f=4R-1}7.1b.1A.1W(D(){$(1l).13().2N(2y(\'7b\',G)).1N(f).3a(2y(\'7b\',G))});H J});y.11(I(\'4O\',G),D(e){F a=7.E.M,2E=y.13(),2m=5d($1n,7,\'P\');K.Q=2E.S;8(A.4r){7.3U=2m;7[7.d[\'P\']]=4s(2m,A.4r)}O{7.3U=5e(7,2m)}8(7.2H){7.E.P=7.E.3M.P;7.E.1e=7.E.3M.1e;7=5g(7,2E,2m);a=7.E.M;5r(7,2E)}O 8(7.E.U.1d){a=32(2E,7,0)}O 8(7.E.1t!=\'*\'){a=3W(2E,7,0)}8(!7.1U&&K.X!=0&&a>K.X){8(7.E.U.1d){F b=4D(2E,7,K.X)-K.X}O 8(7.E.1t!=\'*\'){F b=7c(2E,7,K.X)-K.X}O{F b=7.E.M-K.X}18(G,\'8j 8k-1U: 8l \'+b+\' E 5y.\');y.T(I(\'14\',G),b)}7.E.M=2x(a,7,7.E.U.2c,$12);7.E.U.20=7.E.M;7=5i(7,2E);F c=4Q(y,7);y.T(I(\'3H\',G),[J,c]);4T(7,K.Q,G);3A(7,K.X,G);H c});y.11(I(\'4q\',G),D(e,a){e.1g();1u=3u(1u);y.1q(\'57\',L);y.T(I(\'5t\',G));8(a){y.T(I(\'73\',G))}4U(y.13());4U(y);z.5s();z.5P();8(G.3s==\'36\'){4U($1n)}O{$1n.8m(y)}H J});y.11(I(\'18\',G),D(e){18(G,\'3w P: \'+7.P);18(G,\'3w 1e: \'+7.1e);18(G,\'7d 8n: \'+7.E.P);18(G,\'7d 8o: \'+7.E.1e);18(G,\'4e 4f E M: \'+7.E.M);8(7.N.1G){18(G,\'4e 4f E 5Q 8p: \'+7.N.E)}8(7.14.W){18(G,\'4e 4f E 5Q 5y: \'+7.14.E)}8(7.16.W){18(G,\'4e 4f E 5Q 70: \'+7.16.E)}H G.18});y.11(\'3o\',D(e,n,o){e.1g();H y.1P(I(n,G),o)})};z.5s=D(){y.23(I(\'\',G));y.23(I(\'\',G,L));y.23(\'3o\')};z.5N=D(){z.5P();4T(7,K.Q,G);3A(7,K.X,G);8(7.N.2F){F b=3N(7.N.2F);$1n.11(I(\'4V\',G,L),D(){y.T(I(\'3b\',G),b)}).11(I(\'4W\',G,L),D(){y.T(I(\'3g\',G))})}8(7.N.W){7.N.W.11(I(7.N.3L,G,L),D(e){e.2D();F a=L,b=3O;8(A.27){a=\'1G\'}O 8(7.N.4X){a=\'3b\';b=3N(7.N.4X)}8(a){y.T(I(a,G),b)}})}8(7.14.W){7.14.W.11(I(7.14.3L,G,L),D(e){e.2D();y.T(I(\'14\',G))});8(7.14.2F){F b=3N(7.14.2F);7.14.W.11(I(\'4V\',G,L),D(){y.T(I(\'3b\',G),b)}).11(I(\'4W\',G,L),D(){y.T(I(\'3g\',G))})}}8(7.16.W){7.16.W.11(I(7.16.3L,G,L),D(e){e.2D();y.T(I(\'16\',G))});8(7.16.2F){F b=3N(7.16.2F);7.16.W.11(I(\'4V\',G,L),D(){y.T(I(\'3b\',G),b)}).11(I(\'4W\',G,L),D(){y.T(I(\'3g\',G))})}}8(7.1b.1A){8(7.1b.2F){F b=3N(7.1b.2F);7.1b.1A.11(I(\'4V\',G,L),D(){y.T(I(\'3b\',G),b)}).11(I(\'4W\',G,L),D(){y.T(I(\'3g\',G))})}}8(7.14.2Y||7.16.2Y){$(4g).11(I(\'7e\',G,L,J,J),D(e){F k=e.7f;8(k==7.16.2Y){e.2D();y.T(I(\'16\',G))}8(k==7.14.2Y){e.2D();y.T(I(\'14\',G))}})}8(7.1b.4Y){$(4g).11(I(\'7e\',G,L,J,J),D(e){F k=e.7f;8(k>=49&&k<58){k=(k-49)*7.E.M;8(k<=K.Q){e.2D();y.T(I(\'3k\',G),[k,0,J,7.1b])}}})}8($.1s.1r){F c=\'8q\'8r 3l;8((c&&7.1r.4h)||(!c&&7.1r.5R)){F d=$.1L(J,{},7.14,7.1r),7g=$.1L(J,{},7.16,7.1r),5S=D(){y.T(I(\'14\',G),[d])},5T=D(){y.T(I(\'16\',G),[7g])};1F(7.2l){R\'5c\':R\'7h\':7.1r.2G.8s=5T;7.1r.2G.8t=5S;17;2J:7.1r.2G.8u=5T;7.1r.2G.8v=5S}8(A.1r){y.1r(\'4q\')}$1n.1r(7.1r.2G);$1n.Z(\'7i\',\'8w\');A.1r=J}}8($.1s.1Q){8(7.1Q){F f=$.1L(J,{},7.14,7.1Q),7j=$.1L(J,{},7.16,7.1Q);8(A.1Q){$1n.23(I(\'1Q\',G,L))}$1n.11(I(\'1Q\',G,L),D(e,a){e.2D();8(a>0){y.T(I(\'14\',G),[f])}O{y.T(I(\'16\',G),[7j])}});A.1Q=J}}8(7.N.1G){y.T(I(\'1G\',G),7.N.5U)}8(A.6v){F g=D(e){y.T(I(\'5t\',G));8(7.N.5V&&!A.27){y.T(I(\'1G\',G))}1Y(y.13(),7);y.T(I(\'4O\',G))};F h=$(3l),4i=3O;8($.5W&&G.5X==\'5W\'){4i=$.5W(8x,g)}O 8($.4Z&&G.5X==\'4Z\'){4i=$.4Z(8y,g)}O{F i=0,5Y=0;4i=D(){F a=h.P(),5Z=h.1e();8(a!=i||5Z!=5Y){g();i=a;5Y=5Z}}}h.11(I(\'8z\',G,L,J,J),4i)}};z.5P=D(){F a=I(\'\',G),3P=I(\'\',G,L);61=I(\'\',G,L,J,J);$(4g).23(61);$(3l).23(61);$1n.23(3P);8(7.N.W){7.N.W.23(3P)}8(7.14.W){7.14.W.23(3P)}8(7.16.W){7.16.W.23(3P)}8(7.1b.1A){7.1b.1A.23(3P);8(7.1b.3K){7.1b.1A.13().2t()}}8(A.1r){y.1r(\'4q\');$1n.Z(\'7i\',\'2J\');A.1r=L}8(A.1Q){A.1Q=L}4T(7,\'4j\',G);3A(7,\'2N\',G)};8(1k(w)){w={\'18\':w}}F A={\'2l\':\'16\',\'27\':J,\'26\':L,\'2d\':L,\'1Q\':L,\'1r\':L},K={\'Q\':y.13().S,\'X\':0},1u={\'N\':3O,\'1f\':3O,\'2L\':2o(),\'3v\':0},V={\'2d\':L,\'1M\':0,\'2L\':0,\'2u\':\'\',\'1a\':[]},2b={\'3G\':[],\'3h\':[]},2g=[],G=$.1L(J,{},$.1s.1v.7k,w),7={},31=$.1L(J,{},u),$1n=(G.3s==\'36\')?y.36():y.8A(\'<\'+G.3s.55+\' 8B="\'+G.3s.7l+\'" />\').36();G.4o=y.4o;G.3T=$.1s.1v.3T++;G.2Z=(G.2Z&&$.1s.2Z)?\'2Z\':\'8C\';z.59(31,J,56);z.6D();z.6L();z.5N();8(2V(7.E.3m)){F B=7.E.3m}O{F B=[];8(7.E.3m!=0){B.1c(7.E.3m)}}8(7.25){B.8D(4k(7m(7.25),10))}8(B.S>0){1j(F a=0,l=B.S;a<7t>\'+a+\'\'};$.1s.1v.7u=D(a){$(1l).Z(\'P\',a+\'%\')};$.1s.1v.25={3F:D(n){n+=\'=\';F b=4g.25.3Q(\';\');1j(F a=0,l=b.S;at){18(c,\'2p 6O E (\'+t+\' Q, \'+a+\' 6P): 8V 8W.\');F f=\'4j\'}O{F f=\'4m\'}F s=(f==\'4m\')?\'2N\':\'3a\',h=2y(\'3t\',c);8(o.N.W){o.N.W[f]()[s](h)}8(o.14.W){o.14.W[f]()[s](h)}8(o.16.W){o.16.W[f]()[s](h)}8(o.1b.1A){o.1b.1A[f]()[s](h)}}D 3A(o,f,c){8(o.1U||o.3z)H;F a=(f==\'2N\'||f==\'3a\')?f:L,51=2y(\'8X\',c);8(o.N.W&&a){o.N.W[a](51)}8(o.14.W){F b=a||(f==0)?\'3a\':\'2N\';o.14.W[b](51)}8(o.16.W){F b=a||(f==o.E.M)?\'3a\':\'2N\';o.16.W[b](51)}}D 3S(a,b){8(1o(b)){b=b.1h(a)}O 8(1z(b)){b={}}H b}D 6l(a,b){b=3S(a,b);8(Y(b)){b={\'M\':b}}O 8(b==\'1d\'){b={\'M\':b,\'P\':b,\'1e\':b}}O 8(!1T(b)){b={}}H b}D 6m(a,b){b=3S(a,b);8(Y(b)){8(b<=50){b={\'E\':b}}O{b={\'1M\':b}}}O 8(1p(b)){b={\'2u\':b}}O 8(!1T(b)){b={}}H b}D 52(a,b){b=3S(a,b);8(1p(b)){F c=65(b);8(c==-1){b=$(b)}O{b=c}}H b}D 6n(a,b){b=52(a,b);8(2v(b)){b={\'W\':b}}O 8(1k(b)){b={\'1G\':b}}O 8(Y(b)){b={\'2K\':b}}8(b.1f){8(1p(b.1f)||2v(b.1f)){b.1f={\'2q\':b.1f}}}H b}D 6z(a,b){8(1o(b.W)){b.W=b.W.1h(a)}8(1p(b.W)){b.W=$(b.W)}8(!1k(b.1G)){b.1G=J}8(!Y(b.5U)){b.5U=0}8(1z(b.4X)){b.4X=J}8(!1k(b.5V)){b.5V=J}8(!Y(b.2K)){b.2K=(b.1M<10)?8Y:b.1M*5}8(b.1f){8(1o(b.1f.2q)){b.1f.2q=b.1f.2q.1h(a)}8(1p(b.1f.2q)){b.1f.2q=$(b.1f.2q)}8(b.1f.2q){8(!1o(b.1f.4B)){b.1f.4B=$.1s.1v.7u}8(!Y(b.1f.5u)){b.1f.5u=50}}O{b.1f=L}}H b}D 5a(a,b){b=52(a,b);8(2v(b)){b={\'W\':b}}O 8(Y(b)){b={\'2Y\':b}}H b}D 5j(a,b){8(1o(b.W)){b.W=b.W.1h(a)}8(1p(b.W)){b.W=$(b.W)}8(1p(b.2Y)){b.2Y=65(b.2Y)}H b}D 6o(a,b){b=52(a,b);8(2v(b)){b={\'1A\':b}}O 8(1k(b)){b={\'4Y\':b}}H b}D 6A(a,b){8(1o(b.1A)){b.1A=b.1A.1h(a)}8(1p(b.1A)){b.1A=$(b.1A)}8(!Y(b.E)){b.E=L}8(!1k(b.4Y)){b.4Y=L}8(!1o(b.3K)&&!53(b.3K)){b.3K=$.1s.1v.7s}8(!Y(b.4S)){b.4S=0}H b}D 6p(a,b){8(1o(b)){b=b.1h(a)}8(1z(b)){b={\'4h\':L}}8(3p(b)){b={\'4h\':b}}O 8(Y(b)){b={\'E\':b}}H b}D 6B(a,b){8(!1k(b.4h)){b.4h=J}8(!1k(b.5R)){b.5R=L}8(!1T(b.2G)){b.2G={}}8(!1k(b.2G.7y)){b.2G.7y=L}H b}D 6q(a,b){8(1o(b)){b=b.1h(a)}8(3p(b)){b={}}O 8(Y(b)){b={\'E\':b}}O 8(1z(b)){b=L}H b}D 6C(a,b){H b}D 3J(a,b,c,d,e){8(1p(a)){a=$(a,e)}8(1T(a)){a=$(a,e)}8(2v(a)){a=e.13().7a(a);8(!1k(c)){c=L}}O{8(!1k(c)){c=J}}8(!Y(a)){a=0}8(!Y(b)){b=0}8(c){a+=d.X}a+=b;8(d.Q>0){2h(a>=d.Q){a-=d.Q}2h(a<0){a+=d.Q}}H a}D 4D(i,o,s){F t=0,x=0;1j(F a=s;a>=0;a--){F j=i.1N(a);t+=(j.2f(\':M\'))?j[o.d[\'2w\']](J):0;8(t>o.3U){H x}8(a==0){a=i.S}x++}}D 7c(i,o,s){H 66(i,o.E.1t,o.E.U.4t,s)}D 6T(i,o,s,m){H 66(i,o.E.1t,m,s)}D 66(i,f,m,s){F t=0,x=0;1j(F a=s,l=i.S;a>=0;a--){x++;8(x==l){H x}F j=i.1N(a);8(j.2f(f)){t++;8(t==m){H x}}8(a==0){a=l}}}D 5x(a,o){H o.E.U.4t||a.13().19(0,o.E.M).1t(o.E.1t).S}D 32(i,o,s){F t=0,x=0;1j(F a=s,l=i.S-1;a<=l;a++){F j=i.1N(a);t+=(j.2f(\':M\'))?j[o.d[\'2w\']](J):0;8(t>o.3U){H x}x++;8(x==l+1){H x}8(a==l){a=-1}}}D 5I(i,o,s,l){F v=32(i,o,s);8(!o.1U){8(s+v>l){v=l-s}}H v}D 3W(i,o,s){H 68(i,o.E.1t,o.E.U.4t,s,o.1U)}D 6Z(i,o,s,m){H 68(i,o.E.1t,m+1,s,o.1U)-1}D 68(i,f,m,s,c){F t=0,x=0;1j(F a=s,l=i.S-1;a<=l;a++){x++;8(x>=l){H x}F j=i.1N(a);8(j.2f(f)){t++;8(t==m){H x}}8(a==l){a=-1}}}D 3I(i,o){H i.19(0,o.E.M)}D 6V(i,o,n){H i.19(n,o.E.U.20+n)}D 6W(i,o){H i.19(0,o.E.M)}D 71(i,o){H i.19(0,o.E.U.20)}D 72(i,o,n){H i.19(n,o.E.M+n)}D 4x(i,o,d){8(o.1R){8(!1p(d)){d=\'2a\'}i.1W(D(){F j=$(1l),m=4k(j.Z(o.d[\'1S\']),10);8(!Y(m)){m=0}j.1q(d,m)})}}D 1Y(i,o,m){8(o.1R){F x=(1k(m))?m:L;8(!Y(m)){m=0}4x(i,o,\'7z\');i.1W(D(){F j=$(1l);j.Z(o.d[\'1S\'],((x)?j.1q(\'7z\'):m+j.1q(\'2a\')))})}}D 41(i){i.1W(D(){F j=$(1l);j.1q(\'7A\',j.7B(\'7C\')||\'\')})}D 4U(i){i.1W(D(){F j=$(1l);j.7B(\'7C\',j.1q(\'7A\')||\'\')})}D 5r(o,b){F c=o.E.M,7D=o.E[o.d[\'P\']],69=o[o.d[\'1e\']],7E=3V(69);b.1W(D(){F a=$(1l),6a=7D-7F(a,o,\'8Z\');a[o.d[\'P\']](6a);8(7E){a[o.d[\'1e\']](4s(6a,69))}})}D 4Q(a,o){F b=a.36(),$i=a.13(),$v=3I($i,o),54=4I(4J($v,o,J),o,L);b.Z(54);8(o.1R){F p=o.1i,r=p[o.d[1]];8(o.1B&&r<0){r=0}F c=$v.2P();c.Z(o.d[\'1S\'],c.1q(\'2a\')+r);a.Z(o.d[\'3q\'],p[o.d[0]]);a.Z(o.d[\'1m\'],p[o.d[3]])}a.Z(o.d[\'P\'],54[o.d[\'P\']]+(2R($i,o,\'P\')*2));a.Z(o.d[\'1e\'],6b($i,o,\'1e\'));H 54}D 4J(i,o,a){H[2R(i,o,\'P\',a),6b(i,o,\'1e\',a)]}D 6b(i,o,a,b){8(!1k(b)){b=L}8(Y(o[o.d[a]])&&b){H o[o.d[a]]}8(Y(o.E[o.d[a]])){H o.E[o.d[a]]}a=(a.6c().3R(\'P\')>-1)?\'2w\':\'3n\';H 4n(i,o,a)}D 4n(i,o,b){F s=0;1j(F a=0,l=i.S;a-1)?\'2w\':\'3n\',s=0;1j(F a=0,l=i.S;a-1&&1z(e[b])){e[b]=c[a];17}}}H e}D 6x(p){8(1z(p)){H[0,0,0,0]}8(Y(p)){H[p,p,p,p]}8(1p(p)){p=p.3Q(\'91\').7I(\'\').3Q(\'92\').7I(\'\').3Q(\' \')}8(!2V(p)){H[0,0,0,0]}1j(F i=0;i<4;i++){p[i]=4k(p[i],10)}1F(p.S){R 0:H[0,0,0,0];R 1:H[p[0],p[0],p[0],p[0]];R 2:H[p[0],p[1],p[0],p[1]];R 3:H[p[0],p[1],p[2],p[1]];2J:H[p[0],p[1],p[2],p[3]]}}D 4H(a,o){F x=(Y(o[o.d[\'P\']]))?1H.2z(o[o.d[\'P\']]-2R(a,o,\'P\')):0;1F(o.1B){R\'1m\':H[0,x];R\'35\':H[x,0];R\'5f\':2J:H[1H.2z(x/2),1H.4l(x/2)]}}D 6r(o){F a=[[\'P\',\'7J\',\'2w\',\'1e\',\'7K\',\'3n\',\'1m\',\'3q\',\'1S\',0,1,2,3],[\'1e\',\'7K\',\'3n\',\'P\',\'7J\',\'2w\',\'3q\',\'1m\',\'5p\',3,2,1,0]];F b=a[0].S,7L=(o.2l==\'35\'||o.2l==\'1m\')?0:1;F c={};1j(F d=0;dp.S){F c=J,6e=m[0],30=m[1]}O{F c=L,6e=p[0],30=p[1]}1F(6e){R\'93\':v=(x%2==1)?x-1:x;17;R\'94\':v=(x%2==0)?x-1:x;17;2J:v=x;17}30=4k(30,10);8(Y(30)){8(c){30=-30}v+=30}}8(!Y(v)||v<1){v=1}H v}D 2x(x,o,a,b){H 6f(4E(x,o,a,b),o.E.U)}D 6f(v,i){8(Y(i.34)&&vi.1X){v=i.1X}8(v<1){v=1}H v}D 5k(s){8(!2V(s)){s=[[s]]}8(!2V(s[0])){s=[s]}1j(F j=0,l=s.S;j0)?\':M\':\'*\'}8(!a[b.d[\'P\']]){8(b.2H){18(J,\'7M a \'+b.d[\'P\']+\' 1j 75 E!\');a[b.d[\'P\']]=4n(c,b,\'2w\')}O{a[b.d[\'P\']]=(6d(c,b,\'2w\'))?\'1d\':c[b.d[\'2w\']](J)}}8(!a[b.d[\'1e\']]){a[b.d[\'1e\']]=(6d(c,b,\'3n\'))?\'1d\':c[b.d[\'3n\']](J)}a.3M.P=a.P;a.3M.1e=a.1e;H a}D 6w(a,b){8(a.E[a.d[\'P\']]==\'1d\'){a.E.U.1d=J}8(!a.E.U.1d){8(Y(a[a.d[\'P\']])){a.E.M=1H.4l(a[a.d[\'P\']]/a.E[a.d[\'P\']])}O{a.E.M=1H.4l(b/a.E[a.d[\'P\']]);a[a.d[\'P\']]=a.E.M*a.E[a.d[\'P\']];8(!a.E.U.2c){a.1B=L}}8(a.E.M==\'95\'||a.E.M<1){18(J,\'2p a 5K 28 4f M E: 7M 46 "1d".\');a.E.U.1d=J}}H a}D 6t(a,b,c){8(a==\'N\'){a=4n(c,b,\'2w\')}H a}D 6u(a,b,c){8(a==\'N\'){a=4n(c,b,\'3n\')}8(!a){a=b.E[b.d[\'1e\']]}H a}D 5i(o,a){F p=4H(3I(a,o),o);o.1i[o.d[1]]=p[1];o.1i[o.d[3]]=p[0];H o}D 5g(o,a,b){F c=6f(1H.2z(o[o.d[\'P\']]/o.E[o.d[\'P\']]),o.E.U);8(c>a.S){c=a.S}F d=1H.4l(o[o.d[\'P\']]/c);o.E.M=c;o.E[o.d[\'P\']]=d;o[o.d[\'P\']]=c*d;H o}D 3N(p){8(1p(p)){F i=(p.3R(\'96\')>-1)?J:L,r=(p.3R(\'3g\')>-1)?J:L}O{F i=r=L}H[i,r]}D 97(a){H(Y(a))?a:3O}D 6g(a){H(a===3O)}D 1z(a){H(6g(a)||2X a==\'7N\'||a===\'\'||a===\'7N\')}D 2V(a){H(a 2W 98)}D 2v(a){H(a 2W 7O)}D 1T(a){H((a 2W 99||2X a==\'2A\')&&!6g(a)&&!2v(a)&&!2V(a))}D Y(a){H((a 2W 4e||2X a==\'28\')&&!9a(a))}D 1p(a){H((a 2W 9b||2X a==\'2M\')&&!1z(a)&&!3p(a)&&!53(a))}D 1o(a){H(a 2W 9c||2X a==\'D\')}D 1k(a){H(a 2W 9d||2X a==\'3d\'||3p(a)||53(a))}D 3p(a){H(a===J||a===\'J\')}D 53(a){H(a===L||a===\'L\')}D 3V(x){H(1p(x)&&x.19(-1)==\'%\')}D 2o(){H 7v 7w().2o()}D 3X(o,n){18(J,o+\' 2f 9e, 9f 1j 9g 9h 9i 9j. 9k \'+n+\' 9l.\')}D 18(d,m){8(!1z(3l.6h)&&!1z(3l.6h.7P)){8(1T(d)){F s=\' (\'+d.4o+\')\';d=d.18}O{F s=\'\'}8(!d){H L}8(1p(m)){m=\'1v\'+s+\': \'+m}O{m=[\'1v\'+s+\':\',m]}3l.6h.7P(m)}H L}$.1L($.2u,{\'9m\':D(t){F a=t*t;H t*(-a*t+4*a-6*t+4)},\'9n\':D(t){H t*(4*t*t-9*t+6)},\'9o\':D(t){F a=t*t;H t*(33*a*a-9p*a*t+9q*a-67*t+15)}})})(7O);',62,585,'|||||||opts|if|||||||||||||||||||||||||||||||function|items|var|conf|return|cf_e|true|itms|false|visible|auto|else|width|total|case|length|trigger|visibleConf|scrl|button|first|is_number|css||bind|tt0|children|prev||next|break|debug|slice|anims|pagination|push|variable|height|progress|stopPropagation|call|padding|for|is_boolean|this|left|wrp|is_function|is_string|data|swipe|fn|filter|tmrs|carouFredSel|fade|_onafter|_moveitems|is_undefined|container|align|_s_paddingold|_s_paddingcur|opacity|switch|play|Math|cover|_position|scroll|extend|duration|eq|_a_wrapper|triggerHandler|mousewheel|usePadding|marginRight|is_object|circular|fx|each|max|sz_resetMargin|i_cur_l|old|i_old_l|uncover|unbind||cookie|isScrolling|isPaused|number|a_cfs|_cfs_origCssMargin|clbk|adjust|isStopped|stopImmediatePropagation|is|queu|while|i_new|w_siz|nr|direction|avail_primary|synchronise|getTime|Not|bar|i_new_l|a_cur|remove|easing|is_jquery|outerWidth|cf_getItemsAdjust|cf_c|ceil|object|pR|_s_paddingnew|preventDefault|a_itm|pauseOnHover|options|responsive|100|default|timeoutDuration|startTime|string|removeClass|queue|last|i_skp|ms_getTotalSize|a_old|a_lef|a_dur|is_array|instanceof|typeof|key|transition|adj|opts_orig|gn_getVisibleItemsNext||min|right|parent||||addClass|pause|perc|boolean|cf_sortParams|scrolling|resume|onAfter|i_old|crossfade|slideTo|window|start|outerHeight|_cfs_triggerEvent|is_true|top|position|wrapper|hidden|sc_clearTimers|timePassed|Carousel|sc_startScroll|events|infinite|nv_enableNavi|i_siz|i_siz_vis|_a_paddingold|_a_paddingcur|get|onBefore|updatePageStatus|gi_getCurrentItems|gn_getItemIndex|anchorBuilder|event|sizesConf|bt_pauseOnHoverConfig|null|ns2|split|indexOf|go_getObject|serialNumber|maxDimension|is_percentage|gn_getVisibleItemsNextFilter|deprecated|orgCSS|zIndex||sz_storeOrigCss|none|sc_stopScroll|dur2|prefix|to|appendTo|sc_setScroll||sc_fireCallbacks|currentPage|end|before|Number|of|document|onTouch|onResize|hide|parseInt|floor|show|ms_getTrueLargestSize|selector|currentPosition|destroy|primarySizePercentage|ms_getPercentage|org|onTimeoutStart|onTimeoutPause|onTimeoutEnd|sz_storeMargin|stopped|pre|post|updater|minimum|gn_getVisibleItemsPrev|cf_getAdjust|onEnd|clone|cf_getAlignPadding|cf_mapWrapperSizes|ms_getSizes|a_wsz|a_new|not|a_cfs_vis|updateSizes|eval|sz_setSizes|pgs|deviation|nv_showNavi|sz_restoreOrigCss|mouseenter|mouseleave|pauseOnEvent|keys|throttle||di|go_getNaviObject|is_false|sz|element|starting_position|_cfs_isCarousel||_cfs_init|go_getPrevNextObject|defaults|up|ms_getParentSize|ms_getMaxDimension|center|in_getResponsiveValues|bottom|in_getAlignPadding|go_complementPrevNextObject|cf_getSynchArr|onPauseStart|onPausePause|onPauseEnd|pauseDuration|marginBottom|newPosition|sz_setResponsiveSizes|_cfs_unbind_events|finish|interval|type|conditions|gn_getVisibleOrg|backward|sc_hideHiddenItems|a_lef_vis|sc_getDuration|_a_paddingnew|sc_showHiddenItems|sc_mapCallbackArguments|sc_afterScroll|sc_fireQueue|cf_setCookie|gn_getVisibleItemsNextTestCircular|slideToPage|valid|linkAnchors|value|_cfs_bind_buttons|click|_cfs_unbind_buttons|scrolled|onMouse|swP|swN|delay|pauseOnResize|debounce|onWindowResize|_windowHeight|nh||ns3|continue|classnames|set|cf_getKeyCode|gn_getItemsPrevFilter||gn_getItemsNextFilter|seco|nw|ms_getLargestSize|toLowerCase|ms_hasVariableSizes|sta|cf_getItemAdjustMinMax|is_null|console|caroufredsel|No|found|go_getItemsObject|go_getScrollObject|go_getAutoObject|go_getPaginationObject|go_getSwipeObject|go_getMousewheelObject|cf_getDimensions|in_complementItems|in_complementPrimarySize|in_complementSecondarySize|upDateOnWindowResize|in_complementVisibleItems|cf_getPadding|500|go_complementAutoObject|go_complementPaginationObject|go_complementSwipeObject|go_complementMousewheelObject|_cfs_build|in_mapCss|textAlign|float|marginTop|marginLeft|absolute|_cfs_origCssZindex|_cfs_bind_events|stop|paused|enough|needed|page|slide_|configuration|gn_getScrollItemsPrevFilter|Scrolling|gi_getOldItemsPrev|gi_getNewItemsPrev|directscroll|concat|gn_getScrollItemsNextFilter|forward|gi_getOldItemsNext|gi_getNewItemsNext|jumpToStart|after|the|append|removeItem|round|hash|index|selected|gn_getVisibleItemsPrevFilter|Item|keyup|keyCode|scN|down|cursor|mcN|configs|classname|cf_getCookie|random|itm|onCreate|swing|namespace|pageAnchorBuilder|span|progressbarUpdater|new|Date|_cfs_isHidden|triggerOnTouchEnd|_cfs_tempCssMargin|_cfs_origCss|attr|style|newS|secp|ms_getPaddingBorderMargin|l1|l2|join|innerWidth|innerHeight|dx|Set|undefined|jQuery|log|caroufredsel_cookie_|relative|fixed|overflow|setInterval|setTimeout|or|Callback|returned|Page|resumed|currently|slide_prev|prependTo|slide_next|prevPage|nextPage|prepend|carousel|insertItem|Correct|insert|Appending|item|add|detach|currentVisible|body|find|Preventing|non|sliding|replaceWith|widths|heights|automatically|ontouchstart|in|swipeUp|swipeDown|swipeLeft|swipeRight|move|200|300|resize|wrap|class|animate|unshift|location|cfs|div|caroufredsel_wrapper|href|charAt|setTime|1000|expires|toGMTString|path|ease|orgDuration|shift|clearTimeout|clearInterval|skipped|Hiding|navigation|disabled|2500|Width|outer|px|em|even|odd|Infinity|immediate|bt_mousesheelNumber|Array|Object|isNaN|String|Function|Boolean|DEPRECATED|support|it|will|be|removed|Use|instead|quadratic|cubic|elastic|106|126'.split('|'),0,{})) \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0.js b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0.js new file mode 100644 index 00000000..b3c9c275 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/caroufredsel/jquery.carouFredSel-6.2.0.js @@ -0,0 +1,4256 @@ +/* + * jQuery carouFredSel 6.2.0 + * Demo's and documentation: + * caroufredsel.dev7studios.com + * + * Copyright (c) 2013 Fred Heusschen + * www.frebsite.nl + * + * Dual licensed under the MIT and GPL licenses. + * http://en.wikipedia.org/wiki/MIT_License + * http://en.wikipedia.org/wiki/GNU_General_Public_License + */ + + +(function($) { + + + // LOCAL + + if ( $.fn.carouFredSel ) + { + return; + } + + $.fn.caroufredsel = $.fn.carouFredSel = function(options, configs) + { + + // no element + if (this.length == 0) + { + debug( true, 'No element found for "' + this.selector + '".' ); + return this; + } + + // multiple elements + if (this.length > 1) + { + return this.each(function() { + $(this).carouFredSel(options, configs); + }); + } + + + var $cfs = this, + $tt0 = this[0], + starting_position = false; + + if ($cfs.data('_cfs_isCarousel')) + { + starting_position = $cfs.triggerHandler('_cfs_triggerEvent', 'currentPosition'); + $cfs.trigger('_cfs_triggerEvent', ['destroy', true]); + } + + var FN = {}; + + FN._cfs_init = function(o, setOrig, start) + { + o = go_getObject($tt0, o); + + o.items = go_getItemsObject($tt0, o.items); + o.scroll = go_getScrollObject($tt0, o.scroll); + o.auto = go_getAutoObject($tt0, o.auto); + o.prev = go_getPrevNextObject($tt0, o.prev); + o.next = go_getPrevNextObject($tt0, o.next); + o.pagination = go_getPaginationObject($tt0, o.pagination); + o.swipe = go_getSwipeObject($tt0, o.swipe); + o.mousewheel = go_getMousewheelObject($tt0, o.mousewheel); + + if (setOrig) + { + opts_orig = $.extend(true, {}, $.fn.carouFredSel.defaults, o); + } + + opts = $.extend(true, {}, $.fn.carouFredSel.defaults, o); + opts.d = cf_getDimensions(opts); + + crsl.direction = (opts.direction == 'up' || opts.direction == 'left') ? 'next' : 'prev'; + + var a_itm = $cfs.children(), + avail_primary = ms_getParentSize($wrp, opts, 'width'); + + if (is_true(opts.cookie)) + { + opts.cookie = 'caroufredsel_cookie_' + conf.serialNumber; + } + + opts.maxDimension = ms_getMaxDimension(opts, avail_primary); + + // complement items and sizes + opts.items = in_complementItems(opts.items, opts, a_itm, start); + opts[opts.d['width']] = in_complementPrimarySize(opts[opts.d['width']], opts, a_itm); + opts[opts.d['height']] = in_complementSecondarySize(opts[opts.d['height']], opts, a_itm); + + // primary size not set for a responsive carousel + if (opts.responsive) + { + if (!is_percentage(opts[opts.d['width']])) + { + opts[opts.d['width']] = '100%'; + } + } + + // primary size is percentage + if (is_percentage(opts[opts.d['width']])) + { + crsl.upDateOnWindowResize = true; + crsl.primarySizePercentage = opts[opts.d['width']]; + opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage); + if (!opts.items.visible) + { + opts.items.visibleConf.variable = true; + } + } + + if (opts.responsive) + { + opts.usePadding = false; + opts.padding = [0, 0, 0, 0]; + opts.align = false; + opts.items.visibleConf.variable = false; + } + else + { + // visible-items not set + if (!opts.items.visible) + { + opts = in_complementVisibleItems(opts, avail_primary); + } + + // primary size not set -> calculate it or set to "variable" + if (!opts[opts.d['width']]) + { + if (!opts.items.visibleConf.variable && is_number(opts.items[opts.d['width']]) && opts.items.filter == '*') + { + opts[opts.d['width']] = opts.items.visible * opts.items[opts.d['width']]; + opts.align = false; + } + else + { + opts[opts.d['width']] = 'variable'; + } + } + // align not set -> set to center if primary size is number + if (is_undefined(opts.align)) + { + opts.align = (is_number(opts[opts.d['width']])) + ? 'center' + : false; + } + // set variabe visible-items + if (opts.items.visibleConf.variable) + { + opts.items.visible = gn_getVisibleItemsNext(a_itm, opts, 0); + } + } + + // set visible items by filter + if (opts.items.filter != '*' && !opts.items.visibleConf.variable) + { + opts.items.visibleConf.org = opts.items.visible; + opts.items.visible = gn_getVisibleItemsNextFilter(a_itm, opts, 0); + } + + opts.items.visible = cf_getItemsAdjust(opts.items.visible, opts, opts.items.visibleConf.adjust, $tt0); + opts.items.visibleConf.old = opts.items.visible; + + if (opts.responsive) + { + if (!opts.items.visibleConf.min) + { + opts.items.visibleConf.min = opts.items.visible; + } + if (!opts.items.visibleConf.max) + { + opts.items.visibleConf.max = opts.items.visible; + } + opts = in_getResponsiveValues(opts, a_itm, avail_primary); + } + else + { + opts.padding = cf_getPadding(opts.padding); + + if (opts.align == 'top') + { + opts.align = 'left'; + } + else if (opts.align == 'bottom') + { + opts.align = 'right'; + } + + switch (opts.align) + { + // align: center, left or right + case 'center': + case 'left': + case 'right': + if (opts[opts.d['width']] != 'variable') + { + opts = in_getAlignPadding(opts, a_itm); + opts.usePadding = true; + } + break; + + // padding + default: + opts.align = false; + opts.usePadding = ( + opts.padding[0] == 0 && + opts.padding[1] == 0 && + opts.padding[2] == 0 && + opts.padding[3] == 0 + ) ? false : true; + break; + } + } + + if (!is_number(opts.scroll.duration)) + { + opts.scroll.duration = 500; + } + if (is_undefined(opts.scroll.items)) + { + opts.scroll.items = (opts.responsive || opts.items.visibleConf.variable || opts.items.filter != '*') + ? 'visible' + : opts.items.visible; + } + + opts.auto = $.extend(true, {}, opts.scroll, opts.auto); + opts.prev = $.extend(true, {}, opts.scroll, opts.prev); + opts.next = $.extend(true, {}, opts.scroll, opts.next); + opts.pagination = $.extend(true, {}, opts.scroll, opts.pagination); + // swipe and mousewheel extend later on, per direction + + opts.auto = go_complementAutoObject($tt0, opts.auto); + opts.prev = go_complementPrevNextObject($tt0, opts.prev); + opts.next = go_complementPrevNextObject($tt0, opts.next); + opts.pagination = go_complementPaginationObject($tt0, opts.pagination); + opts.swipe = go_complementSwipeObject($tt0, opts.swipe); + opts.mousewheel = go_complementMousewheelObject($tt0, opts.mousewheel); + + if (opts.synchronise) + { + opts.synchronise = cf_getSynchArr(opts.synchronise); + } + + + // DEPRECATED + if (opts.auto.onPauseStart) + { + opts.auto.onTimeoutStart = opts.auto.onPauseStart; + deprecated('auto.onPauseStart', 'auto.onTimeoutStart'); + } + if (opts.auto.onPausePause) + { + opts.auto.onTimeoutPause = opts.auto.onPausePause; + deprecated('auto.onPausePause', 'auto.onTimeoutPause'); + } + if (opts.auto.onPauseEnd) + { + opts.auto.onTimeoutEnd = opts.auto.onPauseEnd; + deprecated('auto.onPauseEnd', 'auto.onTimeoutEnd'); + } + if (opts.auto.pauseDuration) + { + opts.auto.timeoutDuration = opts.auto.pauseDuration; + deprecated('auto.pauseDuration', 'auto.timeoutDuration'); + } + // /DEPRECATED + + + }; // /init + + + FN._cfs_build = function() { + $cfs.data('_cfs_isCarousel', true); + + var a_itm = $cfs.children(), + orgCSS = in_mapCss($cfs, ['textAlign', 'float', 'position', 'top', 'right', 'bottom', 'left', 'zIndex', 'width', 'height', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft']), + newPosition = 'relative'; + + switch (orgCSS.position) + { + case 'absolute': + case 'fixed': + newPosition = orgCSS.position; + break; + } + + if (conf.wrapper == 'parent') + { + sz_storeOrigCss($wrp); + } + else + { + $wrp.css(orgCSS); + } + $wrp.css({ + 'overflow' : 'hidden', + 'position' : newPosition + }); + + sz_storeOrigCss($cfs); + $cfs.data('_cfs_origCssZindex', orgCSS.zIndex); + $cfs.css({ + 'textAlign' : 'left', + 'float' : 'none', + 'position' : 'absolute', + 'top' : 0, + 'right' : 'auto', + 'bottom' : 'auto', + 'left' : 0, + 'marginTop' : 0, + 'marginRight' : 0, + 'marginBottom' : 0, + 'marginLeft' : 0 + }); + + sz_storeMargin(a_itm, opts); + sz_storeOrigCss(a_itm); + if (opts.responsive) + { + sz_setResponsiveSizes(opts, a_itm); + } + + }; // /build + + + FN._cfs_bind_events = function() { + FN._cfs_unbind_events(); + + + // stop event + $cfs.bind(cf_e('stop', conf), function(e, imm) { + e.stopPropagation(); + + // button + if (!crsl.isStopped) + { + if (opts.auto.button) + { + opts.auto.button.addClass(cf_c('stopped', conf)); + } + } + + // set stopped + crsl.isStopped = true; + + if (opts.auto.play) + { + opts.auto.play = false; + $cfs.trigger(cf_e('pause', conf), imm); + } + return true; + }); + + + // finish event + $cfs.bind(cf_e('finish', conf), function(e) { + e.stopPropagation(); + if (crsl.isScrolling) + { + sc_stopScroll(scrl); + } + return true; + }); + + + // pause event + $cfs.bind(cf_e('pause', conf), function(e, imm, res) { + e.stopPropagation(); + tmrs = sc_clearTimers(tmrs); + + // immediately pause + if (imm && crsl.isScrolling) + { + scrl.isStopped = true; + var nst = getTime() - scrl.startTime; + scrl.duration -= nst; + if (scrl.pre) + { + scrl.pre.duration -= nst; + } + if (scrl.post) + { + scrl.post.duration -= nst; + } + sc_stopScroll(scrl, false); + } + + // update remaining pause-time + if (!crsl.isPaused && !crsl.isScrolling) + { + if (res) + { + tmrs.timePassed += getTime() - tmrs.startTime; + } + } + + // button + if (!crsl.isPaused) + { + if (opts.auto.button) + { + opts.auto.button.addClass(cf_c('paused', conf)); + } + } + + // set paused + crsl.isPaused = true; + + // pause pause callback + if (opts.auto.onTimeoutPause) + { + var dur1 = opts.auto.timeoutDuration - tmrs.timePassed, + perc = 100 - Math.ceil( dur1 * 100 / opts.auto.timeoutDuration ); + + opts.auto.onTimeoutPause.call($tt0, perc, dur1); + } + return true; + }); + + + // play event + $cfs.bind(cf_e('play', conf), function(e, dir, del, res) { + e.stopPropagation(); + tmrs = sc_clearTimers(tmrs); + + // sort params + var v = [dir, del, res], + t = ['string', 'number', 'boolean'], + a = cf_sortParams(v, t); + + dir = a[0]; + del = a[1]; + res = a[2]; + + if (dir != 'prev' && dir != 'next') + { + dir = crsl.direction; + } + if (!is_number(del)) + { + del = 0; + } + if (!is_boolean(res)) + { + res = false; + } + + // stopped? + if (res) + { + crsl.isStopped = false; + opts.auto.play = true; + } + if (!opts.auto.play) + { + e.stopImmediatePropagation(); + return debug(conf, 'Carousel stopped: Not scrolling.'); + } + + // button + if (crsl.isPaused) + { + if (opts.auto.button) + { + opts.auto.button.removeClass(cf_c('stopped', conf)); + opts.auto.button.removeClass(cf_c('paused', conf)); + } + } + + // set playing + crsl.isPaused = false; + tmrs.startTime = getTime(); + + // timeout the scrolling + var dur1 = opts.auto.timeoutDuration + del; + dur2 = dur1 - tmrs.timePassed; + perc = 100 - Math.ceil(dur2 * 100 / dur1); + + if (opts.auto.progress) + { + tmrs.progress = setInterval(function() { + var pasd = getTime() - tmrs.startTime + tmrs.timePassed, + perc = Math.ceil(pasd * 100 / dur1); + opts.auto.progress.updater.call(opts.auto.progress.bar[0], perc); + }, opts.auto.progress.interval); + } + + tmrs.auto = setTimeout(function() { + if (opts.auto.progress) + { + opts.auto.progress.updater.call(opts.auto.progress.bar[0], 100); + } + if (opts.auto.onTimeoutEnd) + { + opts.auto.onTimeoutEnd.call($tt0, perc, dur2); + } + if (crsl.isScrolling) + { + $cfs.trigger(cf_e('play', conf), dir); + } + else + { + $cfs.trigger(cf_e(dir, conf), opts.auto); + } + }, dur2); + + // pause start callback + if (opts.auto.onTimeoutStart) + { + opts.auto.onTimeoutStart.call($tt0, perc, dur2); + } + + return true; + }); + + + // resume event + $cfs.bind(cf_e('resume', conf), function(e) { + e.stopPropagation(); + if (scrl.isStopped) + { + scrl.isStopped = false; + crsl.isPaused = false; + crsl.isScrolling = true; + scrl.startTime = getTime(); + sc_startScroll(scrl, conf); + } + else + { + $cfs.trigger(cf_e('play', conf)); + } + return true; + }); + + + // prev + next events + $cfs.bind(cf_e('prev', conf)+' '+cf_e('next', conf), function(e, obj, num, clb, que) { + e.stopPropagation(); + + // stopped or hidden carousel, don't scroll, don't queue + if (crsl.isStopped || $cfs.is(':hidden')) + { + e.stopImmediatePropagation(); + return debug(conf, 'Carousel stopped or hidden: Not scrolling.'); + } + + // not enough items + var minimum = (is_number(opts.items.minimum)) ? opts.items.minimum : opts.items.visible + 1; + if (minimum > itms.total) + { + e.stopImmediatePropagation(); + return debug(conf, 'Not enough items ('+itms.total+' total, '+minimum+' needed): Not scrolling.'); + } + + // get config + var v = [obj, num, clb, que], + t = ['object', 'number/string', 'function', 'boolean'], + a = cf_sortParams(v, t); + + obj = a[0]; + num = a[1]; + clb = a[2]; + que = a[3]; + + var eType = e.type.slice(conf.events.prefix.length); + + if (!is_object(obj)) + { + obj = {}; + } + if (is_function(clb)) + { + obj.onAfter = clb; + } + if (is_boolean(que)) + { + obj.queue = que; + } + obj = $.extend(true, {}, opts[eType], obj); + + // test conditions callback + if (obj.conditions && !obj.conditions.call($tt0, eType)) + { + e.stopImmediatePropagation(); + return debug(conf, 'Callback "conditions" returned false.'); + } + + if (!is_number(num)) + { + if (opts.items.filter != '*') + { + num = 'visible'; + } + else + { + var arr = [num, obj.items, opts[eType].items]; + for (var a = 0, l = arr.length; a < l; a++) + { + if (is_number(arr[a]) || arr[a] == 'page' || arr[a] == 'visible') { + num = arr[a]; + break; + } + } + } + switch(num) { + case 'page': + e.stopImmediatePropagation(); + return $cfs.triggerHandler(cf_e(eType+'Page', conf), [obj, clb]); + break; + + case 'visible': + if (!opts.items.visibleConf.variable && opts.items.filter == '*') + { + num = opts.items.visible; + } + break; + } + } + + // resume animation, add current to queue + if (scrl.isStopped) + { + $cfs.trigger(cf_e('resume', conf)); + $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]); + e.stopImmediatePropagation(); + return debug(conf, 'Carousel resumed scrolling.'); + } + + // queue if scrolling + if (obj.duration > 0) + { + if (crsl.isScrolling) + { + if (obj.queue) + { + if (obj.queue == 'last') + { + queu = []; + } + if (obj.queue != 'first' || queu.length == 0) + { + $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]); + } + } + e.stopImmediatePropagation(); + return debug(conf, 'Carousel currently scrolling.'); + } + } + + tmrs.timePassed = 0; + $cfs.trigger(cf_e('slide_'+eType, conf), [obj, num]); + + // synchronise + if (opts.synchronise) + { + var s = opts.synchronise, + c = [obj, num]; + + for (var j = 0, l = s.length; j < l; j++) { + var d = eType; + if (!s[j][2]) + { + d = (d == 'prev') ? 'next' : 'prev'; + } + if (!s[j][1]) + { + c[0] = s[j][0].triggerHandler('_cfs_triggerEvent', ['configuration', d]); + } + c[1] = num + s[j][3]; + s[j][0].trigger('_cfs_triggerEvent', ['slide_'+d, c]); + } + } + return true; + }); + + + // prev event + $cfs.bind(cf_e('slide_prev', conf), function(e, sO, nI) { + e.stopPropagation(); + var a_itm = $cfs.children(); + + // non-circular at start, scroll to end + if (!opts.circular) + { + if (itms.first == 0) + { + if (opts.infinite) + { + $cfs.trigger(cf_e('next', conf), itms.total-1); + } + return e.stopImmediatePropagation(); + } + } + + sz_resetMargin(a_itm, opts); + + // find number of items to scroll + if (!is_number(nI)) + { + if (opts.items.visibleConf.variable) + { + nI = gn_getVisibleItemsPrev(a_itm, opts, itms.total-1); + } + else if (opts.items.filter != '*') + { + var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts); + nI = gn_getScrollItemsPrevFilter(a_itm, opts, itms.total-1, xI); + } + else + { + nI = opts.items.visible; + } + nI = cf_getAdjust(nI, opts, sO.items, $tt0); + } + + // prevent non-circular from scrolling to far + if (!opts.circular) + { + if (itms.total - nI < itms.first) + { + nI = itms.total - itms.first; + } + } + + // set new number of visible items + opts.items.visibleConf.old = opts.items.visible; + if (opts.items.visibleConf.variable) + { + var vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total-nI), opts, opts.items.visibleConf.adjust, $tt0); + if (opts.items.visible+nI <= vI && nI < itms.total) + { + nI++; + vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total-nI), opts, opts.items.visibleConf.adjust, $tt0); + } + opts.items.visible = vI; + } + else if (opts.items.filter != '*') + { + var vI = gn_getVisibleItemsNextFilter(a_itm, opts, itms.total-nI); + opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0); + } + + sz_resetMargin(a_itm, opts, true); + + // scroll 0, don't scroll + if (nI == 0) + { + e.stopImmediatePropagation(); + return debug(conf, '0 items to scroll: Not scrolling.'); + } + debug(conf, 'Scrolling '+nI+' items backward.'); + + + // save new config + itms.first += nI; + while (itms.first >= itms.total) + { + itms.first -= itms.total; + } + + // non-circular callback + if (!opts.circular) + { + if (itms.first == 0 && sO.onEnd) + { + sO.onEnd.call($tt0, 'prev'); + } + if (!opts.infinite) + { + nv_enableNavi(opts, itms.first, conf); + } + } + + // rearrange items + $cfs.children().slice(itms.total-nI, itms.total).prependTo($cfs); + if (itms.total < opts.items.visible + nI) + { + $cfs.children().slice(0, (opts.items.visible+nI)-itms.total).clone(true).appendTo($cfs); + } + + // the needed items + var a_itm = $cfs.children(), + i_old = gi_getOldItemsPrev(a_itm, opts, nI), + i_new = gi_getNewItemsPrev(a_itm, opts), + i_cur_l = a_itm.eq(nI-1), + i_old_l = i_old.last(), + i_new_l = i_new.last(); + + sz_resetMargin(a_itm, opts); + + var pL = 0, + pR = 0; + + if (opts.align) + { + var p = cf_getAlignPadding(i_new, opts); + pL = p[0]; + pR = p[1]; + } + var oL = (pL < 0) ? opts.padding[opts.d[3]] : 0; + + // hide items for fx directscroll + var hiddenitems = false, + i_skp = $(); + if (opts.items.visible < nI) + { + i_skp = a_itm.slice(opts.items.visibleConf.old, nI); + if (sO.fx == 'directscroll') + { + var orgW = opts.items[opts.d['width']]; + hiddenitems = i_skp; + i_cur_l = i_new_l; + sc_hideHiddenItems(hiddenitems); + opts.items[opts.d['width']] = 'variable'; + } + } + + // save new sizes + var $cf2 = false, + i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'), + w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding), + i_siz_vis = 0, + a_cfs = {}, + a_wsz = {}, + a_cur = {}, + a_old = {}, + a_new = {}, + a_lef = {}, + a_lef_vis = {}, + a_dur = sc_getDuration(sO, opts, nI, i_siz); + + switch(sO.fx) + { + case 'cover': + case 'cover-fade': + i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visible), opts, 'width'); + break; + } + + if (hiddenitems) + { + opts.items[opts.d['width']] = orgW; + } + + sz_resetMargin(a_itm, opts, true); + if (pR >= 0) + { + sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]); + } + if (pL >= 0) + { + sz_resetMargin(i_cur_l, opts, opts.padding[opts.d[3]]); + } + + if (opts.align) + { + opts.padding[opts.d[1]] = pR; + opts.padding[opts.d[3]] = pL; + } + + a_lef[opts.d['left']] = -(i_siz - oL); + a_lef_vis[opts.d['left']] = -(i_siz_vis - oL); + a_wsz[opts.d['left']] = w_siz[opts.d['width']]; + + // scrolling functions + var _s_wrapper = function() {}, + _a_wrapper = function() {}, + _s_paddingold = function() {}, + _a_paddingold = function() {}, + _s_paddingnew = function() {}, + _a_paddingnew = function() {}, + _s_paddingcur = function() {}, + _a_paddingcur = function() {}, + _onafter = function() {}, + _moveitems = function() {}, + _position = function() {}; + + // clone carousel + switch(sO.fx) + { + case 'crossfade': + case 'cover': + case 'cover-fade': + case 'uncover': + case 'uncover-fade': + $cf2 = $cfs.clone(true).appendTo($wrp); + break; + } + switch(sO.fx) + { + case 'crossfade': + case 'uncover': + case 'uncover-fade': + $cf2.children().slice(0, nI).remove(); + $cf2.children().slice(opts.items.visibleConf.old).remove(); + break; + + case 'cover': + case 'cover-fade': + $cf2.children().slice(opts.items.visible).remove(); + $cf2.css(a_lef_vis); + break; + } + + $cfs.css(a_lef); + + // reset all scrolls + scrl = sc_setScroll(a_dur, sO.easing, conf); + + // animate / set carousel + a_cfs[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0; + + // animate / set wrapper + if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') + { + _s_wrapper = function() { + $wrp.css(w_siz); + }; + _a_wrapper = function() { + scrl.anims.push([$wrp, w_siz]); + }; + } + + // animate / set items + if (opts.usePadding) + { + if (i_new_l.not(i_cur_l).length) + { + a_cur[opts.d['marginRight']] = i_cur_l.data('_cfs_origCssMargin'); + + if (pL < 0) + { + i_cur_l.css(a_cur); + } + else + { + _s_paddingcur = function() { + i_cur_l.css(a_cur); + }; + _a_paddingcur = function() { + scrl.anims.push([i_cur_l, a_cur]); + }; + } + } + switch(sO.fx) + { + case 'cover': + case 'cover-fade': + $cf2.children().eq(nI-1).css(a_cur); + break; + } + + if (i_new_l.not(i_old_l).length) + { + a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin'); + _s_paddingold = function() { + i_old_l.css(a_old); + }; + _a_paddingold = function() { + scrl.anims.push([i_old_l, a_old]); + }; + } + + if (pR >= 0) + { + a_new[opts.d['marginRight']] = i_new_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]]; + _s_paddingnew = function() { + i_new_l.css(a_new); + }; + _a_paddingnew = function() { + scrl.anims.push([i_new_l, a_new]); + }; + } + } + + // set position + _position = function() { + $cfs.css(a_cfs); + }; + + + var overFill = opts.items.visible+nI-itms.total; + + // rearrange items + _moveitems = function() { + if (overFill > 0) + { + $cfs.children().slice(itms.total).remove(); + i_old = $( $cfs.children().slice(itms.total-(opts.items.visible-overFill)).get().concat( $cfs.children().slice(0, overFill).get() ) ); + } + sc_showHiddenItems(hiddenitems); + + if (opts.usePadding) + { + var l_itm = $cfs.children().eq(opts.items.visible+nI-1); + l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin')); + } + }; + + + var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'prev', a_dur, w_siz); + + // fire onAfter callbacks + _onafter = function() { + sc_afterScroll($cfs, $cf2, sO); + crsl.isScrolling = false; + clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk); + queu = sc_fireQueue($cfs, queu, conf); + + if (!crsl.isPaused) + { + $cfs.trigger(cf_e('play', conf)); + } + }; + + // fire onBefore callback + crsl.isScrolling = true; + tmrs = sc_clearTimers(tmrs); + clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk); + + switch(sO.fx) + { + case 'none': + $cfs.css(a_cfs); + _s_wrapper(); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + _onafter(); + break; + + case 'fade': + scrl.anims.push([$cfs, { 'opacity': 0 }, function() { + _s_wrapper(); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + scrl = sc_setScroll(a_dur, sO.easing, conf); + scrl.anims.push([$cfs, { 'opacity': 1 }, _onafter]); + sc_startScroll(scrl, conf); + }]); + break; + + case 'crossfade': + $cfs.css({ 'opacity': 0 }); + scrl.anims.push([$cf2, { 'opacity': 0 }]); + scrl.anims.push([$cfs, { 'opacity': 1 }, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + case 'cover': + scrl.anims.push([$cf2, a_cfs, function() { + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + _onafter(); + }]); + _a_wrapper(); + break; + + case 'cover-fade': + scrl.anims.push([$cfs, { 'opacity': 0 }]); + scrl.anims.push([$cf2, a_cfs, function() { + $cfs.css({ 'opacity': 1 }); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + _onafter(); + }]); + _a_wrapper(); + break; + + case 'uncover': + scrl.anims.push([$cf2, a_wsz, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + case 'uncover-fade': + $cfs.css({ 'opacity': 0 }); + scrl.anims.push([$cfs, { 'opacity': 1 }]); + scrl.anims.push([$cf2, a_wsz, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingnew(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + default: + scrl.anims.push([$cfs, a_cfs, function() { + _moveitems(); + _onafter(); + }]); + _a_wrapper(); + _a_paddingold(); + _a_paddingnew(); + _a_paddingcur(); + break; + } + + sc_startScroll(scrl, conf); + cf_setCookie(opts.cookie, $cfs, conf); + + $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]); + + return true; + }); + + + // next event + $cfs.bind(cf_e('slide_next', conf), function(e, sO, nI) { + e.stopPropagation(); + var a_itm = $cfs.children(); + + // non-circular at end, scroll to start + if (!opts.circular) + { + if (itms.first == opts.items.visible) + { + if (opts.infinite) + { + $cfs.trigger(cf_e('prev', conf), itms.total-1); + } + return e.stopImmediatePropagation(); + } + } + + sz_resetMargin(a_itm, opts); + + // find number of items to scroll + if (!is_number(nI)) + { + if (opts.items.filter != '*') + { + var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts); + nI = gn_getScrollItemsNextFilter(a_itm, opts, 0, xI); + } + else + { + nI = opts.items.visible; + } + nI = cf_getAdjust(nI, opts, sO.items, $tt0); + } + + var lastItemNr = (itms.first == 0) ? itms.total : itms.first; + + // prevent non-circular from scrolling to far + if (!opts.circular) + { + if (opts.items.visibleConf.variable) + { + var vI = gn_getVisibleItemsNext(a_itm, opts, nI), + xI = gn_getVisibleItemsPrev(a_itm, opts, lastItemNr-1); + } + else + { + var vI = opts.items.visible, + xI = opts.items.visible; + } + + if (nI + vI > lastItemNr) + { + nI = lastItemNr - xI; + } + } + + // set new number of visible items + opts.items.visibleConf.old = opts.items.visible; + if (opts.items.visibleConf.variable) + { + var vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0); + while (opts.items.visible-nI >= vI && nI < itms.total) + { + nI++; + vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0); + } + opts.items.visible = vI; + } + else if (opts.items.filter != '*') + { + var vI = gn_getVisibleItemsNextFilter(a_itm, opts, nI); + opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0); + } + + sz_resetMargin(a_itm, opts, true); + + // scroll 0, don't scroll + if (nI == 0) + { + e.stopImmediatePropagation(); + return debug(conf, '0 items to scroll: Not scrolling.'); + } + debug(conf, 'Scrolling '+nI+' items forward.'); + + + // save new config + itms.first -= nI; + while (itms.first < 0) + { + itms.first += itms.total; + } + + // non-circular callback + if (!opts.circular) + { + if (itms.first == opts.items.visible && sO.onEnd) + { + sO.onEnd.call($tt0, 'next'); + } + if (!opts.infinite) + { + nv_enableNavi(opts, itms.first, conf); + } + } + + // rearrange items + if (itms.total < opts.items.visible+nI) + { + $cfs.children().slice(0, (opts.items.visible+nI)-itms.total).clone(true).appendTo($cfs); + } + + // the needed items + var a_itm = $cfs.children(), + i_old = gi_getOldItemsNext(a_itm, opts), + i_new = gi_getNewItemsNext(a_itm, opts, nI), + i_cur_l = a_itm.eq(nI-1), + i_old_l = i_old.last(), + i_new_l = i_new.last(); + + sz_resetMargin(a_itm, opts); + + var pL = 0, + pR = 0; + + if (opts.align) + { + var p = cf_getAlignPadding(i_new, opts); + pL = p[0]; + pR = p[1]; + } + + // hide items for fx directscroll + var hiddenitems = false, + i_skp = $(); + if (opts.items.visibleConf.old < nI) + { + i_skp = a_itm.slice(opts.items.visibleConf.old, nI); + if (sO.fx == 'directscroll') + { + var orgW = opts.items[opts.d['width']]; + hiddenitems = i_skp; + i_cur_l = i_old_l; + sc_hideHiddenItems(hiddenitems); + opts.items[opts.d['width']] = 'variable'; + } + } + + // save new sizes + var $cf2 = false, + i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'), + w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding), + i_siz_vis = 0, + a_cfs = {}, + a_cfs_vis = {}, + a_cur = {}, + a_old = {}, + a_lef = {}, + a_dur = sc_getDuration(sO, opts, nI, i_siz); + + switch(sO.fx) + { + case 'uncover': + case 'uncover-fade': + i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visibleConf.old), opts, 'width'); + break; + } + + if (hiddenitems) + { + opts.items[opts.d['width']] = orgW; + } + + if (opts.align) + { + if (opts.padding[opts.d[1]] < 0) + { + opts.padding[opts.d[1]] = 0; + } + } + sz_resetMargin(a_itm, opts, true); + sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]); + + if (opts.align) + { + opts.padding[opts.d[1]] = pR; + opts.padding[opts.d[3]] = pL; + } + + a_lef[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0; + + // scrolling functions + var _s_wrapper = function() {}, + _a_wrapper = function() {}, + _s_paddingold = function() {}, + _a_paddingold = function() {}, + _s_paddingcur = function() {}, + _a_paddingcur = function() {}, + _onafter = function() {}, + _moveitems = function() {}, + _position = function() {}; + + // clone carousel + switch(sO.fx) + { + case 'crossfade': + case 'cover': + case 'cover-fade': + case 'uncover': + case 'uncover-fade': + $cf2 = $cfs.clone(true).appendTo($wrp); + $cf2.children().slice(opts.items.visibleConf.old).remove(); + break; + } + switch(sO.fx) + { + case 'crossfade': + case 'cover': + case 'cover-fade': + $cfs.css('zIndex', 1); + $cf2.css('zIndex', 0); + break; + } + + // reset all scrolls + scrl = sc_setScroll(a_dur, sO.easing, conf); + + // animate / set carousel + a_cfs[opts.d['left']] = -i_siz; + a_cfs_vis[opts.d['left']] = -i_siz_vis; + + if (pL < 0) + { + a_cfs[opts.d['left']] += pL; + } + + // animate / set wrapper + if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') + { + _s_wrapper = function() { + $wrp.css(w_siz); + }; + _a_wrapper = function() { + scrl.anims.push([$wrp, w_siz]); + }; + } + + // animate / set items + if (opts.usePadding) + { + var i_new_l_m = i_new_l.data('_cfs_origCssMargin'); + + if (pR >= 0) + { + i_new_l_m += opts.padding[opts.d[1]]; + } + i_new_l.css(opts.d['marginRight'], i_new_l_m); + + if (i_cur_l.not(i_old_l).length) + { + a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin'); + } + _s_paddingold = function() { + i_old_l.css(a_old); + }; + _a_paddingold = function() { + scrl.anims.push([i_old_l, a_old]); + }; + + var i_cur_l_m = i_cur_l.data('_cfs_origCssMargin'); + if (pL > 0) + { + i_cur_l_m += opts.padding[opts.d[3]]; + } + + a_cur[opts.d['marginRight']] = i_cur_l_m; + + _s_paddingcur = function() { + i_cur_l.css(a_cur); + }; + _a_paddingcur = function() { + scrl.anims.push([i_cur_l, a_cur]); + }; + } + + // set position + _position = function() { + $cfs.css(a_lef); + }; + + + var overFill = opts.items.visible+nI-itms.total; + + // rearrange items + _moveitems = function() { + if (overFill > 0) + { + $cfs.children().slice(itms.total).remove(); + } + var l_itm = $cfs.children().slice(0, nI).appendTo($cfs).last(); + if (overFill > 0) + { + i_new = gi_getCurrentItems(a_itm, opts); + } + sc_showHiddenItems(hiddenitems); + + if (opts.usePadding) + { + if (itms.total < opts.items.visible+nI) { + var i_cur_l = $cfs.children().eq(opts.items.visible-1); + i_cur_l.css(opts.d['marginRight'], i_cur_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]]); + } + l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin')); + } + }; + + + var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'next', a_dur, w_siz); + + // fire onAfter callbacks + _onafter = function() { + $cfs.css('zIndex', $cfs.data('_cfs_origCssZindex')); + sc_afterScroll($cfs, $cf2, sO); + crsl.isScrolling = false; + clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk); + queu = sc_fireQueue($cfs, queu, conf); + + if (!crsl.isPaused) + { + $cfs.trigger(cf_e('play', conf)); + } + }; + + // fire onBefore callbacks + crsl.isScrolling = true; + tmrs = sc_clearTimers(tmrs); + clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk); + + switch(sO.fx) + { + case 'none': + $cfs.css(a_cfs); + _s_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _position(); + _moveitems(); + _onafter(); + break; + + case 'fade': + scrl.anims.push([$cfs, { 'opacity': 0 }, function() { + _s_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _position(); + _moveitems(); + scrl = sc_setScroll(a_dur, sO.easing, conf); + scrl.anims.push([$cfs, { 'opacity': 1 }, _onafter]); + sc_startScroll(scrl, conf); + }]); + break; + + case 'crossfade': + $cfs.css({ 'opacity': 0 }); + scrl.anims.push([$cf2, { 'opacity': 0 }]); + scrl.anims.push([$cfs, { 'opacity': 1 }, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + case 'cover': + $cfs.css(opts.d['left'], $wrp[opts.d['width']]()); + scrl.anims.push([$cfs, a_lef, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _moveitems(); + break; + + case 'cover-fade': + $cfs.css(opts.d['left'], $wrp[opts.d['width']]()); + scrl.anims.push([$cf2, { 'opacity': 0 }]); + scrl.anims.push([$cfs, a_lef, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _moveitems(); + break; + + case 'uncover': + scrl.anims.push([$cf2, a_cfs_vis, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + case 'uncover-fade': + $cfs.css({ 'opacity': 0 }); + scrl.anims.push([$cfs, { 'opacity': 1 }]); + scrl.anims.push([$cf2, a_cfs_vis, _onafter]); + _a_wrapper(); + _s_paddingold(); + _s_paddingcur(); + _position(); + _moveitems(); + break; + + default: + scrl.anims.push([$cfs, a_cfs, function() { + _position(); + _moveitems(); + _onafter(); + }]); + _a_wrapper(); + _a_paddingold(); + _a_paddingcur(); + break; + } + + sc_startScroll(scrl, conf); + cf_setCookie(opts.cookie, $cfs, conf); + + $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]); + + return true; + }); + + + // slideTo event + $cfs.bind(cf_e('slideTo', conf), function(e, num, dev, org, obj, dir, clb) { + e.stopPropagation(); + + var v = [num, dev, org, obj, dir, clb], + t = ['string/number/object', 'number', 'boolean', 'object', 'string', 'function'], + a = cf_sortParams(v, t); + + obj = a[3]; + dir = a[4]; + clb = a[5]; + + num = gn_getItemIndex(a[0], a[1], a[2], itms, $cfs); + + if (num == 0) + { + return false; + } + if (!is_object(obj)) + { + obj = false; + } + + if (dir != 'prev' && dir != 'next') + { + if (opts.circular) + { + dir = (num <= itms.total / 2) ? 'next' : 'prev'; + } + else + { + dir = (itms.first == 0 || itms.first > num) ? 'next' : 'prev'; + } + } + + if (dir == 'prev') + { + num = itms.total-num; + } + $cfs.trigger(cf_e(dir, conf), [obj, num, clb]); + + return true; + }); + + + // prevPage event + $cfs.bind(cf_e('prevPage', conf), function(e, obj, clb) { + e.stopPropagation(); + var cur = $cfs.triggerHandler(cf_e('currentPage', conf)); + return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur-1, obj, 'prev', clb]); + }); + + + // nextPage event + $cfs.bind(cf_e('nextPage', conf), function(e, obj, clb) { + e.stopPropagation(); + var cur = $cfs.triggerHandler(cf_e('currentPage', conf)); + return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur+1, obj, 'next', clb]); + }); + + + // slideToPage event + $cfs.bind(cf_e('slideToPage', conf), function(e, pag, obj, dir, clb) { + e.stopPropagation(); + if (!is_number(pag)) + { + pag = $cfs.triggerHandler(cf_e('currentPage', conf)); + } + var ipp = opts.pagination.items || opts.items.visible, + max = Math.ceil(itms.total / ipp)-1; + + if (pag < 0) + { + pag = max; + } + if (pag > max) + { + pag = 0; + } + return $cfs.triggerHandler(cf_e('slideTo', conf), [pag*ipp, 0, true, obj, dir, clb]); + }); + + // jumpToStart event + $cfs.bind(cf_e('jumpToStart', conf), function(e, s) { + e.stopPropagation(); + if (s) + { + s = gn_getItemIndex(s, 0, true, itms, $cfs); + } + else + { + s = 0; + } + + s += itms.first; + if (s != 0) + { + if (itms.total > 0) + { + while (s > itms.total) + { + s -= itms.total; + } + } + $cfs.prepend($cfs.children().slice(s, itms.total)); + } + return true; + }); + + + // synchronise event + $cfs.bind(cf_e('synchronise', conf), function(e, s) { + e.stopPropagation(); + if (s) + { + s = cf_getSynchArr(s); + } + else if (opts.synchronise) + { + s = opts.synchronise; + } + else + { + return debug(conf, 'No carousel to synchronise.'); + } + + var n = $cfs.triggerHandler(cf_e('currentPosition', conf)), + x = true; + + for (var j = 0, l = s.length; j < l; j++) + { + if (!s[j][0].triggerHandler(cf_e('slideTo', conf), [n, s[j][3], true])) + { + x = false; + } + } + return x; + }); + + + // queue event + $cfs.bind(cf_e('queue', conf), function(e, dir, opt) { + e.stopPropagation(); + if (is_function(dir)) + { + dir.call($tt0, queu); + } + else if (is_array(dir)) + { + queu = dir; + } + else if (!is_undefined(dir)) + { + queu.push([dir, opt]); + } + return queu; + }); + + + // insertItem event + $cfs.bind(cf_e('insertItem', conf), function(e, itm, num, org, dev) { + e.stopPropagation(); + + var v = [itm, num, org, dev], + t = ['string/object', 'string/number/object', 'boolean', 'number'], + a = cf_sortParams(v, t); + + itm = a[0]; + num = a[1]; + org = a[2]; + dev = a[3]; + + if (is_object(itm) && !is_jquery(itm)) + { + itm = $(itm); + } + else if (is_string(itm)) + { + itm = $(itm); + } + if (!is_jquery(itm) || itm.length == 0) + { + return debug(conf, 'Not a valid object.'); + } + + if (is_undefined(num)) + { + num = 'end'; + } + + sz_storeMargin(itm, opts); + sz_storeOrigCss(itm); + + var orgNum = num, + before = 'before'; + + if (num == 'end') + { + if (org) + { + if (itms.first == 0) + { + num = itms.total-1; + before = 'after'; + } + else + { + num = itms.first; + itms.first += itm.length; + } + if (num < 0) + { + num = 0; + } + } + else + { + num = itms.total-1; + before = 'after'; + } + } + else + { + num = gn_getItemIndex(num, dev, org, itms, $cfs); + } + + var $cit = $cfs.children().eq(num); + if ($cit.length) + { + $cit[before](itm); + } + else + { + debug(conf, 'Correct insert-position not found! Appending item to the end.'); + $cfs.append(itm); + } + + if (orgNum != 'end' && !org) + { + if (num < itms.first) + { + itms.first += itm.length; + } + } + itms.total = $cfs.children().length; + if (itms.first >= itms.total) + { + itms.first -= itms.total; + } + + $cfs.trigger(cf_e('updateSizes', conf)); + $cfs.trigger(cf_e('linkAnchors', conf)); + + return true; + }); + + + // removeItem event + $cfs.bind(cf_e('removeItem', conf), function(e, num, org, dev) { + e.stopPropagation(); + + var v = [num, org, dev], + t = ['string/number/object', 'boolean', 'number'], + a = cf_sortParams(v, t); + + num = a[0]; + org = a[1]; + dev = a[2]; + + var removed = false; + + if (num instanceof $ && num.length > 1) + { + $removed = $(); + num.each(function(i, el) { + var $rem = $cfs.trigger(cf_e('removeItem', conf), [$(this), org, dev]); + if ( $rem ) + { + $removed = $removed.add($rem); + } + }); + return $removed; + } + + if (is_undefined(num) || num == 'end') + { + $removed = $cfs.children().last(); + } + else + { + num = gn_getItemIndex(num, dev, org, itms, $cfs); + var $removed = $cfs.children().eq(num); + if ( $removed.length ) + { + if (num < itms.first) + { + itms.first -= $removed.length; + } + } + } + if ( $removed && $removed.length ) + { + $removed.detach(); + itms.total = $cfs.children().length; + $cfs.trigger(cf_e('updateSizes', conf)); + } + + return $removed; + }); + + + // onBefore and onAfter event + $cfs.bind(cf_e('onBefore', conf)+' '+cf_e('onAfter', conf), function(e, fn) { + e.stopPropagation(); + var eType = e.type.slice(conf.events.prefix.length); + if (is_array(fn)) + { + clbk[eType] = fn; + } + if (is_function(fn)) + { + clbk[eType].push(fn); + } + return clbk[eType]; + }); + + + // currentPosition event + $cfs.bind(cf_e('currentPosition', conf), function(e, fn) { + e.stopPropagation(); + if (itms.first == 0) + { + var val = 0; + } + else + { + var val = itms.total - itms.first; + } + if (is_function(fn)) + { + fn.call($tt0, val); + } + return val; + }); + + + // currentPage event + $cfs.bind(cf_e('currentPage', conf), function(e, fn) { + e.stopPropagation(); + var ipp = opts.pagination.items || opts.items.visible, + max = Math.ceil(itms.total/ipp-1), + nr; + if (itms.first == 0) + { + nr = 0; + } + else if (itms.first < itms.total % ipp) + { + nr = 0; + } + else if (itms.first == ipp && !opts.circular) + { + nr = max; + } + else + { + nr = Math.round((itms.total-itms.first)/ipp); + } + if (nr < 0) + { + nr = 0; + } + if (nr > max) + { + nr = max; + } + if (is_function(fn)) + { + fn.call($tt0, nr); + } + return nr; + }); + + + // currentVisible event + $cfs.bind(cf_e('currentVisible', conf), function(e, fn) { + e.stopPropagation(); + var $i = gi_getCurrentItems($cfs.children(), opts); + if (is_function(fn)) + { + fn.call($tt0, $i); + } + return $i; + }); + + + // slice event + $cfs.bind(cf_e('slice', conf), function(e, f, l, fn) { + e.stopPropagation(); + + if (itms.total == 0) + { + return false; + } + + var v = [f, l, fn], + t = ['number', 'number', 'function'], + a = cf_sortParams(v, t); + + f = (is_number(a[0])) ? a[0] : 0; + l = (is_number(a[1])) ? a[1] : itms.total; + fn = a[2]; + + f += itms.first; + l += itms.first; + + if (items.total > 0) + { + while (f > itms.total) + { + f -= itms.total; + } + while (l > itms.total) + { + l -= itms.total; + } + while (f < 0) + { + f += itms.total; + } + while (l < 0) + { + l += itms.total; + } + } + var $iA = $cfs.children(), + $i; + + if (l > f) + { + $i = $iA.slice(f, l); + } + else + { + $i = $( $iA.slice(f, itms.total).get().concat( $iA.slice(0, l).get() ) ); + } + + if (is_function(fn)) + { + fn.call($tt0, $i); + } + return $i; + }); + + + // isPaused, isStopped and isScrolling events + $cfs.bind(cf_e('isPaused', conf)+' '+cf_e('isStopped', conf)+' '+cf_e('isScrolling', conf), function(e, fn) { + e.stopPropagation(); + var eType = e.type.slice(conf.events.prefix.length), + value = crsl[eType]; + if (is_function(fn)) + { + fn.call($tt0, value); + } + return value; + }); + + + // configuration event + $cfs.bind(cf_e('configuration', conf), function(e, a, b, c) { + e.stopPropagation(); + var reInit = false; + + // return entire configuration-object + if (is_function(a)) + { + a.call($tt0, opts); + } + // set multiple options via object + else if (is_object(a)) + { + opts_orig = $.extend(true, {}, opts_orig, a); + if (b !== false) reInit = true; + else opts = $.extend(true, {}, opts, a); + + } + else if (!is_undefined(a)) + { + + // callback function for specific option + if (is_function(b)) + { + var val = eval('opts.'+a); + if (is_undefined(val)) + { + val = ''; + } + b.call($tt0, val); + } + // set individual option + else if (!is_undefined(b)) + { + if (typeof c !== 'boolean') c = true; + eval('opts_orig.'+a+' = b'); + if (c !== false) reInit = true; + else eval('opts.'+a+' = b'); + } + // return value for specific option + else + { + return eval('opts.'+a); + } + } + if (reInit) + { + sz_resetMargin($cfs.children(), opts); + FN._cfs_init(opts_orig); + FN._cfs_bind_buttons(); + var sz = sz_setSizes($cfs, opts); + $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]); + } + return opts; + }); + + + // linkAnchors event + $cfs.bind(cf_e('linkAnchors', conf), function(e, $con, sel) { + e.stopPropagation(); + + if (is_undefined($con)) + { + $con = $('body'); + } + else if (is_string($con)) + { + $con = $($con); + } + if (!is_jquery($con) || $con.length == 0) + { + return debug(conf, 'Not a valid object.'); + } + if (!is_string(sel)) + { + sel = 'a.caroufredsel'; + } + + $con.find(sel).each(function() { + var h = this.hash || ''; + if (h.length > 0 && $cfs.children().index($(h)) != -1) + { + $(this).unbind('click').click(function(e) { + e.preventDefault(); + $cfs.trigger(cf_e('slideTo', conf), h); + }); + } + }); + return true; + }); + + + // updatePageStatus event + $cfs.bind(cf_e('updatePageStatus', conf), function(e, build, sizes) { + e.stopPropagation(); + if (!opts.pagination.container) + { + return; + } + + var ipp = opts.pagination.items || opts.items.visible, + pgs = Math.ceil(itms.total/ipp); + + if (build) + { + if (opts.pagination.anchorBuilder) + { + opts.pagination.container.children().remove(); + opts.pagination.container.each(function() { + for (var a = 0; a < pgs; a++) + { + var i = $cfs.children().eq( gn_getItemIndex(a*ipp, 0, true, itms, $cfs) ); + $(this).append(opts.pagination.anchorBuilder.call(i[0], a+1)); + } + }); + } + opts.pagination.container.each(function() { + $(this).children().unbind(opts.pagination.event).each(function(a) { + $(this).bind(opts.pagination.event, function(e) { + e.preventDefault(); + $cfs.trigger(cf_e('slideTo', conf), [a*ipp, -opts.pagination.deviation, true, opts.pagination]); + }); + }); + }); + } + + var selected = $cfs.triggerHandler(cf_e('currentPage', conf)) + opts.pagination.deviation; + if (selected >= pgs) + { + selected = 0; + } + if (selected < 0) + { + selected = pgs-1; + } + opts.pagination.container.each(function() { + $(this).children().removeClass(cf_c('selected', conf)).eq(selected).addClass(cf_c('selected', conf)); + }); + return true; + }); + + + // updateSizes event + $cfs.bind(cf_e('updateSizes', conf), function(e) { + var vI = opts.items.visible, + a_itm = $cfs.children(), + avail_primary = ms_getParentSize($wrp, opts, 'width'); + + itms.total = a_itm.length; + + if (crsl.primarySizePercentage) + { + opts.maxDimension = avail_primary; + opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage); + } + else + { + opts.maxDimension = ms_getMaxDimension(opts, avail_primary); + } + + if (opts.responsive) + { + opts.items.width = opts.items.sizesConf.width; + opts.items.height = opts.items.sizesConf.height; + opts = in_getResponsiveValues(opts, a_itm, avail_primary); + vI = opts.items.visible; + sz_setResponsiveSizes(opts, a_itm); + } + else if (opts.items.visibleConf.variable) + { + vI = gn_getVisibleItemsNext(a_itm, opts, 0); + } + else if (opts.items.filter != '*') + { + vI = gn_getVisibleItemsNextFilter(a_itm, opts, 0); + } + + if (!opts.circular && itms.first != 0 && vI > itms.first) { + if (opts.items.visibleConf.variable) + { + var nI = gn_getVisibleItemsPrev(a_itm, opts, itms.first) - itms.first; + } + else if (opts.items.filter != '*') + { + var nI = gn_getVisibleItemsPrevFilter(a_itm, opts, itms.first) - itms.first; + } + else + { + var nI = opts.items.visible - itms.first; + } + debug(conf, 'Preventing non-circular: sliding '+nI+' items backward.'); + $cfs.trigger(cf_e('prev', conf), nI); + } + + opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0); + opts.items.visibleConf.old = opts.items.visible; + opts = in_getAlignPadding(opts, a_itm); + + var sz = sz_setSizes($cfs, opts); + $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]); + nv_showNavi(opts, itms.total, conf); + nv_enableNavi(opts, itms.first, conf); + + return sz; + }); + + + // destroy event + $cfs.bind(cf_e('destroy', conf), function(e, orgOrder) { + e.stopPropagation(); + tmrs = sc_clearTimers(tmrs); + + $cfs.data('_cfs_isCarousel', false); + $cfs.trigger(cf_e('finish', conf)); + if (orgOrder) + { + $cfs.trigger(cf_e('jumpToStart', conf)); + } + sz_restoreOrigCss($cfs.children()); + sz_restoreOrigCss($cfs); + FN._cfs_unbind_events(); + FN._cfs_unbind_buttons(); + if (conf.wrapper == 'parent') + { + sz_restoreOrigCss($wrp); + } + else + { + $wrp.replaceWith($cfs); + } + + return true; + }); + + + // debug event + $cfs.bind(cf_e('debug', conf), function(e) { + debug(conf, 'Carousel width: ' + opts.width); + debug(conf, 'Carousel height: ' + opts.height); + debug(conf, 'Item widths: ' + opts.items.width); + debug(conf, 'Item heights: ' + opts.items.height); + debug(conf, 'Number of items visible: ' + opts.items.visible); + if (opts.auto.play) + { + debug(conf, 'Number of items scrolled automatically: ' + opts.auto.items); + } + if (opts.prev.button) + { + debug(conf, 'Number of items scrolled backward: ' + opts.prev.items); + } + if (opts.next.button) + { + debug(conf, 'Number of items scrolled forward: ' + opts.next.items); + } + return conf.debug; + }); + + + // triggerEvent, making prefixed and namespaced events accessible from outside + $cfs.bind('_cfs_triggerEvent', function(e, n, o) { + e.stopPropagation(); + return $cfs.triggerHandler(cf_e(n, conf), o); + }); + }; // /bind_events + + + FN._cfs_unbind_events = function() { + $cfs.unbind(cf_e('', conf)); + $cfs.unbind(cf_e('', conf, false)); + $cfs.unbind('_cfs_triggerEvent'); + }; // /unbind_events + + + FN._cfs_bind_buttons = function() { + FN._cfs_unbind_buttons(); + nv_showNavi(opts, itms.total, conf); + nv_enableNavi(opts, itms.first, conf); + + if (opts.auto.pauseOnHover) + { + var pC = bt_pauseOnHoverConfig(opts.auto.pauseOnHover); + $wrp.bind(cf_e('mouseenter', conf, false), function() { $cfs.trigger(cf_e('pause', conf), pC); }) + .bind(cf_e('mouseleave', conf, false), function() { $cfs.trigger(cf_e('resume', conf)); }); + } + + // play button + if (opts.auto.button) + { + opts.auto.button.bind(cf_e(opts.auto.event, conf, false), function(e) { + e.preventDefault(); + var ev = false, + pC = null; + + if (crsl.isPaused) + { + ev = 'play'; + } + else if (opts.auto.pauseOnEvent) + { + ev = 'pause'; + pC = bt_pauseOnHoverConfig(opts.auto.pauseOnEvent); + } + if (ev) + { + $cfs.trigger(cf_e(ev, conf), pC); + } + }); + } + + // prev button + if (opts.prev.button) + { + opts.prev.button.bind(cf_e(opts.prev.event, conf, false), function(e) { + e.preventDefault(); + $cfs.trigger(cf_e('prev', conf)); + }); + if (opts.prev.pauseOnHover) + { + var pC = bt_pauseOnHoverConfig(opts.prev.pauseOnHover); + opts.prev.button.bind(cf_e('mouseenter', conf, false), function() { $cfs.trigger(cf_e('pause', conf), pC); }) + .bind(cf_e('mouseleave', conf, false), function() { $cfs.trigger(cf_e('resume', conf)); }); + } + } + + // next butotn + if (opts.next.button) + { + opts.next.button.bind(cf_e(opts.next.event, conf, false), function(e) { + e.preventDefault(); + $cfs.trigger(cf_e('next', conf)); + }); + if (opts.next.pauseOnHover) + { + var pC = bt_pauseOnHoverConfig(opts.next.pauseOnHover); + opts.next.button.bind(cf_e('mouseenter', conf, false), function() { $cfs.trigger(cf_e('pause', conf), pC); }) + .bind(cf_e('mouseleave', conf, false), function() { $cfs.trigger(cf_e('resume', conf)); }); + } + } + + // pagination + if (opts.pagination.container) + { + if (opts.pagination.pauseOnHover) + { + var pC = bt_pauseOnHoverConfig(opts.pagination.pauseOnHover); + opts.pagination.container.bind(cf_e('mouseenter', conf, false), function() { $cfs.trigger(cf_e('pause', conf), pC); }) + .bind(cf_e('mouseleave', conf, false), function() { $cfs.trigger(cf_e('resume', conf)); }); + } + } + + // prev/next keys + if (opts.prev.key || opts.next.key) + { + $(document).bind(cf_e('keyup', conf, false, true, true), function(e) { + var k = e.keyCode; + if (k == opts.next.key) + { + e.preventDefault(); + $cfs.trigger(cf_e('next', conf)); + } + if (k == opts.prev.key) + { + e.preventDefault(); + $cfs.trigger(cf_e('prev', conf)); + } + }); + } + + // pagination keys + if (opts.pagination.keys) + { + $(document).bind(cf_e('keyup', conf, false, true, true), function(e) { + var k = e.keyCode; + if (k >= 49 && k < 58) + { + k = (k-49) * opts.items.visible; + if (k <= itms.total) + { + e.preventDefault(); + $cfs.trigger(cf_e('slideTo', conf), [k, 0, true, opts.pagination]); + } + } + }); + } + + // swipe + if ($.fn.swipe) + { + var isTouch = 'ontouchstart' in window; + if ((isTouch && opts.swipe.onTouch) || (!isTouch && opts.swipe.onMouse)) + { + var scP = $.extend(true, {}, opts.prev, opts.swipe), + scN = $.extend(true, {}, opts.next, opts.swipe), + swP = function() { $cfs.trigger(cf_e('prev', conf), [scP]) }, + swN = function() { $cfs.trigger(cf_e('next', conf), [scN]) }; + + switch (opts.direction) + { + case 'up': + case 'down': + opts.swipe.options.swipeUp = swN; + opts.swipe.options.swipeDown = swP; + break; + default: + opts.swipe.options.swipeLeft = swN; + opts.swipe.options.swipeRight = swP; + } + if (crsl.swipe) + { + $cfs.swipe('destroy'); + } + $wrp.swipe(opts.swipe.options); + $wrp.css('cursor', 'move'); + crsl.swipe = true; + } + } + + // mousewheel + if ($.fn.mousewheel) + { + + if (opts.mousewheel) + { + var mcP = $.extend(true, {}, opts.prev, opts.mousewheel), + mcN = $.extend(true, {}, opts.next, opts.mousewheel); + + if (crsl.mousewheel) + { + $wrp.unbind(cf_e('mousewheel', conf, false)); + } + $wrp.bind(cf_e('mousewheel', conf, false), function(e, delta) { + e.preventDefault(); + if (delta > 0) + { + $cfs.trigger(cf_e('prev', conf), [mcP]); + } + else + { + $cfs.trigger(cf_e('next', conf), [mcN]); + } + }); + crsl.mousewheel = true; + } + } + + if (opts.auto.play) + { + $cfs.trigger(cf_e('play', conf), opts.auto.delay); + } + + if (crsl.upDateOnWindowResize) + { + var resizeFn = function(e) { + $cfs.trigger(cf_e('finish', conf)); + if (opts.auto.pauseOnResize && !crsl.isPaused) + { + $cfs.trigger(cf_e('play', conf)); + } + sz_resetMargin($cfs.children(), opts); + $cfs.trigger(cf_e('updateSizes', conf)); + }; + + var $w = $(window), + onResize = null; + + if ($.debounce && conf.onWindowResize == 'debounce') + { + onResize = $.debounce(200, resizeFn); + } + else if ($.throttle && conf.onWindowResize == 'throttle') + { + onResize = $.throttle(300, resizeFn); + } + else + { + var _windowWidth = 0, + _windowHeight = 0; + + onResize = function() { + var nw = $w.width(), + nh = $w.height(); + + if (nw != _windowWidth || nh != _windowHeight) + { + resizeFn(); + _windowWidth = nw; + _windowHeight = nh; + } + }; + } + $w.bind(cf_e('resize', conf, false, true, true), onResize); + } + }; // /bind_buttons + + + FN._cfs_unbind_buttons = function() { + var ns1 = cf_e('', conf), + ns2 = cf_e('', conf, false); + ns3 = cf_e('', conf, false, true, true); + + $(document).unbind(ns3); + $(window).unbind(ns3); + $wrp.unbind(ns2); + + if (opts.auto.button) + { + opts.auto.button.unbind(ns2); + } + if (opts.prev.button) + { + opts.prev.button.unbind(ns2); + } + if (opts.next.button) + { + opts.next.button.unbind(ns2); + } + if (opts.pagination.container) + { + opts.pagination.container.unbind(ns2); + if (opts.pagination.anchorBuilder) + { + opts.pagination.container.children().remove(); + } + } + if (crsl.swipe) + { + $cfs.swipe('destroy'); + $wrp.css('cursor', 'default'); + crsl.swipe = false; + } + if (crsl.mousewheel) + { + crsl.mousewheel = false; + } + + nv_showNavi(opts, 'hide', conf); + nv_enableNavi(opts, 'removeClass', conf); + + }; // /unbind_buttons + + + + // START + + if (is_boolean(configs)) + { + configs = { + 'debug': configs + }; + } + + // set vars + var crsl = { + 'direction' : 'next', + 'isPaused' : true, + 'isScrolling' : false, + 'isStopped' : false, + 'mousewheel' : false, + 'swipe' : false + }, + itms = { + 'total' : $cfs.children().length, + 'first' : 0 + }, + tmrs = { + 'auto' : null, + 'progress' : null, + 'startTime' : getTime(), + 'timePassed' : 0 + }, + scrl = { + 'isStopped' : false, + 'duration' : 0, + 'startTime' : 0, + 'easing' : '', + 'anims' : [] + }, + clbk = { + 'onBefore' : [], + 'onAfter' : [] + }, + queu = [], + conf = $.extend(true, {}, $.fn.carouFredSel.configs, configs), + opts = {}, + opts_orig = $.extend(true, {}, options), + $wrp = (conf.wrapper == 'parent') + ? $cfs.parent() + : $cfs.wrap('<'+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />').parent(); + + + conf.selector = $cfs.selector; + conf.serialNumber = $.fn.carouFredSel.serialNumber++; + + conf.transition = (conf.transition && $.fn.transition) ? 'transition' : 'animate'; + + // create carousel + FN._cfs_init(opts_orig, true, starting_position); + FN._cfs_build(); + FN._cfs_bind_events(); + FN._cfs_bind_buttons(); + + // find item to start + if (is_array(opts.items.start)) + { + var start_arr = opts.items.start; + } + else + { + var start_arr = []; + if (opts.items.start != 0) + { + start_arr.push(opts.items.start); + } + } + if (opts.cookie) + { + start_arr.unshift(parseInt(cf_getCookie(opts.cookie), 10)); + } + + if (start_arr.length > 0) + { + for (var a = 0, l = start_arr.length; a < l; a++) + { + var s = start_arr[a]; + if (s == 0) + { + continue; + } + if (s === true) + { + s = window.location.hash; + if (s.length < 1) + { + continue; + } + } + else if (s === 'random') + { + s = Math.floor(Math.random()*itms.total); + } + if ($cfs.triggerHandler(cf_e('slideTo', conf), [s, 0, true, { fx: 'none' }])) + { + break; + } + } + } + var siz = sz_setSizes($cfs, opts), + itm = gi_getCurrentItems($cfs.children(), opts); + + if (opts.onCreate) + { + opts.onCreate.call($tt0, { + 'width': siz.width, + 'height': siz.height, + 'items': itm + }); + } + + $cfs.trigger(cf_e('updatePageStatus', conf), [true, siz]); + $cfs.trigger(cf_e('linkAnchors', conf)); + + if (conf.debug) + { + $cfs.trigger(cf_e('debug', conf)); + } + + return $cfs; + }; + + + + // GLOBAL PUBLIC + + $.fn.carouFredSel.serialNumber = 1; + $.fn.carouFredSel.defaults = { + 'synchronise' : false, + 'infinite' : true, + 'circular' : true, + 'responsive' : false, + 'direction' : 'left', + 'items' : { + 'start' : 0 + }, + 'scroll' : { + 'easing' : 'swing', + 'duration' : 500, + 'pauseOnHover' : false, + 'event' : 'click', + 'queue' : false + } + }; + $.fn.carouFredSel.configs = { + 'debug' : false, + 'transition' : false, + 'onWindowResize': 'throttle', + 'events' : { + 'prefix' : '', + 'namespace' : 'cfs' + }, + 'wrapper' : { + 'element' : 'div', + 'classname' : 'caroufredsel_wrapper' + }, + 'classnames' : {} + }; + $.fn.carouFredSel.pageAnchorBuilder = function(nr) { + return ''+nr+''; + }; + $.fn.carouFredSel.progressbarUpdater = function(perc) { + $(this).css('width', perc+'%'); + }; + + $.fn.carouFredSel.cookie = { + get: function(n) { + n += '='; + var ca = document.cookie.split(';'); + for (var a = 0, l = ca.length; a < l; a++) + { + var c = ca[a]; + while (c.charAt(0) == ' ') + { + c = c.slice(1); + } + if (c.indexOf(n) == 0) + { + return c.slice(n.length); + } + } + return 0; + }, + set: function(n, v, d) { + var e = ""; + if (d) + { + var date = new Date(); + date.setTime(date.getTime() + (d * 24 * 60 * 60 * 1000)); + e = "; expires=" + date.toGMTString(); + } + document.cookie = n + '=' + v + e + '; path=/'; + }, + remove: function(n) { + $.fn.carouFredSel.cookie.set(n, "", -1); + } + }; + + + // GLOBAL PRIVATE + + // scrolling functions + function sc_setScroll(d, e, c) { + if (c.transition == 'transition') + { + if (e == 'swing') + { + e = 'ease'; + } + } + return { + anims: [], + duration: d, + orgDuration: d, + easing: e, + startTime: getTime() + }; + } + function sc_startScroll(s, c) { + for (var a = 0, l = s.anims.length; a < l; a++) + { + var b = s.anims[a]; + if (!b) + { + continue; + } + b[0][c.transition](b[1], s.duration, s.easing, b[2]); + } + } + function sc_stopScroll(s, finish) { + if (!is_boolean(finish)) + { + finish = true; + } + if (is_object(s.pre)) + { + sc_stopScroll(s.pre, finish); + } + for (var a = 0, l = s.anims.length; a < l; a++) + { + var b = s.anims[a]; + b[0].stop(true); + if (finish) + { + b[0].css(b[1]); + if (is_function(b[2])) + { + b[2](); + } + } + } + if (is_object(s.post)) + { + sc_stopScroll(s.post, finish); + } + } + function sc_afterScroll( $c, $c2, o ) { + if ($c2) + { + $c2.remove(); + } + + switch(o.fx) { + case 'fade': + case 'crossfade': + case 'cover-fade': + case 'uncover-fade': + $c.css('filter', ''); + $c.css('opacity', 1); + break; + } + } + function sc_fireCallbacks($t, o, b, a, c) { + if (o[b]) + { + o[b].call($t, a); + } + if (c[b].length) + { + for (var i = 0, l = c[b].length; i < l; i++) + { + c[b][i].call($t, a); + } + } + return []; + } + function sc_fireQueue($c, q, c) { + + if (q.length) + { + $c.trigger(cf_e(q[0][0], c), q[0][1]); + q.shift(); + } + return q; + } + function sc_hideHiddenItems(hiddenitems) { + hiddenitems.each(function() { + var hi = $(this); + hi.data('_cfs_isHidden', hi.is(':hidden')).hide(); + }); + } + function sc_showHiddenItems(hiddenitems) { + if (hiddenitems) + { + hiddenitems.each(function() { + var hi = $(this); + if (!hi.data('_cfs_isHidden')) + { + hi.show(); + } + }); + } + } + function sc_clearTimers(t) { + if (t.auto) + { + clearTimeout(t.auto); + } + if (t.progress) + { + clearInterval(t.progress); + } + return t; + } + function sc_mapCallbackArguments(i_old, i_skp, i_new, s_itm, s_dir, s_dur, w_siz) { + return { + 'width': w_siz.width, + 'height': w_siz.height, + 'items': { + 'old': i_old, + 'skipped': i_skp, + 'visible': i_new + }, + 'scroll': { + 'items': s_itm, + 'direction': s_dir, + 'duration': s_dur + } + }; + } + function sc_getDuration( sO, o, nI, siz ) { + var dur = sO.duration; + if (sO.fx == 'none') + { + return 0; + } + if (dur == 'auto') + { + dur = o.scroll.duration / o.scroll.items * nI; + } + else if (dur < 10) + { + dur = siz / dur; + } + if (dur < 1) + { + return 0; + } + if (sO.fx == 'fade') + { + dur = dur / 2; + } + return Math.round(dur); + } + + // navigation functions + function nv_showNavi(o, t, c) { + var minimum = (is_number(o.items.minimum)) ? o.items.minimum : o.items.visible + 1; + if (t == 'show' || t == 'hide') + { + var f = t; + } + else if (minimum > t) + { + debug(c, 'Not enough items ('+t+' total, '+minimum+' needed): Hiding navigation.'); + var f = 'hide'; + } + else + { + var f = 'show'; + } + var s = (f == 'show') ? 'removeClass' : 'addClass', + h = cf_c('hidden', c); + + if (o.auto.button) + { + o.auto.button[f]()[s](h); + } + if (o.prev.button) + { + o.prev.button[f]()[s](h); + } + if (o.next.button) + { + o.next.button[f]()[s](h); + } + if (o.pagination.container) + { + o.pagination.container[f]()[s](h); + } + } + function nv_enableNavi(o, f, c) { + if (o.circular || o.infinite) return; + var fx = (f == 'removeClass' || f == 'addClass') ? f : false, + di = cf_c('disabled', c); + + if (o.auto.button && fx) + { + o.auto.button[fx](di); + } + if (o.prev.button) + { + var fn = fx || (f == 0) ? 'addClass' : 'removeClass'; + o.prev.button[fn](di); + } + if (o.next.button) + { + var fn = fx || (f == o.items.visible) ? 'addClass' : 'removeClass'; + o.next.button[fn](di); + } + } + + // get object functions + function go_getObject($tt, obj) { + if (is_function(obj)) + { + obj = obj.call($tt); + } + else if (is_undefined(obj)) + { + obj = {}; + } + return obj; + } + function go_getItemsObject($tt, obj) { + obj = go_getObject($tt, obj); + if (is_number(obj)) + { + obj = { + 'visible': obj + }; + } + else if (obj == 'variable') + { + obj = { + 'visible': obj, + 'width': obj, + 'height': obj + }; + } + else if (!is_object(obj)) + { + obj = {}; + } + return obj; + } + function go_getScrollObject($tt, obj) { + obj = go_getObject($tt, obj); + if (is_number(obj)) + { + if (obj <= 50) + { + obj = { + 'items': obj + }; + } + else + { + obj = { + 'duration': obj + }; + } + } + else if (is_string(obj)) + { + obj = { + 'easing': obj + }; + } + else if (!is_object(obj)) + { + obj = {}; + } + return obj; + } + function go_getNaviObject($tt, obj) { + obj = go_getObject($tt, obj); + if (is_string(obj)) + { + var temp = cf_getKeyCode(obj); + if (temp == -1) + { + obj = $(obj); + } + else + { + obj = temp; + } + } + return obj; + } + + function go_getAutoObject($tt, obj) { + obj = go_getNaviObject($tt, obj); + if (is_jquery(obj)) + { + obj = { + 'button': obj + }; + } + else if (is_boolean(obj)) + { + obj = { + 'play': obj + }; + } + else if (is_number(obj)) + { + obj = { + 'timeoutDuration': obj + }; + } + if (obj.progress) + { + if (is_string(obj.progress) || is_jquery(obj.progress)) + { + obj.progress = { + 'bar': obj.progress + }; + } + } + return obj; + } + function go_complementAutoObject($tt, obj) { + if (is_function(obj.button)) + { + obj.button = obj.button.call($tt); + } + if (is_string(obj.button)) + { + obj.button = $(obj.button); + } + if (!is_boolean(obj.play)) + { + obj.play = true; + } + if (!is_number(obj.delay)) + { + obj.delay = 0; + } + if (is_undefined(obj.pauseOnEvent)) + { + obj.pauseOnEvent = true; + } + if (!is_boolean(obj.pauseOnResize)) + { + obj.pauseOnResize = true; + } + if (!is_number(obj.timeoutDuration)) + { + obj.timeoutDuration = (obj.duration < 10) + ? 2500 + : obj.duration * 5; + } + if (obj.progress) + { + if (is_function(obj.progress.bar)) + { + obj.progress.bar = obj.progress.bar.call($tt); + } + if (is_string(obj.progress.bar)) + { + obj.progress.bar = $(obj.progress.bar); + } + if (obj.progress.bar) + { + if (!is_function(obj.progress.updater)) + { + obj.progress.updater = $.fn.carouFredSel.progressbarUpdater; + } + if (!is_number(obj.progress.interval)) + { + obj.progress.interval = 50; + } + } + else + { + obj.progress = false; + } + } + return obj; + } + + function go_getPrevNextObject($tt, obj) { + obj = go_getNaviObject($tt, obj); + if (is_jquery(obj)) + { + obj = { + 'button': obj + }; + } + else if (is_number(obj)) + { + obj = { + 'key': obj + }; + } + return obj; + } + function go_complementPrevNextObject($tt, obj) { + if (is_function(obj.button)) + { + obj.button = obj.button.call($tt); + } + if (is_string(obj.button)) + { + obj.button = $(obj.button); + } + if (is_string(obj.key)) + { + obj.key = cf_getKeyCode(obj.key); + } + return obj; + } + + function go_getPaginationObject($tt, obj) { + obj = go_getNaviObject($tt, obj); + if (is_jquery(obj)) + { + obj = { + 'container': obj + }; + } + else if (is_boolean(obj)) + { + obj = { + 'keys': obj + }; + } + return obj; + } + function go_complementPaginationObject($tt, obj) { + if (is_function(obj.container)) + { + obj.container = obj.container.call($tt); + } + if (is_string(obj.container)) + { + obj.container = $(obj.container); + } + if (!is_number(obj.items)) + { + obj.items = false; + } + if (!is_boolean(obj.keys)) + { + obj.keys = false; + } + if (!is_function(obj.anchorBuilder) && !is_false(obj.anchorBuilder)) + { + obj.anchorBuilder = $.fn.carouFredSel.pageAnchorBuilder; + } + if (!is_number(obj.deviation)) + { + obj.deviation = 0; + } + return obj; + } + + function go_getSwipeObject($tt, obj) { + if (is_function(obj)) + { + obj = obj.call($tt); + } + if (is_undefined(obj)) + { + obj = { + 'onTouch': false + }; + } + if (is_true(obj)) + { + obj = { + 'onTouch': obj + }; + } + else if (is_number(obj)) + { + obj = { + 'items': obj + }; + } + return obj; + } + function go_complementSwipeObject($tt, obj) { + if (!is_boolean(obj.onTouch)) + { + obj.onTouch = true; + } + if (!is_boolean(obj.onMouse)) + { + obj.onMouse = false; + } + if (!is_object(obj.options)) + { + obj.options = {}; + } + if (!is_boolean(obj.options.triggerOnTouchEnd)) + { + obj.options.triggerOnTouchEnd = false; + } + return obj; + } + function go_getMousewheelObject($tt, obj) { + if (is_function(obj)) + { + obj = obj.call($tt); + } + if (is_true(obj)) + { + obj = {}; + } + else if (is_number(obj)) + { + obj = { + 'items': obj + }; + } + else if (is_undefined(obj)) + { + obj = false; + } + return obj; + } + function go_complementMousewheelObject($tt, obj) { + return obj; + } + + // get number functions + function gn_getItemIndex(num, dev, org, items, $cfs) { + if (is_string(num)) + { + num = $(num, $cfs); + } + + if (is_object(num)) + { + num = $(num, $cfs); + } + if (is_jquery(num)) + { + num = $cfs.children().index(num); + if (!is_boolean(org)) + { + org = false; + } + } + else + { + if (!is_boolean(org)) + { + org = true; + } + } + if (!is_number(num)) + { + num = 0; + } + if (!is_number(dev)) + { + dev = 0; + } + + if (org) + { + num += items.first; + } + num += dev; + if (items.total > 0) + { + while (num >= items.total) + { + num -= items.total; + } + while (num < 0) + { + num += items.total; + } + } + return num; + } + + // items prev + function gn_getVisibleItemsPrev(i, o, s) { + var t = 0, + x = 0; + + for (var a = s; a >= 0; a--) + { + var j = i.eq(a); + t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0; + if (t > o.maxDimension) + { + return x; + } + if (a == 0) + { + a = i.length; + } + x++; + } + } + function gn_getVisibleItemsPrevFilter(i, o, s) { + return gn_getItemsPrevFilter(i, o.items.filter, o.items.visibleConf.org, s); + } + function gn_getScrollItemsPrevFilter(i, o, s, m) { + return gn_getItemsPrevFilter(i, o.items.filter, m, s); + } + function gn_getItemsPrevFilter(i, f, m, s) { + var t = 0, + x = 0; + + for (var a = s, l = i.length; a >= 0; a--) + { + x++; + if (x == l) + { + return x; + } + + var j = i.eq(a); + if (j.is(f)) + { + t++; + if (t == m) + { + return x; + } + } + if (a == 0) + { + a = l; + } + } + } + + function gn_getVisibleOrg($c, o) { + return o.items.visibleConf.org || $c.children().slice(0, o.items.visible).filter(o.items.filter).length; + } + + // items next + function gn_getVisibleItemsNext(i, o, s) { + var t = 0, + x = 0; + + for (var a = s, l = i.length-1; a <= l; a++) + { + var j = i.eq(a); + + t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0; + if (t > o.maxDimension) + { + return x; + } + + x++; + if (x == l+1) + { + return x; + } + if (a == l) + { + a = -1; + } + } + } + function gn_getVisibleItemsNextTestCircular(i, o, s, l) { + var v = gn_getVisibleItemsNext(i, o, s); + if (!o.circular) + { + if (s + v > l) + { + v = l - s; + } + } + return v; + } + function gn_getVisibleItemsNextFilter(i, o, s) { + return gn_getItemsNextFilter(i, o.items.filter, o.items.visibleConf.org, s, o.circular); + } + function gn_getScrollItemsNextFilter(i, o, s, m) { + return gn_getItemsNextFilter(i, o.items.filter, m+1, s, o.circular) - 1; + } + function gn_getItemsNextFilter(i, f, m, s, c) { + var t = 0, + x = 0; + + for (var a = s, l = i.length-1; a <= l; a++) + { + x++; + if (x >= l) + { + return x; + } + + var j = i.eq(a); + if (j.is(f)) + { + t++; + if (t == m) + { + return x; + } + } + if (a == l) + { + a = -1; + } + } + } + + // get items functions + function gi_getCurrentItems(i, o) { + return i.slice(0, o.items.visible); + } + function gi_getOldItemsPrev(i, o, n) { + return i.slice(n, o.items.visibleConf.old+n); + } + function gi_getNewItemsPrev(i, o) { + return i.slice(0, o.items.visible); + } + function gi_getOldItemsNext(i, o) { + return i.slice(0, o.items.visibleConf.old); + } + function gi_getNewItemsNext(i, o, n) { + return i.slice(n, o.items.visible+n); + } + + // sizes functions + function sz_storeMargin(i, o, d) { + if (o.usePadding) + { + if (!is_string(d)) + { + d = '_cfs_origCssMargin'; + } + i.each(function() { + var j = $(this), + m = parseInt(j.css(o.d['marginRight']), 10); + if (!is_number(m)) + { + m = 0; + } + j.data(d, m); + }); + } + } + function sz_resetMargin(i, o, m) { + if (o.usePadding) + { + var x = (is_boolean(m)) ? m : false; + if (!is_number(m)) + { + m = 0; + } + sz_storeMargin(i, o, '_cfs_tempCssMargin'); + i.each(function() { + var j = $(this); + j.css(o.d['marginRight'], ((x) ? j.data('_cfs_tempCssMargin') : m + j.data('_cfs_origCssMargin'))); + }); + } + } + function sz_storeOrigCss(i) { + i.each(function() { + var j = $(this); + j.data('_cfs_origCss', j.attr('style') || ''); + }); + } + function sz_restoreOrigCss(i) { + i.each(function() { + var j = $(this); + j.attr('style', j.data('_cfs_origCss') || ''); + }); + } + function sz_setResponsiveSizes(o, all) { + var visb = o.items.visible, + newS = o.items[o.d['width']], + seco = o[o.d['height']], + secp = is_percentage(seco); + + all.each(function() { + var $t = $(this), + nw = newS - ms_getPaddingBorderMargin($t, o, 'Width'); + + $t[o.d['width']](nw); + if (secp) + { + $t[o.d['height']](ms_getPercentage(nw, seco)); + } + }); + } + function sz_setSizes($c, o) { + var $w = $c.parent(), + $i = $c.children(), + $v = gi_getCurrentItems($i, o), + sz = cf_mapWrapperSizes(ms_getSizes($v, o, true), o, false); + + $w.css(sz); + + if (o.usePadding) + { + var p = o.padding, + r = p[o.d[1]]; + + if (o.align && r < 0) + { + r = 0; + } + var $l = $v.last(); + $l.css(o.d['marginRight'], $l.data('_cfs_origCssMargin') + r); + $c.css(o.d['top'], p[o.d[0]]); + $c.css(o.d['left'], p[o.d[3]]); + } + + $c.css(o.d['width'], sz[o.d['width']]+(ms_getTotalSize($i, o, 'width')*2)); + $c.css(o.d['height'], ms_getLargestSize($i, o, 'height')); + return sz; + } + + // measuring functions + function ms_getSizes(i, o, wrapper) { + return [ms_getTotalSize(i, o, 'width', wrapper), ms_getLargestSize(i, o, 'height', wrapper)]; + } + function ms_getLargestSize(i, o, dim, wrapper) { + if (!is_boolean(wrapper)) + { + wrapper = false; + } + if (is_number(o[o.d[dim]]) && wrapper) + { + return o[o.d[dim]]; + } + if (is_number(o.items[o.d[dim]])) + { + return o.items[o.d[dim]]; + } + dim = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight'; + return ms_getTrueLargestSize(i, o, dim); + } + function ms_getTrueLargestSize(i, o, dim) { + var s = 0; + + for (var a = 0, l = i.length; a < l; a++) + { + var j = i.eq(a); + + var m = (j.is(':visible')) ? j[o.d[dim]](true) : 0; + if (s < m) + { + s = m; + } + } + return s; + } + + function ms_getTotalSize(i, o, dim, wrapper) { + if (!is_boolean(wrapper)) + { + wrapper = false; + } + if (is_number(o[o.d[dim]]) && wrapper) + { + return o[o.d[dim]]; + } + if (is_number(o.items[o.d[dim]])) + { + return o.items[o.d[dim]] * i.length; + } + + var d = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight', + s = 0; + + for (var a = 0, l = i.length; a < l; a++) + { + var j = i.eq(a); + s += (j.is(':visible')) ? j[o.d[d]](true) : 0; + } + return s; + } + function ms_getParentSize($w, o, d) { + var isVisible = $w.is(':visible'); + if (isVisible) + { + $w.hide(); + } + var s = $w.parent()[o.d[d]](); + if (isVisible) + { + $w.show(); + } + return s; + } + function ms_getMaxDimension(o, a) { + return (is_number(o[o.d['width']])) ? o[o.d['width']] : a; + } + function ms_hasVariableSizes(i, o, dim) { + var s = false, + v = false; + + for (var a = 0, l = i.length; a < l; a++) + { + var j = i.eq(a); + + var c = (j.is(':visible')) ? j[o.d[dim]](true) : 0; + if (s === false) + { + s = c; + } + else if (s != c) + { + v = true; + } + if (s == 0) + { + v = true; + } + } + return v; + } + function ms_getPaddingBorderMargin(i, o, d) { + return i[o.d['outer'+d]](true) - i[o.d[d.toLowerCase()]](); + } + function ms_getPercentage(s, o) { + if (is_percentage(o)) + { + o = parseInt( o.slice(0, -1), 10 ); + if (!is_number(o)) + { + return s; + } + s *= o/100; + } + return s; + } + + // config functions + function cf_e(n, c, pf, ns, rd) { + if (!is_boolean(pf)) + { + pf = true; + } + if (!is_boolean(ns)) + { + ns = true; + } + if (!is_boolean(rd)) + { + rd = false; + } + + if (pf) + { + n = c.events.prefix + n; + } + if (ns) + { + n = n +'.'+ c.events.namespace; + } + if (ns && rd) + { + n += c.serialNumber; + } + + return n; + } + function cf_c(n, c) { + return (is_string(c.classnames[n])) ? c.classnames[n] : n; + } + function cf_mapWrapperSizes(ws, o, p) { + if (!is_boolean(p)) + { + p = true; + } + var pad = (o.usePadding && p) ? o.padding : [0, 0, 0, 0]; + var wra = {}; + + wra[o.d['width']] = ws[0] + pad[1] + pad[3]; + wra[o.d['height']] = ws[1] + pad[0] + pad[2]; + + return wra; + } + function cf_sortParams(vals, typs) { + var arr = []; + for (var a = 0, l1 = vals.length; a < l1; a++) + { + for (var b = 0, l2 = typs.length; b < l2; b++) + { + if (typs[b].indexOf(typeof vals[a]) > -1 && is_undefined(arr[b])) + { + arr[b] = vals[a]; + break; + } + } + } + return arr; + } + function cf_getPadding(p) { + if (is_undefined(p)) + { + return [0, 0, 0, 0]; + } + if (is_number(p)) + { + return [p, p, p, p]; + } + if (is_string(p)) + { + p = p.split('px').join('').split('em').join('').split(' '); + } + + if (!is_array(p)) + { + return [0, 0, 0, 0]; + } + for (var i = 0; i < 4; i++) + { + p[i] = parseInt(p[i], 10); + } + switch (p.length) + { + case 0: + return [0, 0, 0, 0]; + case 1: + return [p[0], p[0], p[0], p[0]]; + case 2: + return [p[0], p[1], p[0], p[1]]; + case 3: + return [p[0], p[1], p[2], p[1]]; + default: + return [p[0], p[1], p[2], p[3]]; + } + } + function cf_getAlignPadding(itm, o) { + var x = (is_number(o[o.d['width']])) ? Math.ceil(o[o.d['width']] - ms_getTotalSize(itm, o, 'width')) : 0; + switch (o.align) + { + case 'left': + return [0, x]; + case 'right': + return [x, 0]; + case 'center': + default: + return [Math.ceil(x/2), Math.floor(x/2)]; + } + } + function cf_getDimensions(o) { + var dm = [ + ['width' , 'innerWidth' , 'outerWidth' , 'height' , 'innerHeight' , 'outerHeight' , 'left', 'top' , 'marginRight' , 0, 1, 2, 3], + ['height' , 'innerHeight' , 'outerHeight' , 'width' , 'innerWidth' , 'outerWidth' , 'top' , 'left', 'marginBottom', 3, 2, 1, 0] + ]; + + var dl = dm[0].length, + dx = (o.direction == 'right' || o.direction == 'left') ? 0 : 1; + + var dimensions = {}; + for (var d = 0; d < dl; d++) + { + dimensions[dm[0][d]] = dm[dx][d]; + } + return dimensions; + } + function cf_getAdjust(x, o, a, $t) { + var v = x; + if (is_function(a)) + { + v = a.call($t, v); + + } + else if (is_string(a)) + { + var p = a.split('+'), + m = a.split('-'); + + if (m.length > p.length) + { + var neg = true, + sta = m[0], + adj = m[1]; + } + else + { + var neg = false, + sta = p[0], + adj = p[1]; + } + + switch(sta) + { + case 'even': + v = (x % 2 == 1) ? x-1 : x; + break; + case 'odd': + v = (x % 2 == 0) ? x-1 : x; + break; + default: + v = x; + break; + } + adj = parseInt(adj, 10); + if (is_number(adj)) + { + if (neg) + { + adj = -adj; + } + v += adj; + } + } + if (!is_number(v) || v < 1) + { + v = 1; + } + return v; + } + function cf_getItemsAdjust(x, o, a, $t) { + return cf_getItemAdjustMinMax(cf_getAdjust(x, o, a, $t), o.items.visibleConf); + } + function cf_getItemAdjustMinMax(v, i) { + if (is_number(i.min) && v < i.min) + { + v = i.min; + } + if (is_number(i.max) && v > i.max) + { + v = i.max; + } + if (v < 1) + { + v = 1; + } + return v; + } + function cf_getSynchArr(s) { + if (!is_array(s)) + { + s = [[s]]; + } + if (!is_array(s[0])) + { + s = [s]; + } + for (var j = 0, l = s.length; j < l; j++) + { + if (is_string(s[j][0])) + { + s[j][0] = $(s[j][0]); + } + if (!is_boolean(s[j][1])) + { + s[j][1] = true; + } + if (!is_boolean(s[j][2])) + { + s[j][2] = true; + } + if (!is_number(s[j][3])) + { + s[j][3] = 0; + } + } + return s; + } + function cf_getKeyCode(k) { + if (k == 'right') + { + return 39; + } + if (k == 'left') + { + return 37; + } + if (k == 'up') + { + return 38; + } + if (k == 'down') + { + return 40; + } + return -1; + } + function cf_setCookie(n, $c, c) { + if (n) + { + var v = $c.triggerHandler(cf_e('currentPosition', c)); + $.fn.carouFredSel.cookie.set(n, v); + } + } + function cf_getCookie(n) { + var c = $.fn.carouFredSel.cookie.get(n); + return (c == '') ? 0 : c; + } + + // init function + function in_mapCss($elem, props) { + var css = {}; + for (var p = 0, l = props.length; p < l; p++) + { + css[props[p]] = $elem.css(props[p]); + } + return css; + } + function in_complementItems(obj, opt, itm, sta) { + if (!is_object(obj.visibleConf)) + { + obj.visibleConf = {}; + } + if (!is_object(obj.sizesConf)) + { + obj.sizesConf = {}; + } + + if (obj.start == 0 && is_number(sta)) + { + obj.start = sta; + } + + // visible items + if (is_object(obj.visible)) + { + obj.visibleConf.min = obj.visible.min; + obj.visibleConf.max = obj.visible.max; + obj.visible = false; + } + else if (is_string(obj.visible)) + { + // variable visible items + if (obj.visible == 'variable') + { + obj.visibleConf.variable = true; + } + // adjust string visible items + else + { + obj.visibleConf.adjust = obj.visible; + } + obj.visible = false; + } + else if (is_function(obj.visible)) + { + obj.visibleConf.adjust = obj.visible; + obj.visible = false; + } + + // set items filter + if (!is_string(obj.filter)) + { + obj.filter = (itm.filter(':hidden').length > 0) ? ':visible' : '*'; + } + + // primary item-size not set + if (!obj[opt.d['width']]) + { + // responsive carousel -> set to largest + if (opt.responsive) + { + debug(true, 'Set a '+opt.d['width']+' for the items!'); + obj[opt.d['width']] = ms_getTrueLargestSize(itm, opt, 'outerWidth'); + } + // non-responsive -> measure it or set to "variable" + else + { + obj[opt.d['width']] = (ms_hasVariableSizes(itm, opt, 'outerWidth')) + ? 'variable' + : itm[opt.d['outerWidth']](true); + } + } + + // secondary item-size not set -> measure it or set to "variable" + if (!obj[opt.d['height']]) + { + obj[opt.d['height']] = (ms_hasVariableSizes(itm, opt, 'outerHeight')) + ? 'variable' + : itm[opt.d['outerHeight']](true); + } + + obj.sizesConf.width = obj.width; + obj.sizesConf.height = obj.height; + return obj; + } + function in_complementVisibleItems(opt, avl) { + // primary item-size variable -> set visible items variable + if (opt.items[opt.d['width']] == 'variable') + { + opt.items.visibleConf.variable = true; + } + if (!opt.items.visibleConf.variable) { + // primary size is number -> calculate visible-items + if (is_number(opt[opt.d['width']])) + { + opt.items.visible = Math.floor(opt[opt.d['width']] / opt.items[opt.d['width']]); + } + // measure and calculate primary size and visible-items + else + { + opt.items.visible = Math.floor(avl / opt.items[opt.d['width']]); + opt[opt.d['width']] = opt.items.visible * opt.items[opt.d['width']]; + if (!opt.items.visibleConf.adjust) + { + opt.align = false; + } + } + if (opt.items.visible == 'Infinity' || opt.items.visible < 1) + { + debug(true, 'Not a valid number of visible items: Set to "variable".'); + opt.items.visibleConf.variable = true; + } + } + return opt; + } + function in_complementPrimarySize(obj, opt, all) { + // primary size set to auto -> measure largest item-size and set it + if (obj == 'auto') + { + obj = ms_getTrueLargestSize(all, opt, 'outerWidth'); + } + return obj; + } + function in_complementSecondarySize(obj, opt, all) { + // secondary size set to auto -> measure largest item-size and set it + if (obj == 'auto') + { + obj = ms_getTrueLargestSize(all, opt, 'outerHeight'); + } + // secondary size not set -> set to secondary item-size + if (!obj) + { + obj = opt.items[opt.d['height']]; + } + return obj; + } + function in_getAlignPadding(o, all) { + var p = cf_getAlignPadding(gi_getCurrentItems(all, o), o); + o.padding[o.d[1]] = p[1]; + o.padding[o.d[3]] = p[0]; + return o; + } + function in_getResponsiveValues(o, all, avl) { + + var visb = cf_getItemAdjustMinMax(Math.ceil(o[o.d['width']] / o.items[o.d['width']]), o.items.visibleConf); + if (visb > all.length) + { + visb = all.length; + } + + var newS = Math.floor(o[o.d['width']]/visb); + + o.items.visible = visb; + o.items[o.d['width']] = newS; + o[o.d['width']] = visb * newS; + return o; + } + + + // buttons functions + function bt_pauseOnHoverConfig(p) { + if (is_string(p)) + { + var i = (p.indexOf('immediate') > -1) ? true : false, + r = (p.indexOf('resume') > -1) ? true : false; + } + else + { + var i = r = false; + } + return [i, r]; + } + function bt_mousesheelNumber(mw) { + return (is_number(mw)) ? mw : null + } + + // helper functions + function is_null(a) { + return (a === null); + } + function is_undefined(a) { + return (is_null(a) || typeof a == 'undefined' || a === '' || a === 'undefined'); + } + function is_array(a) { + return (a instanceof Array); + } + function is_jquery(a) { + return (a instanceof jQuery); + } + function is_object(a) { + return ((a instanceof Object || typeof a == 'object') && !is_null(a) && !is_jquery(a) && !is_array(a)); + } + function is_number(a) { + return ((a instanceof Number || typeof a == 'number') && !isNaN(a)); + } + function is_string(a) { + return ((a instanceof String || typeof a == 'string') && !is_undefined(a) && !is_true(a) && !is_false(a)); + } + function is_function(a) { + return (a instanceof Function || typeof a == 'function'); + } + function is_boolean(a) { + return (a instanceof Boolean || typeof a == 'boolean' || is_true(a) || is_false(a)); + } + function is_true(a) { + return (a === true || a === 'true'); + } + function is_false(a) { + return (a === false || a === 'false'); + } + function is_percentage(x) { + return (is_string(x) && x.slice(-1) == '%'); + } + + + function getTime() { + return new Date().getTime(); + } + + function deprecated( o, n ) { + debug(true, o+' is DEPRECATED, support for it will be removed. Use '+n+' instead.'); + } + function debug(d, m) { + if (!is_undefined(window.console) && !is_undefined(window.console.log)) + { + if (is_object(d)) + { + var s = ' ('+d.selector+')'; + d = d.debug; + } + else + { + var s = ''; + } + if (!d) + { + return false; + } + + if (is_string(m)) + { + m = 'carouFredSel'+s+': ' + m; + } + else + { + m = ['carouFredSel'+s+':', m]; + } + window.console.log(m); + } + return false; + } + + + + // EASING FUNCTIONS + $.extend($.easing, { + 'quadratic': function(t) { + var t2 = t * t; + return t * (-t2 * t + 4 * t2 - 6 * t + 4); + }, + 'cubic': function(t) { + return t * (4 * t * t - 9 * t + 6); + }, + 'elastic': function(t) { + var t2 = t * t; + return t * (33 * t2 * t2 - 106 * t2 * t + 126 * t2 - 67 * t + 15); + } + }); + + +})(jQuery); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/custom.js b/src/wp-content/themes/lqdvi/js/custom.js index 29341de8..365f56f0 100644 --- a/src/wp-content/themes/lqdvi/js/custom.js +++ b/src/wp-content/themes/lqdvi/js/custom.js @@ -7,279 +7,500 @@ var $j = jQuery.noConflict(); $j.fn.getIndex = function(){ - var $jp=$j(this).parent().children(); + var $jp=$j(this).parent().children(); return $jp.index(this); } -$j.fn.setNav = function(){ - $j('#main_menu li ul').css({display: 'none'}); - - $j('#main_menu li').each(function() - { - var $jsublist = $j(this).find('ul:first'); - - $j(this).hover(function() - { - $jsublist.css({opacity: 1}); - - $jsublist.stop().css({overflow:'hidden', height:'auto', display:'none'}).fadeIn(200, function() - { - $j(this).css({overflow:'visible', height:'auto', display: 'block'}); - }); - }, - function() - { - $jsublist.stop().css({overflow:'hidden', height:'auto', display:'none'}).fadeOut(200, function() - { - $j(this).css({overflow:'hidden', display:'none'}); - }); - }); - - }); +$j.fn.setFancyBox = function() { + $j('.img_frame').fancybox({ + padding: 10, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); - $j('#main_menu li').each(function() - { - - $j(this).hover(function() - { - $j(this).find('a:first').addClass('hover'); - }, - function() - { - $j(this).find('a:first').removeClass('hover'); - }); - - }); + $j('.pp_gallery a').fancybox({ + padding: 0, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); - $j('#menu_wrapper .nav ul li ul').css({display: 'none'}); - - $j('#menu_wrapper .nav ul li').each(function() - { - - var $jsublist = $j(this).find('ul:first'); - - $j(this).hover(function() - { - $jsublist.css({opacity: 1}); - - $jsublist.stop().css({overflow:'hidden', height:'auto', display:'none'}).fadeIn(200, function() - { - $j(this).css({overflow:'visible', height:'auto', display: 'block'}); - }); - }, - function() - { - $jsublist.stop().css({overflow:'hidden', height:'auto', display:'none'}).fadeOut(200, function() - { - $j(this).css({overflow:'hidden', display:'none'}); - }); - }); - - }); + $j('.flickr li a').fancybox({ + padding: 0, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); - $j('#menu_wrapper .nav ul li').each(function() - { - - $j(this).hover(function() - { - $j(this).find('a:first').addClass('hover'); - }, - function() - { - $j(this).find('a:first').removeClass('hover'); - }); - - }); + $j('.lightbox').fancybox({ + padding: 0, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); + + $j('.lightbox_youtube').fancybox({ + padding: 10, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); + + $j('.lightbox_vimeo').fancybox({ + padding: 10, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); + + $j('.lightbox_dailymotion').fancybox({ + padding: 10, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); + + $j('.lightbox_iframe').fancybox({ + padding: 0, + type: 'iframe', + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8, + width: 900, + height: 650 + }); + + $j('#content_wrapper .inner .card a.img_link').fancybox({ + padding: 0, + overlayColor: '#000', + transitionIn: 'fade', + transitionOut: 'fade', + overlayOpacity: .8 + }); } -$j(function () { - - $j('.slideshow').anythingSlider({ - easing: "easeInOutExpo", - autoPlay: false, - startStopped: false, - animationTime: 600, - hashTags: false, - buildNavigation: true, - buildArrows: false, - pauseOnHover: true, - startText: "Go", - stopText: "Stop" - }); - +$j.fn.setNav = function(){ + $j('#main_menu li ul').css({ + display: 'none' }); + $j('#main_menu li').each(function() + { + var $jsublist = $j(this).find('ul:first'); + + $j(this).hover(function() + { + $jsublist.css({ + opacity: 1 + }); + + $jsublist.stop().css({ + overflow:'hidden', + height:'auto', + display:'none' + }).fadeIn(200, function() + + { + $j(this).css({ + overflow:'visible', + height:'auto', + display: 'block' + }); + }); + }, + function() + { + $jsublist.stop().css({ + overflow:'hidden', + height:'auto', + display:'none' + }).fadeOut(200, function() + + { + $j(this).css({ + overflow:'hidden', + display:'none' + }); + }); + }); + + }); + + $j('#main_menu li').each(function() + { + + $j(this).hover(function() + { + $j(this).find('a:first').addClass('hover'); + }, + function() + { + $j(this).find('a:first').removeClass('hover'); + }); + + }); + + $j('#menu_wrapper .nav ul li ul').css({ + display: 'none' + }); + + $j('#menu_wrapper .nav ul li').each(function() + { + + var $jsublist = $j(this).find('ul:first'); + + $j(this).hover(function() + { + $jsublist.css({ + opacity: 1 + }); + + $jsublist.stop().css({ + overflow:'hidden', + height:'auto', + display:'none' + }).fadeIn(200, function() + + { + $j(this).css({ + overflow:'visible', + height:'auto', + display: 'block' + }); + }); + }, + function() + { + $jsublist.stop().css({ + overflow:'hidden', + height:'auto', + display:'none' + }).fadeOut(200, function() + + { + $j(this).css({ + overflow:'hidden', + display:'none' + }); + }); + }); + + }); + + $j('#menu_wrapper .nav ul li').each(function() + { + + $j(this).hover(function() + { + $j(this).find('a:first').addClass('hover'); + }, + function() + { + $j(this).find('a:first').removeClass('hover'); + }); + + }); +} + +$j.fn.setSlideshow = function() { + $j('.slideshow').anythingSlider({ + easing: "easeInOutExpo", + autoPlay: false, + startStopped: false, + animationTime: 600, + hashTags: false, + buildNavigation: true, + buildArrows: false, + pauseOnHover: true, + startText: "Go", + stopText: "Stop" + }); +}; + +$j.fn.setVideoJS = function() { + VideoJS.setupAllWhenReady({ + controlsBelow: false, // Display control bar below video instead of in front of + controlsHiding: true, // Hide controls when mouse is not over the video + defaultVolume: 0.85, // Will be overridden by user's last volume if available + flashVersion: 9, // Required flash version for fallback + linksHiding: true // Hide download links when video is supported + }); +} + +$j.fn.setCufon = function() { + Cufon.replace('#menu_wrapper .nav ul li ul li a, #menu_wrapper div .nav li ul li a', { + fontFamily: "ChildsPlay-AgeEight", + hover: { + color: '#000' + } + }); + Cufon.replace('#topbar_wrapper #topbar_contact', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.capturas .caption_inner .caption_desc', { + fontFamily: "Franklin Gothic Book", + hover: { + color: '#fff' + } + }); + + Cufon.replace('p', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('ul', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + + Cufon.replace('#welcome_msg', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h1', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h2', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h3', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h4', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h5', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h1.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h1.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h2.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h2.quote', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h2.widgettitle', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h3.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h4.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h5.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('h6.cufon', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.pricing_box h2', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.pricing_box .header span', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('#searchform label', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.tagline p', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.dropcap1', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.post_img_date', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + Cufon.replace('.ui-accordion-header', { + fontFamily: "Franklin Gothic Book", + autoDetect: true + }); + + Cufon.replace('.page_caption h1.cufon', { + fontFamily: "ChildsPlay-AgeEight" + }); + Cufon.replace('.page_caption h2.cufon', { + fontFamily: "ChildsPlay-AgeEight" + }); + Cufon.replace('.caption_desc', { + fontFamily: "ChildsPlay-AgeEight" + }); + Cufon.replace('.nav', { + fontFamily: "ChildsPlay-AgeEight" + }); + Cufon.replace('.cufon-child', { + fontFamily: "ChildsPlay-AgeEight" + }); + Cufon.replace('.widgettitle', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.capturas .caption_inner .caption_desc', { + fontFamily: "Franklin Gothic Book" + }); + + Cufon.replace('.childfont', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.event_title', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.event-data-display h1', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.event-data-display h2', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.event-data-display h3', { + fontFamily: "ChildsPlay-AgeEight" + }); + + Cufon.replace('.event-data-display h4', { + fontFamily: "ChildsPlay-AgeEight" + }); + +} + +$j.setBrowser = function() { + if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8) + { + var zIndexNumber = 1000; + $j('div').each(function() { + $j(this).css('zIndex', zIndexNumber); + zIndexNumber -= 10; + }); + + $j('#thumbNav').css('zIndex', 1000); + $j('#thumbLeftNav').css('zIndex', 1000); + $j('#thumbRightNav').css('zIndex', 1000); + $j('#fancybox-wrap').css('zIndex', 1001); + $j('#fancybox-overlay').css('zIndex', 1000); + } +} + +$j.setPortfolio = function() { + $j('.portfolio2_hover').hide(); + $j('.one_half .portfolio_image').hover(function(){ + $j(this).find('.portfolio2_hover').show(); + $j(this).find('img').animate({ + top: '11px' + }, 300); + + $j(this).click(function(){ + $j(this).find('a').click(); + }); + } + , function(){ + + $j(this).find('img').animate({ + top: '32px' + }, 300); + $j(this).find('.portfolio2_hover').hide(); + } + + ); + + $j('.portfolio3_hover').hide(); + $j('.one_third .portfolio_image').hover(function(){ + $j(this).find('.portfolio3_hover').show(); + $j(this).find('img').animate({ + top: '20px' + }, 300); + + $j(this).click(function(){ + $j(this).find('a').click(); + }); + } + , function(){ + + $j(this).find('img').animate({ + top: '30px' + }, 300); + $j(this).find('.portfolio3_hover').hide(); + } + + ); + + $j('.portfolio4_hover').hide(); + $j('.one_fourth .portfolio_image').hover(function(){ + $j(this).find('.portfolio4_hover').show(); + $j(this).find('img').animate({ + top: '3px' + }, 300); + + $j(this).click(function(){ + $j(this).find('a').click(); + }); + } + , function(){ + + $j(this).find('img').animate({ + top: '20px' + }, 300); + $j(this).find('.portfolio4_hover').hide(); + } + + ); +} + $j(document).ready(function(){ - $j(document).setNav(); + $j(document).setNav(); - $j('.slideshow').cycle({ - fx: 'scrollRight' // choose your transition type, ex: fade, scrollUp, shuffle, etc... - }); + /*$j('.slideshow').cycle({ + fx: 'scrollRight' // choose your transition type, ex: fade, scrollUp, shuffle, etc... + });*/ - $j('#content_wrapper').show(); + $j('#content_wrapper').show(); - $j('.img_frame').fancybox({ - padding: 10, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.pp_gallery a').fancybox({ - padding: 0, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.flickr li a').fancybox({ - padding: 0, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.lightbox').fancybox({ - padding: 0, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.lightbox_youtube').fancybox({ - padding: 10, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.lightbox_vimeo').fancybox({ - padding: 10, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.lightbox_dailymotion').fancybox({ - padding: 10, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); - - $j('.lightbox_iframe').fancybox({ - padding: 0, - type: 'iframe', - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8, - width: 900, - height: 650 - }); - - $j('#content_wrapper .inner .card a.img_link').fancybox({ - padding: 0, - overlayColor: '#000', - transitionIn: 'fade', - transitionOut: 'fade', - overlayOpacity: .8 - }); + $j(document).setFancyBox(); + //$j(document).setSlideshow(); - $j.validator.setDefaults({ - submitHandler: function() { - var actionUrl = $j('#contact_form').attr('action'); - - $j.ajax({ - type: 'GET', - url: actionUrl, - data: $j('#contact_form').serialize(), - success: function(msg){ - $j('#contact_form').hide(); - $j('#reponse_msg').html(msg); - } - }); - - return false; - } - }); - - - if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8) - { - var zIndexNumber = 1000; - $j('div').each(function() { - $j(this).css('zIndex', zIndexNumber); - zIndexNumber -= 10; - }); - - $j('#thumbNav').css('zIndex', 1000); - $j('#thumbLeftNav').css('zIndex', 1000); - $j('#thumbRightNav').css('zIndex', 1000); - $j('#fancybox-wrap').css('zIndex', 1001); - $j('#fancybox-overlay').css('zIndex', 1000); - } + //$j(document).setBrowser(); - $j('.portfolio2_hover').hide(); - $j('.one_half .portfolio_image').hover(function(){ - $j(this).find('.portfolio2_hover').show(); - $j(this).find('img').animate({top: '11px'}, 300); - - $j(this).click(function(){ - $j(this).find('a').click(); - }); - } - , function(){ - - $j(this).find('img').animate({top: '32px'}, 300); - $j(this).find('.portfolio2_hover').hide(); - } - - ); + - $j('.portfolio3_hover').hide(); - $j('.one_third .portfolio_image').hover(function(){ - $j(this).find('.portfolio3_hover').show(); - $j(this).find('img').animate({top: '20px'}, 300); - - $j(this).click(function(){ - $j(this).find('a').click(); - }); - } - , function(){ - - $j(this).find('img').animate({top: '30px'}, 300); - $j(this).find('.portfolio3_hover').hide(); - } - - ); - - $j('.portfolio4_hover').hide(); - $j('.one_fourth .portfolio_image').hover(function(){ - $j(this).find('.portfolio4_hover').show(); - $j(this).find('img').animate({top: '3px'}, 300); - - $j(this).click(function(){ - $j(this).find('a').click(); - }); - } - , function(){ - - $j(this).find('img').animate({top: '20px'}, 300); - $j(this).find('.portfolio4_hover').hide(); - } - - ); - - /*$j('.post_img').hover(function(){ + /*$j('.post_img').hover(function(){ $j(this).find('img').animate({top: '0px'}, 300); $j(this).click(function(){ @@ -293,292 +514,294 @@ $j(document).ready(function(){ );*/ - $j('ul.flickr li img').hover(function(){ - $j(this).animate({top: '-5px'}, 300); - } - , function(){ + /*$j('ul.flickr li img').hover(function(){ + $j(this).animate({ + top: '-5px' + }, 300); + } + , function(){ - $j(this).animate({top: '0px'}, 300); - } + $j(this).animate({ + top: '0px' + }, 300); + } - ); + ); - $j('.pp_gallery a img').hover(function(){ - $j(this).animate({top: '-3px'}, 100); - } - , function(){ + $j('.pp_gallery a img').hover(function(){ + $j(this).animate({ + top: '-3px' + }, 100); + } + , function(){ - $j(this).animate({top: '0px'}, 100); - } + $j(this).animate({ + top: '0px' + }, 100); + } - ); + ); - $j('.home_portfolio_grid').hover(function(){ - $j(this).animate({top: '-10px'}, 300); - } - , function(){ + $j('.home_portfolio_grid').hover(function(){ + $j(this).animate({ + top: '-10px' + }, 300); + } + , function(){ - $j(this).animate({top: '0px'}, 300); - } + $j(this).animate({ + top: '0px' + }, 300); + } - ); + ); - $j('.card_portfolio_grid').hover(function(){ - $j(this).animate({top: '-10px'}, 300); - } - , function(){ + $j('.card_portfolio_grid').hover(function(){ + $j(this).animate({ + top: '-10px' + }, 300); + } + , function(){ - $j(this).animate({top: '0px'}, 300); - } + $j(this).animate({ + top: '0px' + }, 300); + } - ); + );*/ - Cufon.replace('#menu_wrapper .nav ul li ul li a, #menu_wrapper div .nav li ul li a', { fontFamily: "ChildsPlay-AgeEight", hover: {color: '#000'} }); - Cufon.replace('.capturas .caption_inner .caption_desc', { fontFamily: "Franklin Gothic Book", hover: {color: '#fff'} }); - - Cufon.replace('p', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('ul', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - - Cufon.replace('#welcome_msg', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h1', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h2', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h3', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h4', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h5', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h1.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h1.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h2.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h2.quote', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h2.widgettitle', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h3.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h4.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h5.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('h6.cufon', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.pricing_box h2', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.pricing_box .header span', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('#searchform label', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.tagline p', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.dropcap1', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.post_img_date', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - Cufon.replace('.ui-accordion-header', { fontFamily: "Franklin Gothic Book", autoDetect: true }); - - Cufon.replace('.page_caption h1.cufon', { fontFamily: "ChildsPlay-AgeEight" }); - Cufon.replace('.page_caption h2.cufon', { fontFamily: "ChildsPlay-AgeEight" }); - Cufon.replace('.caption_desc', { fontFamily: "ChildsPlay-AgeEight" }); - Cufon.replace('.nav', { fontFamily: "ChildsPlay-AgeEight" }); - Cufon.replace('.cufon-child', { fontFamily: "ChildsPlay-AgeEight" }); - - Cufon.replace('.capturas .caption_inner .caption_desc', { fontFamily: "Franklin Gothic Book"}); - - + $j(document).setCufon(); - var footerLi = 0; - $j('#footer .sidebar_widget li.widget').each(function() - { - footerLi++; + var footerLi = 0; + $j('#footer .sidebar_widget li.widget').each(function() + { + footerLi++; - if(footerLi%4 == 0) - { - $j(this).addClass('widget-four'); - } - }); - - VideoJS.setupAllWhenReady({ - controlsBelow: false, // Display control bar below video instead of in front of - controlsHiding: true, // Hide controls when mouse is not over the video - defaultVolume: 0.85, // Will be overridden by user's last volume if available - flashVersion: 9, // Required flash version for fallback - linksHiding: true // Hide download links when video is supported + if(footerLi%4 == 0) + { + $j(this).addClass('widget-four'); + } }); - $j('.home_portfolio img.frame').each(function() - { - $j(this).hover(function() - { - $j(this).animate({top: '-15px'}, 300); - }, - function() - { - $j(this).animate({top: 0}, 300); - }); - }); + $j(document).setVideoJS(); + + $j('.home_portfolio img.frame').each(function() + { + $j(this).hover(function() + { + $j(this).animate({ + top: '-15px' + }, 300); + }, + function() + { + $j(this).animate({ + top: 0 + }, 300); + }); + }); - if(!isNaN($j('#slider_rows').val())) - { - var photoItems = $j('#content_wrapper .inner .card').length/$j('#slider_rows').val(); - var galleryWidth = $j('#gallery_width').val(); - } - else - { - var photoItems = 1; - var galleryWidth = 1; - } + if(!isNaN($j('#slider_rows').val())) + { + var photoItems = $j('#content_wrapper .inner .card').length/$j('#slider_rows').val(); + var galleryWidth = $j('#gallery_width').val(); + } + else + { + var photoItems = 1; + var galleryWidth = 1; + } - if(Math.round(photoItems) < photoItems) - { - addItems = 1; - } - else - { - addItems = 0; - } + if(Math.round(photoItems) < photoItems) + { + addItems = 1; + } + else + { + addItems = 0; + } - if(!isNaN($j('#slider_rows').val())) - { - photoItems = parseInt(photoItems)+addItems; - var photoWidth = parseInt(galleryWidth)+2; - var scrollArea = parseInt(photoWidth*photoItems); - var scrollWidth = $j('#wrapper').width(); + if(!isNaN($j('#slider_rows').val())) + { + photoItems = parseInt(photoItems)+addItems; + var photoWidth = parseInt(galleryWidth)+2; + var scrollArea = parseInt(photoWidth*photoItems); + var scrollWidth = $j('#wrapper').width(); - $j('#content_wrapper').css({width: scrollWidth+'px'}); + $j('#content_wrapper').css({ + width: scrollWidth+'px' + }); - $j(window).resize(function() { - var scrollWidth = $j('#wrapper').width(); - $j('#content_wrapper').css({width: scrollWidth+'px'}); - }); + $j(window).resize(function() { + var scrollWidth = $j('#wrapper').width(); + $j('#content_wrapper').css({ + width: scrollWidth+'px' + }); + }); - $j("#content_wrapper .inner").css('width', scrollArea); - $j("#content_wrapper").attr({scrollLeft: 0}); + $j("#content_wrapper .inner").css('width', scrollArea); + $j("#content_wrapper").attr({ + scrollLeft: 0 + }); - $j("#content_wrapper").css({"overflow":"hidden"}); + $j("#content_wrapper").css({ + "overflow":"hidden" + }); - var auto_scroll = $j('#pp_gallery_auto_scroll').val(); + var auto_scroll = $j('#pp_gallery_auto_scroll').val(); - $j("#move_prev").click(function(){ - var speed = parseInt($j('#slider_speed').val()*10); - var slider = $j('#content_slider'); - var sliderCurrent = slider.slider("option", "value"); - sliderCurrent -= speed; + $j("#move_prev").click(function(){ + var speed = parseInt($j('#slider_speed').val()*10); + var slider = $j('#content_slider'); + var sliderCurrent = slider.slider("option", "value"); + sliderCurrent -= speed; - if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); - else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); + if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); + else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); - slider.slider("value", sliderCurrent); - }); + slider.slider("value", sliderCurrent); + }); - $j("#move_next").click(function(){ - var speed = parseInt($j('#slider_speed').val()*10); - var slider = $j('#content_slider'); - var sliderCurrent = slider.slider("option", "value"); - sliderCurrent += speed; + $j("#move_next").click(function(){ + var speed = parseInt($j('#slider_speed').val()*10); + var slider = $j('#content_slider'); + var sliderCurrent = slider.slider("option", "value"); + sliderCurrent += speed; - if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); - else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); + if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); + else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); - slider.slider("value", sliderCurrent); - }); + slider.slider("value", sliderCurrent); + }); - if(auto_scroll != 0) - { - $j("#move_next").mouseenter( - function() { - timerId = setInterval(function() { + if(auto_scroll != 0) + { + $j("#move_next").mouseenter( + function() { + timerId = setInterval(function() { - var speed = parseInt($j('#slider_speed').val()); - var slider = $j('#content_slider'); - var sliderCurrent = slider.slider("option", "value"); - sliderCurrent += speed; // += and -= directions of scroling with MouseWheel + var speed = parseInt($j('#slider_speed').val()); + var slider = $j('#content_slider'); + var sliderCurrent = slider.slider("option", "value"); + sliderCurrent += speed; // += and -= directions of scroling with MouseWheel - if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); - else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); + if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); + else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); - slider.slider("value", sliderCurrent); + slider.slider("value", sliderCurrent); - }, 100); + }, 100); - //$(this).find('img').animate({ opacity: 1 }, 300); - } - ); - $j("#move_next").mouseleave( - function() { - clearInterval(timerId); - } - ); + //$(this).find('img').animate({ opacity: 1 }, 300); + } + ); + $j("#move_next").mouseleave( + function() { + clearInterval(timerId); + } + ); - $j("#move_prev").mouseenter( - function() { - timerId = setInterval(function() { + $j("#move_prev").mouseenter( + function() { + timerId = setInterval(function() { - var speed = parseInt($j('#slider_speed').val()); - var slider = $j('#content_slider'); - var sliderCurrent = slider.slider("option", "value"); - sliderCurrent -= speed; // += and -= directions of scroling with MouseWheel + var speed = parseInt($j('#slider_speed').val()); + var slider = $j('#content_slider'); + var sliderCurrent = slider.slider("option", "value"); + sliderCurrent -= speed; // += and -= directions of scroling with MouseWheel - if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); - else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); + if (sliderCurrent > slider.slider("option", "max")) sliderCurrent = slider.slider("option", "max"); + else if (sliderCurrent < slider.slider("option", "min")) sliderCurrent = slider.slider("option", "min"); - slider.slider("value", sliderCurrent); + slider.slider("value", sliderCurrent); - }, 100); + }, 100); - //$(this).find('img').animate({ opacity: 1 }, 300); - } - ); - $j("#move_prev").mouseleave( - function() { - clearInterval(timerId); - } - ); - } + //$(this).find('img').animate({ opacity: 1 }, 300); + } + ); + $j("#move_prev").mouseleave( + function() { + clearInterval(timerId); + } + ); + } - $j('#content_slider').slider({ - animate: 'slow', - change: changeSlide, - slide: doSlide - }); - } + $j('#content_slider').slider({ + animate: 'slow', + change: changeSlide, + slide: doSlide + }); + } - function changeSlide(e, ui) - { - var maxScroll = $j("#content_wrapper").attr("scrollWidth") - $j("#content_wrapper").width(); - var currentScroll = (ui.value * (maxScroll / 100)); - $j("#content_wrapper").stop().animate({scrollLeft: currentScroll}, 1200); - } + function changeSlide(e, ui) + { + var maxScroll = $j("#content_wrapper").attr("scrollWidth") - $j("#content_wrapper").width(); + var currentScroll = (ui.value * (maxScroll / 100)); + $j("#content_wrapper").stop().animate({ + scrollLeft: currentScroll + }, 1200); + } - function doSlide(e, ui) - { - var maxScroll = $j("#content_wrapper").attr("scrollWidth") - $j("#content_wrapper").width(); - var currentScroll = (ui.value * (maxScroll / 100)); - $j("#content_wrapper").stop().attr({scrollLeft: currentScroll}); - } + function doSlide(e, ui) + { + var maxScroll = $j("#content_wrapper").attr("scrollWidth") - $j("#content_wrapper").width(); + var currentScroll = (ui.value * (maxScroll / 100)); + $j("#content_wrapper").stop().attr({ + scrollLeft: currentScroll + }); + } - $j('#welcome_msg').click(function(){ - //$j(this).fadeOut(); - }); + /*$j('#welcome_msg').click(function(){ + //$j(this).fadeOut(); + });*/ - $j('img.fade').hover(function(){ - $j(this).animate({opacity: 1}, 300); - } - , function(){ + $j('img.fade').hover(function(){ + $j(this).animate({ + opacity: 1 + }, 300); + } + , function(){ - $j(this).animate({opacity: 0.8}, 300); - } + $j(this).animate({ + opacity: 0.8 + }, 300); + } - ); + ); - $j('#slider_loading').hide(); + $j('#slider_loading').hide(); - var slidePos = $j('#content_wrapper').position(); - var slideHeight = $j('#content_wrapper').height(); + var slidePos = $j('#content_wrapper').position(); + var slideHeight = $j('#content_wrapper').height(); - arrowMidPos = slidePos.top+parseInt(slideHeight/2)-30; + arrowMidPos = slidePos.top+parseInt(slideHeight/2)-30; - $j('#move_prev').css({display: 'block', top: arrowMidPos+'px'}); - $j('#move_next').css({display: 'block', top: arrowMidPos+'px'}); + $j('#move_prev').css({ + display: 'block', + top: arrowMidPos+'px' + }); + $j('#move_next').css({ + display: 'block', + top: arrowMidPos+'px' + }); - var welcomeHeight = $j('#welcome_msg').height(); - welcomeMidYPos = slidePos.top+parseInt(slideHeight/2)-parseInt(welcomeHeight/2); - $j('#welcome_msg').css({display: 'block', top: parseInt(welcomeMidYPos-20)+'px'}); + var welcomeHeight = $j('#welcome_msg').height(); + welcomeMidYPos = slidePos.top+parseInt(slideHeight/2)-parseInt(welcomeHeight/2); + $j('#welcome_msg').css({ + display: 'block', + top: parseInt(welcomeMidYPos-20)+'px' + }); - $j('#main_menu > li a').not("ul li ul a").each(function() - { - if($j(this).attr('title').length > 0) - { - $j(this).append(''+$j(this).attr('title')+''); - } - }); +/*$j('#main_menu > li a').not("ul li ul a").each(function() + { + if($j(this).attr('title').length > 0) + { + $j(this).append(''+$j(this).attr('title')+''); + } + });*/ }); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/custom_caroufredsel.js b/src/wp-content/themes/lqdvi/js/custom_caroufredsel.js new file mode 100644 index 00000000..0bb523f4 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/custom_caroufredsel.js @@ -0,0 +1,26 @@ +var $cfs = jQuery.noConflict(); + +$cfs(document).ready(function(){ + $cfs("#footer #logos_apoyos ul#logo_slider li").toggle(); + $cfs("#logos_apoyos #logo_slider").carouFredSel({ + items: { + width: "variable" + }, + scroll: { + items: 6, + duration: 600 + }, + auto: { + timeoutDuration: 3000, + pauseOnHover: true + }, + prev: { + button: "#prev_slide", + key: "left" + }, + next: { + button: "#next_slide", + key: "right" + } + }); +}); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/custom_jsquares.js b/src/wp-content/themes/lqdvi/js/custom_jsquares.js new file mode 100644 index 00000000..fc0fb492 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/custom_jsquares.js @@ -0,0 +1,5 @@ +var $jq = jQuery.noConflict(); + +$jq(document).ready(function(){ + $jq('#js-container').jsquares(); +}); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/jsquares/README.markdown b/src/wp-content/themes/lqdvi/js/jsquares/README.markdown new file mode 100644 index 00000000..57b8bb4e --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/README.markdown @@ -0,0 +1,23 @@ +# jSquares for jQuery + +A simple image gallery with popup information on hover (similar to ted.com) + +## Change Log + +### Changes in 1.4 (Sept 20, 2011) + +* Removed the jQuery hoverIntent plugin from jquery.jsquares.js and moved it into it's own file + +### Changes in 1.3 (May 24, 2011) + +* Made it compatible with jQuery 1.6.1 + +### Changes in 1.2 (December 1, 2009) + +* Cleaned up some code and added JSDOC commenting +* Removed js_ prefixes for options + +### Changes in 1.1 (October 21, 2009) + +* Shortened up some code +* Added minified version diff --git a/src/wp-content/themes/lqdvi/js/jsquares/css/jsquares.css b/src/wp-content/themes/lqdvi/js/jsquares/css/jsquares.css new file mode 100644 index 00000000..6d111fbf --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/css/jsquares.css @@ -0,0 +1,89 @@ +body { + font-family:Verdana; + color:#333; +} +a { + color:#666; +} +#js-container, +#js-container-2 { + width:729px; + margin:30px auto; + position:relative; + height:300px; +} +.js-image { + background:#000; + font-size:1em; + overflow:hidden; + position:absolute; + z-index:1; + text-align:left; +} +.js-image a img, +a .js-overlay-image { + border:none; +} +.js-image, +.js-image img, +.js-image.size-3, +.js-image.size-3 img, +.js-overlay-image { + width:222px; + height:154px; +} +.js-image.size-2, +.js-image.size-2 img { + width:110px; + height:76px; + font-size:.6em; +} +.js-image.size-1, +.js-image.size-1 img { + width:54px; + height:37px; + font-size:.3em; +} +.js-small-caption { + position:absolute; + bottom:0; + left:0; + background:#000; + width:94%; + padding:3%; + height:auto; +} +.js-small-caption { + opacity:.8; +} +.js-caption-overlay { + background:#0077D4; + z-index:998; + padding:12px; + position:absolute; + overflow:hidden; + color: #E5F1F8; + text-align: left; +} +.js-small-caption span { + color:#fff; +} +.js-overlay-image { + float:left; +} +.js-overlay-html { + float:left; + padding:0 0 0 15px; + width:180px; +} +.js-overlay-html h4 { + margin:0; + padding:0 0 10px 0; + color: #fff; +} +.js-overlay-html p { + font-size:.75em; + margin:0; + line-height: 1.2em; + text-align: left; +} \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/jsquares/images/sesame-street.jpg b/src/wp-content/themes/lqdvi/js/jsquares/images/sesame-street.jpg new file mode 100644 index 00000000..ad1b0744 Binary files /dev/null and b/src/wp-content/themes/lqdvi/js/jsquares/images/sesame-street.jpg differ diff --git a/src/wp-content/themes/lqdvi/js/jsquares/images/wolf-moon.jpg b/src/wp-content/themes/lqdvi/js/jsquares/images/wolf-moon.jpg new file mode 100644 index 00000000..f4bf0ebd Binary files /dev/null and b/src/wp-content/themes/lqdvi/js/jsquares/images/wolf-moon.jpg differ diff --git a/src/wp-content/themes/lqdvi/js/jsquares/index-non-php.html b/src/wp-content/themes/lqdvi/js/jsquares/index-non-php.html new file mode 100644 index 00000000..58bcd394 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/index-non-php.html @@ -0,0 +1,528 @@ + + + + + + +jSquares - An image collage like the ted.com homepage + + + + + + + + + + + + + + + + + + +

Example 1 (default)

+
$('#js-container').jsquares();
+ +
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ +
+ + Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+ +
+
+ + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + + +

Example 2

+ +
+$('#js-container-2').jsquares({
+	js_shuffle_in: false, // have the pictures all fade in on page load?
+	js_fade_on_hover: false, // do we want the images to fade on hover or just change opacity?
+	js_caption_slide_down: false // do we want the caption to slide down or just appear?
+});
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » + +

+
+
+ + +
+ +
+ Everyone loves this show +
+
+ +

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + +
+ + + + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/jsquares/index.php b/src/wp-content/themes/lqdvi/js/jsquares/index.php new file mode 100644 index 00000000..9c21dfdb --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/index.php @@ -0,0 +1,117 @@ + + + + + + +jSquares - An image collage like the ted.com homepage + + + + + + + + + + + + + + + + + 3, 'top' => 0, 'left' => 0), + array('size' => 2, 'top' => 0,'left' => 224), + array('size' => 2, 'top' => 78, 'left' => 224), + array('size' => 3, 'top' => 0, 'left' => 336), + array('size' => 2, 'top' => 0, 'left' => 560), + array('size' => 2, 'top' => 78, 'left' => 560), + array('size' => 2, 'top' => 156, 'left' => 0), + array('size' => 3, 'top' => 156, 'left' => 112), + array('size' => 2, 'top' => 156, 'left' => 336), + array('size' => 1, 'top' => 156, 'left' => 448), + array('size' => 1, 'top' => 195, 'left' => 448), + array('size' => 2, 'top' => 156, 'left' => 504), + array('size' => 1, 'top' => 156, 'left' => 616), + array('size' => 1, 'top' => 234, 'left' => 56), + array('size' => 1, 'top' => 234, 'left' => 336) + ); + ?> + +

Example 1 (default)

+
$('#js-container').jsquares();
+
+ + + +
+ +
+ Howlla at cha boy! +
+
+

You can't hide from wolf boy.

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + + +
+ + + +

Example 2

+
+$('#js-container-2').jsquares({
+	shuffle_in: false, // have the pictures all fade in on page load?
+	fade_on_hover: false, // do we want the images to fade on hover or just change opacity?
+	caption_slide_down: false // do we want the caption to slide down or just appear?
+});
+
+ + + +
+ +
+ Everyone loves this show +
+
+

Sesame Street!

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In elementum arcu non orci fermentum nec suscipit neque dignissim... Read more » +

+
+
+ + + +
+ + + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.hoverintent.min.js b/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.hoverintent.min.js new file mode 100644 index 00000000..7f07e647 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.hoverintent.min.js @@ -0,0 +1,9 @@ +/** +* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+ +* +* +* @param f onMouseOver function || An object with configuration options +* @param g onMouseOut function || Nothing (use configuration options object) +* @author Brian Cherne +*/ +(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))' : '', + wrap_a_end = (a != '') ? '' : ''; + + contents = wrap_a_start + '' + wrap_a_end; + contents += '
' + conts + '
'; + + } + + var caption_options = $.extend({ + top: overlay_sett.y, + left: overlay_sett.x, + width: overlay_sett.width, + height: overlay_sett.height + }, caption_options); + + // draw the caption + $('
' + contents + '
') + .css(caption_options) + .addClass(options._overlay_selector_class) + .appendTo('body') + .bind('mouseleave', + function(){ + _fadeInOutImage('out', options.fade_start) + $('#js-overlay-id-' + index).remove(); + } + ); + + if(options.caption_slide_down){ + $('#js-overlay-id-' + index).slideDown(options.caption_slidedown_speed) + } + + } + + /** + * Determines where the caption should be positioned + * @private + * @param {Object} image The jQuery element that we need to get dimensions/location for + */ + function _getCaptionSettings(image){ + + var loc = _elementLocation($(image)); + var loc_x = loc.x - options.caption_overlay_spacing; + var loc_y = loc.y - options.caption_overlay_spacing; + + var img_height = options.caption_height + (options.caption_overlay_spacing * 2); + var img_width = options.caption_width + (options.caption_overlay_spacing * 2); + + var check_window_width = loc_x + img_width + (options.caption_overlay_spacing * 2); + + // Do we need to open the overlay in the opposite direction? + if(check_window_width >= window_width){ + var hard_img_width = $(image).outerWidth(); + loc_x = loc_x - (options.caption_width + (options.caption_overlay_spacing * 2)) + hard_img_width; + } + + return { x: loc_x, y: loc_y, width: img_width, height: img_height }; + + } + + /** + * If they chose to have the effect slide down, run it here + * @private + * @param {Array} images An array of all images in the stack + */ + function _setImageTimeoutSlideDown(images){ + + var images = _shuffle(images); + + dropin_int = setInterval(function(){ + + if(image_counter == images.length){ + clearInterval(dropin_int); + return false; + } + + var $img = $(options.image + ':eq(' + images[image_counter] + ')', main) + var img_height = $img.height(); + $img.fadeIn(options.fade_speed); + image_counter++ + + }, options.shuffle_in_speed); + + + } + + /** + * Calculate the position of the element on the page + * @private + * @param {Object} obj The jQuery element that we want the position of + */ + function _elementLocation(obj){ + + var curleft = 0; + var curtop = 0; + + do { + var offset = obj.position(); + curleft += offset.left; + curtop += offset.top; + obj = obj.offsetParent(); + } while (obj[0].tagName.toLowerCase() !== 'body'); + + return { x:curleft, y:curtop }; + + } + + /** + * Give an array a random order + * @private + * @param {Array} v An array of images that we mix and return a random order for when they shuffle in + */ + function _shuffle(v){ + + for(var j, x, i = v.length; i; j = parseInt(Math.random() * i), x = v[--i], v[i] = v[j], v[j] = x); + return v; + + }; + + + // Run the process of revealing/hiding captions + return this.each(function() { + + // Hide all the images off the start and push them into an array + var images = []; + $image.each(function(i){ $(this).hide(); images.push(i); }); + + // Run the effect of sliding down? + (options.shuffle_in) ? _setImageTimeoutSlideDown(images) : $image.show(); + + // Add hover action for each image + $image.each(function(i){ + + $(this).hoverIntent( + function(evt){ _revealBinds(this, i, evt); }, + function(evt){ } + ); + }); + + }); + + + }; + +})(jQuery); \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.jsquares.min.js b/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.jsquares.min.js new file mode 100644 index 00000000..d421686e --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/jsquares/js/jquery.jsquares.min.js @@ -0,0 +1 @@ +(function(a){if(typeof a.fn.hoverIntent!=="function"){throw"You need to include jquery.hoverintent.min.js to use jSquares."}a.fn.jsquares=a.fn.jSquares=function(b){function p(a){for(var b,c,d=a.length;d;b=parseInt(Math.random()*d),c=a[--d],a[d]=a[b],a[b]=c);return a}function o(a){var b=0;var c=0;do{var d=a.position();b+=d.left;c+=d.top;a=a.offsetParent()}while(a[0].tagName.toLowerCase()!=="body");return{x:b,y:c}}function n(f){var f=p(f);e=setInterval(function(){if(d==f.length){clearInterval(e);return false}var g=a(b.image+":eq("+f[d]+")",c);var h=g.height();g.fadeIn(b.fade_speed);d++},b.shuffle_in_speed)}function m(c){var d=o(a(c));var e=d.x-b.caption_overlay_spacing;var f=d.y-b.caption_overlay_spacing;var g=b.caption_height+b.caption_overlay_spacing*2;var h=b.caption_width+b.caption_overlay_spacing*2;var j=e+h+b.caption_overlay_spacing*2;if(j>=i){var k=a(c).outerWidth();e=e-(b.caption_width+b.caption_overlay_spacing*2)+k}return{x:e,y:f,width:h,height:g}}function l(d){a("."+b._overlay_selector_class).remove();var e=a(b.image+":eq("+d+")",c),f=m(e),g=e.find(".js-overlay-caption-content").html()||"",h=b.caption_slide_down?{display:"none"}:{};if(g){var i=g,j=e.find("img"),l=j.parent().attr("href")||"",n=l!=""?'':"",o=l!=""?"":"";g=n+''+o;g+='
'+i+'
'}var h=a.extend({top:f.y,left:f.x,width:f.width,height:f.height},h);a('
'+g+"
").css(h).addClass(b._overlay_selector_class).appendTo("body").bind("mouseleave",function(){k("out",b.fade_start);a("#js-overlay-id-"+d).remove()});if(b.caption_slide_down){a("#js-overlay-id-"+d).slideDown(b.caption_slidedown_speed)}}function k(c,d,e){var f=c=="in"?g.not(":eq("+e+")").find(b._fade_selectors_on_hover):h;b.fade_on_hover?a(f).stop(true,false).fadeTo(b.fade_speed,d):a(f).css("opacity",d)}function j(a,c,d){l(c);k("in",b.fade_to,c)}var c=this,d=0,e=0,f={image:".js-image",caption:".js-small-caption",caption_overlay_spacing:12,caption_width:400,caption_height:130,fade_to:.3,fade_start:1,fade_speed:"fast",shuffle_in:true,shuffle_in_speed:130,fade_on_hover:true,caption_slide_down:true,caption_slidedown_speed:"fast",_fade_selectors_on_hover:"img, .js-small-caption span",_overlay_selector_class:"js-caption-overlay"},b=a.extend(f,b),g=a(b.image,c),h=g.find(b._fade_selectors_on_hover),i=a(window).width();a(window).resize(function(){i=a(window).width()});return this.each(function(){var c=[];g.each(function(b){a(this).hide();c.push(b)});b.shuffle_in?n(c):g.show();g.each(function(b){a(this).hoverIntent(function(a){j(this,b,a)},function(a){})})})}})(jQuery) \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/js/video.min.js b/src/wp-content/themes/lqdvi/js/video.min.js new file mode 100644 index 00000000..7f69b985 --- /dev/null +++ b/src/wp-content/themes/lqdvi/js/video.min.js @@ -0,0 +1,73 @@ +(function(window,undefined){var document=window.document;(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.JRClass=function(){};JRClass.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this;initializing=false;for(var name in prop)prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret= +fn.apply(this,arguments);this._super=tmp;return ret}}(name,prop[name]):prop[name];function JRClass(){if(!initializing&&this.init)this.init.apply(this,arguments)}JRClass.prototype=prototype;JRClass.constructor=JRClass;JRClass.extend=arguments.callee;return JRClass}})();var VideoJS=JRClass.extend({init:function(element,setOptions){if(typeof element=="string")this.video=document.getElementById(element);else this.video=element;this.video.player=this;this.options={autoplay:false,preload:true,useBuiltInControls:false, +controlsBelow:false,controlsAtStart:false,controlsHiding:true,defaultVolume:0.85,playerFallbackOrder:["html5","flash","links"],flashPlayer:"htmlObject",flashPlayerVersion:false};if(typeof VideoJS.options=="object")_V_.merge(this.options,VideoJS.options);if(typeof setOptions=="object")_V_.merge(this.options,setOptions);if(this.getPreloadAttribute()!==undefined)this.options.preload=this.getPreloadAttribute();if(this.getAutoplayAttribute()!==undefined)this.options.autoplay=this.getAutoplayAttribute(); +this.box=this.video.parentNode;this.linksFallback=this.getLinksFallback();this.hideLinksFallback();this.each(this.options.playerFallbackOrder,function(playerType){if(this[playerType+"Supported"]()){this[playerType+"Init"]();return true}});this.activateElement(this,"player");this.activateElement(this.box,"box")},behaviors:{},elements:{},newBehavior:function(name,activate,functions){this.behaviors[name]=activate;this.extend(functions)},activateElement:function(element,behavior){this.behaviors[behavior].call(this, +element)},errors:[],warnings:[],warning:function(warning){this.warnings.push(warning);this.log(warning)},history:[],log:function(event){if(!event)return;if(typeof event=="string")event={type:event};if(event.type)this.history.push(event.type);if(this.history.length>=50)this.history.shift();try{console.log(event.type)}catch(e){try{opera.postError(event.type)}catch(e){}}},setLocalStorage:function(key,value){try{localStorage[key]=value}catch(e){if(e.code==22||e.code==1014)this.warning(VideoJS.warnings.localStorageFull)}}, +getPreloadAttribute:function(){if(typeof this.video.hasAttribute=="function"&&this.video.hasAttribute("preload")){var preload=this.video.getAttribute("preload");if(preload===""||preload==="true")return"auto";if(preload==="false")return"none";return preload}},getAutoplayAttribute:function(){if(typeof this.video.hasAttribute=="function"&&this.video.hasAttribute("autoplay")){var autoplay=this.video.getAttribute("autoplay");if(autoplay==="false")return false;return true}},bufferedPercent:function(){return this.duration()? +this.buffered()[1]/this.duration():0},each:function(arr,fn){if(!arr||arr.length===0)return;for(var i=0,j=arr.length;i=playerVersion}});VideoJS.flashPlayers={};VideoJS.flashPlayers.htmlObject={flashPlayerVersion:9,init:function(){return true},api:{width:function(width){if(width!==undefined){this.element.width=width;this.box.style.width=width+"px";this.triggerResizeListeners();return this}return this.element.width}, +height:function(height){if(height!==undefined){this.element.height=height;this.box.style.height=height+"px";this.triggerResizeListeners();return this}return this.element.height}}};VideoJS.player.extend({linksSupported:function(){return true},linksInit:function(){this.showLinksFallback();this.element=this.video},getLinksFallback:function(){return this.box.getElementsByTagName("P")[0]},hideLinksFallback:function(){if(this.linksFallback)this.linksFallback.style.display="none"},showLinksFallback:function(){if(this.linksFallback)this.linksFallback.style.display= +"block"}});VideoJS.merge=function(obj1,obj2,safe){for(var attrname in obj2)if(obj2.hasOwnProperty(attrname)&&(!safe||!obj1.hasOwnProperty(attrname)))obj1[attrname]=obj2[attrname];return obj1};VideoJS.extend=function(obj){this.merge(this,obj,true)};VideoJS.extend({setupAllWhenReady:function(options){VideoJS.options=options;VideoJS.DOMReady(VideoJS.setup)},DOMReady:function(fn){VideoJS.addToDOMReady(fn)},setup:function(videos,options){var returnSingular=false,playerList=[],videoElement;if(!videos|| +videos=="All")videos=VideoJS.getVideoJSTags();else if(typeof videos!="object"||videos.nodeType==1){videos=[videos];returnSingular=true}for(var i=0;i0){var newBufferEnd=event.loaded/event.total*this.duration();if(newBufferEnd>this.values.bufferEnd)this.values.bufferEnd=newBufferEnd}},iOSInterface:function(){if(VideoJS.iOSVersion()< +4)this.forceTheSource();if(VideoJS.isIPad())this.buildAndActivateSpinner()},androidInterface:function(){this.forceTheSource();_V_.addListener(this.video,"click",function(){this.play()});this.buildBigPlayButton();_V_.addListener(this.bigPlayButton,"click",function(){this.play()}.context(this));this.positionBox();this.showBigPlayButtons()},loadInterface:function(){if(!this.stylesHaveLoaded()){if(!this.positionRetries)this.positionRetries=1;if(this.positionRetries++<100){setTimeout(this.loadInterface.context(this), +10);return}}this.hideStylesCheckDiv();this.showPoster();if(this.video.paused!==false)this.showBigPlayButtons();if(this.options.controlsAtStart)this.showControlBars();this.positionAll()},buildAndActivateControlBar:function(){this.controls=_V_.createElement("div",{className:"vjs-controls"});this.box.appendChild(this.controls);this.activateElement(this.controls,"controlBar");this.activateElement(this.controls,"mouseOverVideoReporter");this.playControl=_V_.createElement("div",{className:"vjs-play-control", +innerHTML:""});this.controls.appendChild(this.playControl);this.activateElement(this.playControl,"playToggle");this.progressControl=_V_.createElement("div",{className:"vjs-progress-control"});this.controls.appendChild(this.progressControl);this.progressHolder=_V_.createElement("div",{className:"vjs-progress-holder"});this.progressControl.appendChild(this.progressHolder);this.activateElement(this.progressHolder,"currentTimeScrubber");this.loadProgressBar=_V_.createElement("div",{className:"vjs-load-progress"}); +this.progressHolder.appendChild(this.loadProgressBar);this.activateElement(this.loadProgressBar,"loadProgressBar");this.playProgressBar=_V_.createElement("div",{className:"vjs-play-progress"});this.progressHolder.appendChild(this.playProgressBar);this.activateElement(this.playProgressBar,"playProgressBar");this.timeControl=_V_.createElement("div",{className:"vjs-time-control"});this.controls.appendChild(this.timeControl);this.currentTimeDisplay=_V_.createElement("span",{className:"vjs-current-time-display", +innerHTML:"00:00"});this.timeControl.appendChild(this.currentTimeDisplay);this.activateElement(this.currentTimeDisplay,"currentTimeDisplay");this.timeSeparator=_V_.createElement("span",{innerHTML:" / "});this.timeControl.appendChild(this.timeSeparator);this.durationDisplay=_V_.createElement("span",{className:"vjs-duration-display",innerHTML:"00:00"});this.timeControl.appendChild(this.durationDisplay);this.activateElement(this.durationDisplay,"durationDisplay");this.volumeControl=_V_.createElement("div", +{className:"vjs-volume-control",innerHTML:"
"});this.controls.appendChild(this.volumeControl);this.activateElement(this.volumeControl,"volumeScrubber");this.volumeDisplay=this.volumeControl.children[0];this.activateElement(this.volumeDisplay,"volumeDisplay");this.fullscreenControl=_V_.createElement("div",{className:"vjs-fullscreen-control",innerHTML:"
"}); +this.controls.appendChild(this.fullscreenControl);this.activateElement(this.fullscreenControl,"fullscreenToggle")},buildAndActivatePoster:function(){this.updatePosterSource();if(this.video.poster){this.poster=document.createElement("img");this.box.appendChild(this.poster);this.poster.src=this.video.poster;this.poster.className="vjs-poster";this.activateElement(this.poster,"poster")}else this.poster=false},buildBigPlayButton:function(){this.bigPlayButton=_V_.createElement("div",{className:"vjs-big-play-button", +innerHTML:""});this.box.appendChild(this.bigPlayButton);this.activateElement(this.bigPlayButton,"bigPlayButton")},buildAndActivateSpinner:function(){this.spinner=_V_.createElement("div",{className:"vjs-spinner",innerHTML:"
"});this.box.appendChild(this.spinner);this.activateElement(this.spinner,"spinner")},buildStylesCheckDiv:function(){this.stylesCheckDiv=_V_.createElement("div",{className:"vjs-styles-check"}); +this.stylesCheckDiv.style.position="absolute";this.box.appendChild(this.stylesCheckDiv)},hideStylesCheckDiv:function(){this.stylesCheckDiv.style.display="none"},stylesHaveLoaded:function(){if(this.stylesCheckDiv.offsetHeight!=5)return false;else return true},positionAll:function(){this.positionBox();this.positionControlBars();this.positionPoster()},positionBox:function(){if(this.videoIsFullScreen){this.box.style.width="";this.element.style.height="";if(this.options.controlsBelow){this.box.style.height= +"";this.element.style.height=this.box.offsetHeight-this.controls.offsetHeight+"px"}}else{this.box.style.width=this.width()+"px";this.element.style.height=this.height()+"px";if(this.options.controlsBelow)this.element.style.height=""}},getSubtitles:function(){var tracks=this.video.getElementsByTagName("TRACK");for(var i=0,j=tracks.length;i +0&&lines[i]!="\r")text.push(lines[i++]);subtitle.text=text.join("
");this.subtitles.push(subtitle);i++}},parseSubtitleTime:function(timeText){var parts=timeText.split(":");var time=0;time+=parseFloat(parts[0])*60*60;time+=parseFloat(parts[1])*60;var seconds=parts[2].split(",");time+=parseFloat(seconds[0]);time=time+parseFloat(seconds[1])/1E3;return time},buildSubtitles:function(){this.subtitlesDisplay=_V_.createElement("div",{className:"vjs-subtitles"});this.box.appendChild(this.subtitlesDisplay); +this.activateElement(this.subtitlesDisplay,"subtitlesDisplay")},values:{},addVideoListener:function(type,fn){_V_.addListener(this.video,type,fn.rEvtContext(this))},play:function(){this.video.play();return this},onPlay:function(fn){this.addVideoListener("play",fn);return this},pause:function(){this.video.pause();return this},onPause:function(fn){this.addVideoListener("pause",fn);return this},paused:function(){return this.video.paused},currentTime:function(seconds){if(seconds!==undefined){try{this.video.currentTime= +seconds}catch(e){this.warning(VideoJS.warnings.videoNotReady)}this.values.currentTime=seconds;return this}return this.video.currentTime},lastSetCurrentTime:function(){return this.values.currentTime},duration:function(){return this.video.duration},buffered:function(){if(this.values.bufferStart===undefined){this.values.bufferStart=0;this.values.bufferEnd=0}if(this.video.buffered&&this.video.buffered.length>0){var newEnd=this.video.buffered.end(0);if(newEnd>this.values.bufferEnd)this.values.bufferEnd= +newEnd}return[this.values.bufferStart,this.values.bufferEnd]},volume:function(percentAsDecimal){if(percentAsDecimal!==undefined){this.values.volume=parseFloat(percentAsDecimal);this.video.volume=this.values.volume;this.setLocalStorage("volume",this.values.volume);return this}if(this.values.volume)return this.values.volume;return this.video.volume},onVolumeChange:function(fn){_V_.addListener(this.video,"volumechange",fn.rEvtContext(this))},width:function(width){if(width!==undefined){this.video.width= +width;this.box.style.width=width+"px";this.triggerResizeListeners();return this}return this.video.offsetWidth},height:function(height){if(height!==undefined){this.video.height=height;this.box.style.height=height+"px";this.triggerResizeListeners();return this}return this.video.offsetHeight},supportsFullScreen:function(){if(typeof this.video.webkitEnterFullScreen=="function")if(!navigator.userAgent.match("Chrome"))return true;return false},enterFullScreen:function(){try{this.video.webkitEnterFullScreen()}catch(e){if(e.code== +11)this.warning(VideoJS.warnings.videoNotReady)}return this},onError:function(fn){this.addVideoListener("error",fn);return this},onEnded:function(fn){this.addVideoListener("ended",fn);return this}});VideoJS.player.newBehavior("player",function(player){this.onError(this.playerOnVideoError);this.onPlay(this.playerOnVideoPlay);this.onPlay(this.trackCurrentTime);this.onPause(this.playerOnVideoPause);this.onPause(this.stopTrackingCurrentTime);this.onEnded(this.playerOnVideoEnded);this.trackBuffered(); +this.onBufferedUpdate(this.isBufferFull)},{playerOnVideoError:function(event){this.log(event);this.log(this.video.error)},playerOnVideoPlay:function(event){this.hasPlayed=true},playerOnVideoPause:function(event){},playerOnVideoEnded:function(event){this.currentTime(0);this.pause()},trackBuffered:function(){this.bufferedInterval=setInterval(this.triggerBufferedListeners.context(this),500)},stopTrackingBuffered:function(){clearInterval(this.bufferedInterval)},bufferedListeners:[],onBufferedUpdate:function(fn){this.bufferedListeners.push(fn)}, +triggerBufferedListeners:function(){this.each(this.bufferedListeners,function(listener){listener.context(this)()})},isBufferFull:function(){if(this.bufferedPercent()==1)this.stopTrackingBuffered()},trackCurrentTime:function(){if(this.currentTimeInterval)clearInterval(this.currentTimeInterval);this.currentTimeInterval=setInterval(this.triggerCurrentTimeListeners.context(this),42);this.trackingCurrentTime=true},stopTrackingCurrentTime:function(){clearInterval(this.currentTimeInterval);this.trackingCurrentTime= +false},currentTimeListeners:[],onCurrentTimeUpdate:function(fn){this.currentTimeListeners.push(fn)},triggerCurrentTimeListeners:function(late,newTime){this.each(this.currentTimeListeners,function(listener){listener.context(this)(newTime)})},resizeListeners:[],onResize:function(fn){this.resizeListeners.push(fn)},triggerResizeListeners:function(){this.each(this.resizeListeners,function(listener){listener.context(this)()})}});VideoJS.player.newBehavior("mouseOverVideoReporter",function(element){_V_.addListener(element, +"mousemove",this.mouseOverVideoReporterOnMouseMove.context(this));_V_.addListener(element,"mouseout",this.mouseOverVideoReporterOnMouseOut.context(this))},{mouseOverVideoReporterOnMouseMove:function(){this.showControlBars();clearInterval(this.mouseMoveTimeout);this.mouseMoveTimeout=setTimeout(this.hideControlBars.context(this),4E3)},mouseOverVideoReporterOnMouseOut:function(event){var parent=event.relatedTarget;while(parent&&parent!==this.box)parent=parent.parentNode;if(parent!==this.box)this.hideControlBars()}}); +VideoJS.player.newBehavior("box",function(element){this.positionBox();_V_.addClass(element,"vjs-paused");this.activateElement(element,"mouseOverVideoReporter");this.onPlay(this.boxOnVideoPlay);this.onPause(this.boxOnVideoPause)},{boxOnVideoPlay:function(){_V_.removeClass(this.box,"vjs-paused");_V_.addClass(this.box,"vjs-playing")},boxOnVideoPause:function(){_V_.removeClass(this.box,"vjs-playing");_V_.addClass(this.box,"vjs-paused")}});VideoJS.player.newBehavior("poster",function(element){this.activateElement(element, +"mouseOverVideoReporter");this.activateElement(element,"playButton");this.onPlay(this.hidePoster);this.onEnded(this.showPoster);this.onResize(this.positionPoster)},{showPoster:function(){if(!this.poster)return;this.poster.style.display="block";this.positionPoster()},positionPoster:function(){if(!this.poster||this.poster.style.display=="none")return;this.poster.style.height=this.height()+"px";this.poster.style.width=this.width()+"px"},hidePoster:function(){if(!this.poster)return;this.poster.style.display= +"none"},updatePosterSource:function(){if(!this.video.poster){var images=this.video.getElementsByTagName("img");if(images.length>0)this.video.poster=images[0].src}}});VideoJS.player.newBehavior("controlBar",function(element){if(!this.controlBars){this.controlBars=[];this.onResize(this.positionControlBars)}this.controlBars.push(element);_V_.addListener(element,"mousemove",this.onControlBarsMouseMove.context(this));_V_.addListener(element,"mouseout",this.onControlBarsMouseOut.context(this))},{showControlBars:function(){if(!this.options.controlsAtStart&& +!this.hasPlayed)return;this.each(this.controlBars,function(bar){bar.style.display="block"})},positionControlBars:function(){this.updatePlayProgressBars();this.updateLoadProgressBars()},hideControlBars:function(){if(this.options.controlsHiding&&!this.mouseIsOverControls)this.each(this.controlBars,function(bar){bar.style.display="none"})},onControlBarsMouseMove:function(){this.mouseIsOverControls=true},onControlBarsMouseOut:function(event){this.mouseIsOverControls=false}});VideoJS.player.newBehavior("playToggle", +function(element){_V_.addListener(element,"click",this.onPlayToggleClick.context(this))},{onPlayToggleClick:function(event){if(this.paused())this.play();else this.pause()}});VideoJS.player.newBehavior("playButton",function(element){_V_.addListener(element,"click",this.onPlayButtonClick.context(this))},{onPlayButtonClick:function(event){this.play()}});VideoJS.player.newBehavior("pauseButton",function(element){_V_.addListener(element,"click",this.onPauseButtonClick.context(this))},{onPauseButtonClick:function(event){this.pause()}}); +VideoJS.player.newBehavior("playProgressBar",function(element){if(!this.playProgressBars){this.playProgressBars=[];this.onCurrentTimeUpdate(this.updatePlayProgressBars)}this.playProgressBars.push(element)},{updatePlayProgressBars:function(newTime){var progress=newTime!==undefined?newTime/this.duration():this.currentTime()/this.duration();if(isNaN(progress))progress=0;this.each(this.playProgressBars,function(bar){if(bar.style)bar.style.width=_V_.round(progress*100,2)+"%"})}});VideoJS.player.newBehavior("loadProgressBar", +function(element){if(!this.loadProgressBars)this.loadProgressBars=[];this.loadProgressBars.push(element);this.onBufferedUpdate(this.updateLoadProgressBars)},{updateLoadProgressBars:function(){this.each(this.loadProgressBars,function(bar){if(bar.style)bar.style.width=_V_.round(this.bufferedPercent()*100,2)+"%"})}});VideoJS.player.newBehavior("currentTimeDisplay",function(element){if(!this.currentTimeDisplays){this.currentTimeDisplays=[];this.onCurrentTimeUpdate(this.updateCurrentTimeDisplays)}this.currentTimeDisplays.push(element)}, +{updateCurrentTimeDisplays:function(newTime){if(!this.currentTimeDisplays)return;var time=newTime?newTime:this.currentTime();this.each(this.currentTimeDisplays,function(dis){dis.innerHTML=_V_.formatTime(time)})}});VideoJS.player.newBehavior("durationDisplay",function(element){if(!this.durationDisplays){this.durationDisplays=[];this.onCurrentTimeUpdate(this.updateDurationDisplays)}this.durationDisplays.push(element)},{updateDurationDisplays:function(){if(!this.durationDisplays)return;this.each(this.durationDisplays, +function(dis){if(this.duration())dis.innerHTML=_V_.formatTime(this.duration())})}});VideoJS.player.newBehavior("currentTimeScrubber",function(element){_V_.addListener(element,"mousedown",this.onCurrentTimeScrubberMouseDown.rEvtContext(this))},{onCurrentTimeScrubberMouseDown:function(event,scrubber){event.preventDefault();this.currentScrubber=scrubber;this.stopTrackingCurrentTime();this.videoWasPlaying=!this.paused();this.pause();_V_.blockTextSelection();this.setCurrentTimeWithScrubber(event);_V_.addListener(document, +"mousemove",this.onCurrentTimeScrubberMouseMove.rEvtContext(this));_V_.addListener(document,"mouseup",this.onCurrentTimeScrubberMouseUp.rEvtContext(this))},onCurrentTimeScrubberMouseMove:function(event){this.setCurrentTimeWithScrubber(event)},onCurrentTimeScrubberMouseUp:function(event){_V_.unblockTextSelection();document.removeEventListener("mousemove",this.onCurrentTimeScrubberMouseMove,false);document.removeEventListener("mouseup",this.onCurrentTimeScrubberMouseUp,false);this.trackCurrentTime(); +if(this.videoWasPlaying)this.play()},setCurrentTimeWithScrubber:function(event){var newProgress=_V_.getRelativePosition(event.pageX,this.currentScrubber);var newTime=newProgress*this.duration();this.triggerCurrentTimeListeners(0,newTime);if(newTime==this.duration())newTime=newTime-0.1;this.currentTime(newTime)}});VideoJS.player.newBehavior("volumeDisplay",function(element){if(!this.volumeDisplays){this.volumeDisplays=[];this.onVolumeChange(this.updateVolumeDisplays)}this.volumeDisplays.push(element); +this.updateVolumeDisplay(element)},{updateVolumeDisplays:function(){if(!this.volumeDisplays)return;this.each(this.volumeDisplays,function(dis){this.updateVolumeDisplay(dis)})},updateVolumeDisplay:function(display){var volNum=Math.ceil(this.volume()*6);this.each(display.children,function(child,num){if(numthis.subtitles[x].endTime){if(this.subtitles[x].showing){this.subtitles[x].showing=false;this.updateSubtitlesDisplays("")}this.currentSubtitlePosition++;x=this.currentSubtitlePosition}if(this.currentSubtitlePosition>=this.subtitles.length)return;if(this.video.currentTime>=this.subtitles[x].startTime&&this.video.currentTime<=this.subtitles[x].endTime){this.updateSubtitlesDisplays(this.subtitles[x].text);this.subtitles[x].showing=true}}},updateSubtitlesDisplays:function(val){this.each(this.subtitlesDisplays, +function(disp){disp.innerHTML=val})}});VideoJS.extend({addClass:function(element,classToAdd){if((" "+element.className+" ").indexOf(" "+classToAdd+" ")==-1)element.className=element.className===""?classToAdd:element.className+" "+classToAdd},removeClass:function(element,classToRemove){if(element.className.indexOf(classToRemove)==-1)return;var classNames=element.className.split(/\s+/);classNames.splice(classNames.lastIndexOf(classToRemove),1);element.className=classNames.join(" ")},createElement:function(tagName, +attributes){return this.merge(document.createElement(tagName),attributes)},blockTextSelection:function(){document.body.focus();document.onselectstart=function(){return false}},unblockTextSelection:function(){document.onselectstart=function(){return true}},formatTime:function(secs){var seconds=Math.round(secs);var minutes=Math.floor(seconds/60);minutes=minutes>=10?minutes:"0"+minutes;seconds=Math.floor(seconds%60);seconds=seconds>=10?seconds:"0"+seconds;return minutes+":"+seconds},getRelativePosition:function(x, +relativeElement){return Math.max(0,Math.min(1,(x-this.findPosX(relativeElement))/relativeElement.offsetWidth))},findPosX:function(obj){var curleft=obj.offsetLeft;while(obj=obj.offsetParent)curleft+=obj.offsetLeft;return curleft},getComputedStyleValue:function(element,style){return window.getComputedStyle(element,null).getPropertyValue(style)},round:function(num,dec){if(!dec)dec=0;return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec)},addListener:function(element,type,handler){if(element.addEventListener)element.addEventListener(type, +handler,false);else if(element.attachEvent)element.attachEvent("on"+type,handler)},removeListener:function(element,type,handler){if(element.removeEventListener)element.removeEventListener(type,handler,false);else if(element.attachEvent)element.detachEvent("on"+type,handler)},get:function(url,onSuccess){if(typeof XMLHttpRequest=="undefined")XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(f){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(g){}throw new Error("This browser does not support XMLHttpRequest."); +};var request=new XMLHttpRequest;request.open("GET",url);request.onreadystatechange=function(){if(request.readyState==4&&request.status==200)onSuccess(request.responseText)}.context(this);request.send()},bindDOMReady:function(){if(document.readyState==="complete")return VideoJS.onDOMReady();if(document.addEventListener){document.addEventListener("DOMContentLoaded",VideoJS.DOMContentLoaded,false);window.addEventListener("load",VideoJS.onDOMReady,false)}else if(document.attachEvent){document.attachEvent("onreadystatechange", +VideoJS.DOMContentLoaded);window.attachEvent("onload",VideoJS.onDOMReady)}},DOMContentLoaded:function(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",VideoJS.DOMContentLoaded,false);VideoJS.onDOMReady()}else if(document.attachEvent)if(document.readyState==="complete"){document.detachEvent("onreadystatechange",VideoJS.DOMContentLoaded);VideoJS.onDOMReady()}},DOMReadyList:[],addToDOMReady:function(fn){if(VideoJS.DOMIsReady)fn.call(document);else VideoJS.DOMReadyList.push(fn)}, +DOMIsReady:false,onDOMReady:function(){if(VideoJS.DOMIsReady)return;if(!document.body)return setTimeout(VideoJS.onDOMReady,13);VideoJS.DOMIsReady=true;if(VideoJS.DOMReadyList){for(var i=0;i "Show Related posts module", array( "type" => "close"), //End second tab "Blog" + +//Begin second tab "Streaming" +array( "name" => "Streaming", + "type" => "section"), +array( "type" => "open"), + +array( "name" => "Ver streaming en homepage", + "desc" => "Select if you want to show or hide streaming", + "id" => $shortname."_streaming_show", + "type" => "iphone_checkboxes", + "std" => 0 +), + +array( "name" => "Congreso del streaming", + "desc" => "", + "id" => $shortname."_streaming_congreso", + "type" => "text", + "std" => "", +), + +array( "name" => "Streaming URL", + "desc" => "", + "id" => $shortname."_streaming_url", + "type" => "text", + "std" => "", +), + + +array( "type" => "close"), + + array( "type" => "close") ); diff --git a/src/wp-content/themes/lqdvi/lib/custom.lib.php.bak b/src/wp-content/themes/lqdvi/lib/custom.lib.php.bak new file mode 100644 index 00000000..6072ace4 --- /dev/null +++ b/src/wp-content/themes/lqdvi/lib/custom.lib.php.bak @@ -0,0 +1,538 @@ +'; + print_r($arr); + echo ''; +} + +function gen_pagination($total,$currentPage,$baseLink,$nextPrev=true,$limit=10) +{ + if(!$total OR !$currentPage OR !$baseLink) + { + return false; + } + + //Total Number of pages + $totalPages = ceil($total/$limit); + + //Text to use after number of pages + //$txtPagesAfter = ($totalPages==1)? " page": " pages"; + + //Start off the list. + //$txtPageList = '
'.$totalPages.$txtPagesAfter.' :
'; + + //Show only 3 pages before current page(so that we don't have too many pages) + $min = ($page - 3 < $totalPages && $currentPage-3 > 0) ? $currentPage-3 : 1; + + //Show only 3 pages after current page(so that we don't have too many pages) + $max = ($page + 3 > $totalPages) ? $totalPages : $currentPage+3; + + //Variable for the actual page links + $pageLinks = ""; + + $baseLinkArr = parse_url($baseLink); + $start = ''; + + if(isset($baseLinkArr['query']) && !empty($baseLinkArr['query'])) + { + $start = '&'; + } + else + { + $start = '?'; + } + + //Loop to generate the page links + for($i=$min;$i<=$max;$i++) + { + if($currentPage==$i) + { + //Current Page + $pageLinks .= ''.$i.''; + } + elseif($max <= $totalPages OR $i <= $totalPages) + { + $pageLinks .= ''.$i.''; + } + } + + if($nextPrev) + { + //Next and previous links + $next = ($currentPage + 1 > $totalPages) ? false : 'Next'; + + $prev = ($currentPage - 1 <= 0 ) ? false : 'Previous'; + } + + if($totalPages > 1) + { + return '
'; + } + else + { + return ''; + } + +} + +function count_shortcode($content = '') +{ + $return = array(); + + if(!empty($content)) + { + $pattern = get_shortcode_regex(); + $count = preg_match_all('/'.$pattern.'/s', $content, $matches); + + $return['total'] = $count; + + if(isset($matches[0])) + { + foreach($matches[0] as $match) + { + $return['content'][] = substr_replace($match ,"",-1); + } + } + } + + return $return; +} + +function pp_breadcrumbs() { + + $delimiter = '»'; + $name = get_bloginfo('name'); //text for the 'Home' link + $currentBefore = ''; + $currentAfter = ''; + + if ( !is_home() && !is_front_page() || is_paged() ) { + + echo '
'; + + global $post; + $home = get_bloginfo('url'); + echo '' . $name . ' ' . $delimiter . ' '; + + if ( is_category() ) { + global $wp_query; + $cat_obj = $wp_query->get_queried_object(); + $thisCat = $cat_obj->term_id; + $thisCat = get_category($thisCat); + $parentCat = get_category($thisCat->parent); + if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' ')); + echo $currentBefore . 'Archive by category ''; + single_cat_title(); + echo ''' . $currentAfter; + + } elseif ( is_day() ) { + echo '' . get_the_time('Y') . ' ' . $delimiter . ' '; + echo '' . get_the_time('F') . ' ' . $delimiter . ' '; + echo $currentBefore . get_the_time('d') . $currentAfter; + + } elseif ( is_month() ) { + echo '' . get_the_time('Y') . ' ' . $delimiter . ' '; + echo $currentBefore . get_the_time('F') . $currentAfter; + + } elseif ( is_year() ) { + echo $currentBefore . get_the_time('Y') . $currentAfter; + + } elseif ( is_single() && !is_attachment() ) { + $cat = get_the_category(); $cat = $cat[0]; + echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); + echo $currentBefore; + the_title(); + echo $currentAfter; + + } elseif ( is_attachment() ) { + $parent = get_post($post->post_parent); + $cat = get_the_category($parent->ID); $cat = $cat[0]; + echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); + echo '' . $parent->post_title . ' ' . $delimiter . ' '; + echo $currentBefore; + the_title(); + echo $currentAfter; + + } elseif ( is_page() && !$post->post_parent ) { + echo $currentBefore; + the_title(); + echo $currentAfter; + + } elseif ( is_page() && $post->post_parent ) { + $parent_id = $post->post_parent; + $breadcrumbs = array(); + while ($parent_id) { + $page = get_page($parent_id); + $breadcrumbs[] = '' . get_the_title($page->ID) . ''; + $parent_id = $page->post_parent; + } + $breadcrumbs = array_reverse($breadcrumbs); + foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' '; + echo $currentBefore; + the_title(); + echo $currentAfter; + + } elseif ( is_search() ) { + echo $currentBefore . 'Search results for '' . get_search_query() . ''' . $currentAfter; + + } elseif ( is_tag() ) { + echo $currentBefore . 'Posts tagged ''; + single_tag_title(); + echo ''' . $currentAfter; + + } elseif ( is_author() ) { + global $author; + $userdata = get_userdata($author); + echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter; + + } elseif ( is_404() ) { + echo $currentBefore . 'Error 404' . $currentAfter; + } + + if ( get_query_var('paged') ) { + if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' ('; + echo __('Page') . ' ' . get_query_var('paged'); + if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')'; + } + + echo '
'; + + } +} + +/** +* Setup blog comment style +**/ +function pp_comment($comment, $args, $depth) +{ + $GLOBALS['comment'] = $comment; ?> + +
+
+ ' ); ?> +
+ + +
+ comment_approved == '0') : ?> + +
+ + + comment_author; ?> + + + +
+
+= $lengths[$j]; $j++) + $difference /= $lengths[$j]; + $difference = round($difference); + if($difference != 1) $periods[$j].= "s"; + $text = "$difference $periods[$j] ago"; + return $text; +} + + +// Substring without losing word meaning and +// tiny words (length 3 by default) are included on the result. +// "..." is added if result do not reach original string length + +function pp_substr($str, $length, $minword = 3) +{ + $sub = ''; + $len = 0; + + foreach (explode(' ', $str) as $word) + { + $part = (($sub != '') ? ' ' : '') . $word; + $sub .= $part; + $len += strlen($part); + + if (strlen($word) > $minword && strlen($sub) >= $length) + { + break; + } + } + + return $sub . (($len < strlen($str)) ? '...' : ''); +} + + +/** +* Setup recent posts widget +**/ +function pp_posts($sort = 'recent', $items = 3, $echo = TRUE, $bg_color = 'black' , $echo_title = TRUE) +{ + $return_html = ''; + + if($sort == 'recent') + { + $posts = get_posts('numberposts='.$items.'&order=DESC&orderby=date&post_type=post&post_status=publish'); + $title = 'Recent Posts'; + } + else + { + global $wpdb; + + $query = "SELECT ID, post_title, post_content FROM {$wpdb->prefix}posts WHERE post_type = 'post' AND post_status= 'publish' ORDER BY comment_count DESC LIMIT 0,".$items; + $posts = $wpdb->get_results($query); + $title = 'Popular Posts'; + } + + if(!empty($posts)) + { + if($echo_title) + { + $return_html.= '

'.$title.'

'; + } + + $return_html.= '
    '; + + foreach($posts as $post) + { + $image_thumb = ''; + + if(has_post_thumbnail($post->ID, 'large')) + { + $image_id = get_post_thumbnail_id($post->ID); + $image_thumb = wp_get_attachment_image_src($image_id, 'large', true); + } + + $return_html.= '
  • '; + + if(!empty($image_thumb)) + { + $return_html.= ''; + } + $return_html.= ''.$post->post_title.'
    '; + $return_html.= pp_substr(strip_tags(strip_shortcodes($post->post_content)), 80).'
  • '; + + } + + $return_html.= '
'; + + } + + if($echo) + { + echo $return_html; + } + else + { + return $return_html; + } +} + +function _substr($str, $length, $minword = 3) +{ + $sub = ''; + $len = 0; + + foreach (explode(' ', $str) as $word) + { + $part = (($sub != '') ? ' ' : '') . $word; + $sub .= $part; + $len += strlen($part); + + if (strlen($word) > $minword && strlen($sub) >= $length) + { + break; + } + } + + return $sub . (($len < strlen($str)) ? '...' : ''); +} + +function get_the_content_with_formatting ($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') { + + $pp_blog_read_more_title = get_option('pp_blog_read_more_title'); + if(empty($pp_blog_read_more_title)) + { + $pp_blog_read_more_title = 'Read More'; + } + + $content = get_the_content('', $stripteaser, $more_file); + $content = strip_shortcodes($content); + $content = str_replace(']]>', ']]>', $content); + $content = _substr(strip_tags(strip_shortcodes($content)), 600); + return $content; +} + +function image_from_description($data) { + preg_match_all('/]*)>/i', $data, $matches); + return $matches[1][0]; +} + + +function select_image($img, $size) { + $img = explode('/', $img); + $filename = array_pop($img); + + // The sizes listed here are the ones Flickr provides by default. Pass the array index in the + + // 0 for square, 1 for thumb, 2 for small, etc. + $s = array( + '_s.', // square + '_t.', // thumb + '_m.', // small + '.', // medium + '_b.' // large + ); + + $img[] = preg_replace('/(_(s|t|m|b))?\./i', $s[$size], $filename); + return implode('/', $img); +} + + +function get_flickr($settings) { + if (!function_exists('MagpieRSS')) { + // Check if another plugin is using RSS, may not work + include_once (ABSPATH . WPINC . '/class-simplepie.php'); + error_reporting(E_ERROR); + } + + if(!isset($settings['items']) || empty($settings['items'])) + { + $settings['items'] = 9; + } + + // get the feeds + if ($settings['type'] == "user") { $rss_url = 'http://api.flickr.com/services/feeds/photos_public.gne?id=' . $settings['id'] . '&tags=' . $settings['tags'] . '&per_page='.$settings['items'].'&format=rss_200'; } + elseif ($settings['type'] == "favorite") { $rss_url = 'http://api.flickr.com/services/feeds/photos_faves.gne?id=' . $settings['id'] . '&format=rss_200'; } + elseif ($settings['type'] == "set") { $rss_url = 'http://api.flickr.com/services/feeds/photoset.gne?set=' . $settings['set'] . '&nsid=' . $settings['id'] . '&format=rss_200'; } + elseif ($settings['type'] == "group") { $rss_url = 'http://api.flickr.com/services/feeds/groups_pool.gne?id=' . $settings['id'] . '&format=rss_200'; } + elseif ($settings['type'] == "public" || $settings['type'] == "community") { $rss_url = 'http://api.flickr.com/services/feeds/photos_public.gne?tags=' . $settings['tags'] . '&format=rss_200'; } + else { + print 'No "type" parameter has been setup. Check your settings, or provide the parameter as an argument.'; + die(); + } + # get rss file + + $feed = new SimplePie($rss_url); + $photos_arr = array(); + + foreach ($feed->get_items() as $key => $item) + { + $enclosure = $item->get_enclosure(); + $img = image_from_description($item->get_description()); + $thumb_url = select_image($img, 0); + $large_url = select_image($img, 4); + + $photos_arr[] = array( + 'title' => $enclosure->get_title(), + 'thumb_url' => $thumb_url, + 'url' => $large_url, + ); + + $current = intval($key+1); + + if($current == $settings['items']) + { + break; + } + } + + return $photos_arr; +} + +function html2rgb($color) +{ + if ($color[0] == '#') + $color = substr($color, 1); + + if (strlen($color) == 6) + list($r, $g, $b) = array($color[0].$color[1], + $color[2].$color[3], + $color[4].$color[5]); + elseif (strlen($color) == 3) + list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]); + else + return false; + + $r = hexdec($r); $g = hexdec($g); $b = hexdec($b); + + return array($r, $g, $b); +} + +function hex_lighter($hex,$factor = 30) + { + $new_hex = ''; + + $base['R'] = hexdec($hex{0}.$hex{1}); + $base['G'] = hexdec($hex{2}.$hex{3}); + $base['B'] = hexdec($hex{4}.$hex{5}); + + foreach ($base as $k => $v) + { + $amount = 255 - $v; + $amount = $amount / 100; + $amount = round($amount * $factor); + $new_decimal = $v + $amount; + + $new_hex_component = dechex($new_decimal); + if(strlen($new_hex_component) < 2) + { $new_hex_component = "0".$new_hex_component; } + $new_hex .= $new_hex_component; + } + + return $new_hex; +} + +function hex_darker($hex,$factor = 30) +{ + $new_hex = ''; + + $base['R'] = hexdec($hex{0}.$hex{1}); + $base['G'] = hexdec($hex{2}.$hex{3}); + $base['B'] = hexdec($hex{4}.$hex{5}); + + foreach ($base as $k => $v) + { + $amount = $v / 100; + $amount = round($amount * $factor); + $new_decimal = $v - $amount; + + $new_hex_component = dechex($new_decimal); + if(strlen($new_hex_component) < 2) + { $new_hex_component = "0".$new_hex_component; } + $new_hex .= $new_hex_component; + } + + return $new_hex; +} + +function theme_queue_js(){ + if (!is_admin()){ + if (!is_page() AND is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) { + wp_enqueue_script( 'comment-reply' ); + } + } +} +add_action('get_header', 'theme_queue_js'); + +?> \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/lib/sidebar.lib.php b/src/wp-content/themes/lqdvi/lib/sidebar.lib.php index ebc90e88..0b860fad 100644 --- a/src/wp-content/themes/lqdvi/lib/sidebar.lib.php +++ b/src/wp-content/themes/lqdvi/lib/sidebar.lib.php @@ -26,6 +26,10 @@ if ( function_exists('register_sidebar') ) register_sidebar(array('name' => 'Blog Sidebar')); */ + +if ( function_exists('register_sidebar') ) + register_sidebar(array('name' => 'Homepage Footer Sidebar')); + /** * Setup Footer side bar **/ diff --git a/src/wp-content/themes/lqdvi/page.php b/src/wp-content/themes/lqdvi/page.php index ab7d0bc1..23c74a6e 100644 --- a/src/wp-content/themes/lqdvi/page.php +++ b/src/wp-content/themes/lqdvi/page.php @@ -117,8 +117,9 @@ if(!isset($hide_header) OR !$hide_header)
- -
+ + +
diff --git a/src/wp-content/themes/lqdvi/pasarela_tpv.php b/src/wp-content/themes/lqdvi/pasarela_tpv.php index 14701098..8015209c 100644 --- a/src/wp-content/themes/lqdvi/pasarela_tpv.php +++ b/src/wp-content/themes/lqdvi/pasarela_tpv.php @@ -24,13 +24,17 @@ function llamar_pasarela_socio($entry) { '1' => 'anual'); $datos = array(); - $datos['titular'] = $entry[1] . ' ' . $entry[2]; - $datos['url_tpvv'] = 'https://sis-t.sermepa.es:25443/sis/realizarPago'; - $datos['clave'] = 'qwertyasdf0123456789'; - $datos['nombre_comercio'] = 'Fundacion Lo que de verdad importa'; + + $datos['url_tpvv'] = 'https://sis.sermepa.es/sis/realizarPago'; //produccion + $datos['clave'] = 'Q00348RM5R930U08'; //produccion + $datos['code'] = '322204298'; //produccion + $datos['terminal'] = '1'; + + $datos['nombre_comercio'] = 'Fundacion Lo que de verdad importa'; $datos['url_comercio'] = 'http://www.loquedeverdadimporta.org/wp-content/themes/lqdvi/respuesta_pasarela_tpv.php'; - $datos['code'] = '322204298'; - $datos['terminal'] = '1'; + $datos['titular'] = $entry[1] . ' ' . $entry[2]; + + $datos['num_orden'] = date('ymdHis'); $datos['moneda'] = '978'; //euros $datos['URLOK'] = 'http://www.loquedeverdadimporta.org/quieres-ser-amigo/gracias-por-ser-nuestro-socio/'; diff --git a/src/wp-content/themes/lqdvi/pasarela_tpv.php.test b/src/wp-content/themes/lqdvi/pasarela_tpv.php.test new file mode 100644 index 00000000..14701098 --- /dev/null +++ b/src/wp-content/themes/lqdvi/pasarela_tpv.php.test @@ -0,0 +1,146 @@ + $v) { + fwrite($file, "$k ==> $v\n"); + } + fwrite ($file, "DATOS\n");*/ + + $nombre_cuotas = array('12' => 'mensual', + '4' => 'trimestral', + '2' => 'semestral', + '1' => 'anual'); + + $datos = array(); + $datos['titular'] = $entry[1] . ' ' . $entry[2]; + $datos['url_tpvv'] = 'https://sis-t.sermepa.es:25443/sis/realizarPago'; + $datos['clave'] = 'qwertyasdf0123456789'; + $datos['nombre_comercio'] = 'Fundacion Lo que de verdad importa'; + $datos['url_comercio'] = 'http://www.loquedeverdadimporta.org/wp-content/themes/lqdvi/respuesta_pasarela_tpv.php'; + $datos['code'] = '322204298'; + $datos['terminal'] = '1'; + $datos['num_orden'] = date('ymdHis'); + $datos['moneda'] = '978'; //euros + $datos['URLOK'] = 'http://www.loquedeverdadimporta.org/quieres-ser-amigo/gracias-por-ser-nuestro-socio/'; + $datos['URLKO'] = 'http://www.loquedeverdadimporta.org/se-ha-producido-un-error/'; + + // Convertir la cantidad + $cuota = explode("|", $entry[9]); //<- formato: Xfrecuencia_ano|cantidad_euros (X -> Cuota fija (una F) o cuota libre (una L) + $cuota[0] = str_replace("F", "", $cuota[0]); + $cuota[0] = str_replace("L", "", $cuota[0]); + $datos['frecuencia_ano'] = $cuota[0]; + if ($datos['frecuencia_ano'] != 0) { // Es una cuota + //fwrite($file , "ES UNA CUOTA ==========\n"); + //$datos['frecuencia_dias'] = round(365/$datos['frecuencia_ano']); + //$datos['frecuencia_fecha_limite'] = date("Y-m-d", strtotime('+10 Year')); // Mantener las cuotas 10 ańos a partir de hoy + + // Puede ser una cuota fija o una cuota libre. + // Si es cuota fija -> $cuota[1] != 0 + // Si es cuota libre -> $cuota[1] == 0 + + $datos['cantidad'] = $cuota[1] * 100; + if ($datos['cantidad'] == 0) { + //fwrite($file , "ES UNA CUOTA LIBRE ==========\n"); + // Es una cuota libre. Hay que buscar el importe en los campos correspondientes + // Cuota libre mensual -> campo $entry[23] + // Cuota libre trimestral -> campo $entry[24] + // Cuota libre semestral -> campo $entry[25] + // Cuota libre anual -> campo $entry[26] + if ($datos['frecuencia_ano'] == 12) { + $datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[23]); + } + if ($datos['frecuencia_ano'] == 4) { + $datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[24]); + } + if ($datos['frecuencia_ano'] == 2) { + $datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[25]); + } + if ($datos['frecuencia_ano'] == 1) { + $datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[26]); + } + $datos['producto'] = 'Cuota ' . $nombre_cuotas[$datos['frecuencia_ano']] . ' libre LQDVI'; + } + else { + $datos['producto'] = 'Cuota ' . $nombre_cuotas[$datos['frecuencia_ano']] . ' LQDVI'; + } + + /* Método de pago: + * T: significa pago con tarjeta. + * D: significa pago por domiciliación bancaria. + * R: significa pago por transferencia. + */ + $datos['metodo_pago'] = 'D'; // <- Domiciliación + //$datos['suma_total'] = $datos['cantidad'] * ($datos['frecuencia_ano']*10); // Calcular el total de cuotas en 10 ańos + $datos['transaction_type'] = '0'; // <- Autorización ('5' <- Transacción recurrente) + } else { // Es una aportación puntual + $datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[19]); + $datos['metodo_pago'] = 'T'; // <- Tarjeta + $datos['producto'] = 'Aportacion LQDVI'; + $datos['transaction_type'] = '0'; // <- Autorización + } + + // Calcular firma + /* if ($datos['frecuencia_ano'] != 0) { // Es una cuota + * $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['suma_total'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave']; + *} else { // Es una aportación puntual + * $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave']; + *} + */ + + // Calcular firma + $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave']; + $datos['firma'] = strtoupper(sha1($datos['mensaje'])); + + /*fwrite($file , "VOLCADO DE datos ==========\n"); + foreach($datos as $k => $v) + fwrite($file, "$k ==> $v\n"); */ + + $confirmation = "
"; + $confirmation .= "Conectando con pasarela de pago..."; + $confirmation .= "
"; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= ""; + + /* if ($datos['frecuencia_ano'] != 0) { // Es una cuota + * $confirmation .= ""; + * $confirmation .= ""; + * $confirmation .= ""; + *} + */ + + $confirmation .= ""; + $confirmation .= ""; + $confirmation .= "
"; + $confirmation .= ""; + + /*fwrite($file, $confirmation); + fclose($file); */ + return $confirmation; +} + + +?> \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/search.php b/src/wp-content/themes/lqdvi/search.php index 26183283..ddb8300c 100644 --- a/src/wp-content/themes/lqdvi/search.php +++ b/src/wp-content/themes/lqdvi/search.php @@ -81,7 +81,7 @@ if (have_posts()) : while (have_posts()) : the_post();
-

+

diff --git a/src/wp-content/themes/lqdvi/searchform.php b/src/wp-content/themes/lqdvi/searchform.php new file mode 100644 index 00000000..b1187664 --- /dev/null +++ b/src/wp-content/themes/lqdvi/searchform.php @@ -0,0 +1,6 @@ + +
+ Search...Buscar..."); ?>" class="field"> + +
+ \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/single-congreso.php b/src/wp-content/themes/lqdvi/single-congreso.php new file mode 100644 index 00000000..0f2260ef --- /dev/null +++ b/src/wp-content/themes/lqdvi/single-congreso.php @@ -0,0 +1,115 @@ +CongresoConvention"); + +if (empty($pp_title)) { + $pp_title = 'Blog'; +} + + + +//Make blog menu active +if (!empty($pp_blog_page)) { + ?> + + + + +
+
+ + +
+

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

+ + + +
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/single.php b/src/wp-content/themes/lqdvi/single.php index 85ae9150..f871a4ce 100644 --- a/src/wp-content/themes/lqdvi/single.php +++ b/src/wp-content/themes/lqdvi/single.php @@ -18,6 +18,19 @@ if($post->post_type == 'proyectos') exit; } +if($post->post_type == 'proyecto') +{ + include (TEMPLATEPATH . "/templates/template-portfolio-single.php"); + exit; +} + + +if($post->post_type == 'ponente') +{ + include (TEMPLATEPATH . "/templates/template-ponente.php"); + exit; +} + $pp_blog_page = get_option('pp_blog_page'); $page_sidebar = get_post_meta($pp_blog_page, 'page_sidebar', true); @@ -97,7 +110,7 @@ if (have_posts()) : while (have_posts()) : the_post();
-

+

diff --git a/src/wp-content/themes/lqdvi/template-colaboradores.php b/src/wp-content/themes/lqdvi/template-colaboradores.php index 20b8e798..f2020430 100644 --- a/src/wp-content/themes/lqdvi/template-colaboradores.php +++ b/src/wp-content/themes/lqdvi/template-colaboradores.php @@ -207,7 +207,7 @@ if (have_posts()) : while (have_posts()) : the_post();
- +
diff --git a/src/wp-content/themes/lqdvi/template-lista-inscripciones.php b/src/wp-content/themes/lqdvi/template-lista-inscripciones.php new file mode 100644 index 00000000..d062e4ff --- /dev/null +++ b/src/wp-content/themes/lqdvi/template-lista-inscripciones.php @@ -0,0 +1,201 @@ +ID); + +/** + * Get current page id + * */ +if (!isset($current_page_id) && isset($page->ID)) { + $current_page_id = $page->ID; +} else { + global $query_string; + query_posts($query_string . "&page_id=" . $current_page_id); +} + +$page_style = get_post_meta($current_page_id, 'page_style', true); +$page_sidebar = get_post_meta($current_page_id, 'page_sidebar', true); +$caption_style = get_post_meta($current_page_id, 'caption_style', true); + +if (empty($caption_style)) { + $caption_style = 'Title & Description'; +} + +if (empty($page_sidebar)) { + $page_sidebar = 'Page Sidebar'; +} + +$caption_class = "page_caption"; + +if (empty($page_style)) { + $page_style = 'Fullwidth'; +} + +$add_sidebar = FALSE; +$sidebar_class = ''; + +if ($page_style == 'Right Sidebar') { + $add_sidebar = TRUE; + $page_class = 'sidebar_content'; +} elseif ($page_style == 'Left Sidebar') { + $add_sidebar = TRUE; + $page_class = 'sidebar_content'; + $sidebar_class = 'left_sidebar'; +} else { + $page_class = 'inner_wrapper'; +} + +if (!isset($hide_header) OR !$hide_header) { + get_header(); +} + +if (!isset($hide_header) OR !$hide_header) { + ?> + +
+
+ + +
+

+
+ +
+

+
+ +
+

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

+ + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+ + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/template-ponente.php b/src/wp-content/themes/lqdvi/template-ponente.php new file mode 100644 index 00000000..11c67804 --- /dev/null +++ b/src/wp-content/themes/lqdvi/template-ponente.php @@ -0,0 +1,269 @@ +post_type == 'proyectos') +{ + include (TEMPLATEPATH . "/templates/template-portfolio-single.php"); + exit; +} + +$pp_blog_page = get_option('pp_blog_page'); +$page_sidebar = get_post_meta($pp_blog_page, 'page_sidebar', true); + +if(empty($page_sidebar)) +{ + $page_sidebar = 'Blog Sidebar'; +} + +$caption_class = "page_caption"; + +$pp_title = get_option('pp_blog_title'); + +if(empty($pp_title)) +{ + $pp_title = 'Blog'; +} + + + +//Make blog menu active +if(!empty($pp_blog_page)) +{ +?> + + + + +
+
+ + +
+

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

+ + + + + +
+ + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/template-prensa-principal.php b/src/wp-content/themes/lqdvi/template-prensa-principal.php new file mode 100644 index 00000000..372a4aaf --- /dev/null +++ b/src/wp-content/themes/lqdvi/template-prensa-principal.php @@ -0,0 +1,280 @@ +ID); + +/** + * Get current page id + * */ +if (!isset($current_page_id) && isset($page->ID)) { + $current_page_id = $page->ID; +} + +if (!isset($hide_header) OR !$hide_header) { + get_header(); +} + +$page_style = get_post_meta($current_page_id, 'page_style', true); +$page_sidebar = get_post_meta($current_page_id, 'page_sidebar', true); +$caption_style = get_post_meta($current_page_id, 'caption_style', true); +$id_category = get_post_meta($current_page_id, 'id_category', true); + +if (empty($caption_style)) { + $caption_style = 'Title & Description'; +} + +if (!isset($sidebar_home)) { + $sidebar_home = ''; +} + +if (empty($page_sidebar)) { + $page_sidebar = 'Blog Sidebar'; +} +$caption_class = "page_caption"; + +if (!isset($add_sidebar)) { + $add_sidebar = FALSE; +} + +$sidebar_class = ''; + +if ($page_style == 'Right Sidebar') { + $add_sidebar = TRUE; + $page_class = 'sidebar_content'; +} elseif ($page_style == 'Left Sidebar') { + $add_sidebar = TRUE; + $page_class = 'sidebar_content'; + $sidebar_class = 'left_sidebar'; +} else { + $page_class = 'inner_wrapper'; +} + +$pp_title = get_option('pp_blog_title'); + +if (empty($pp_title)) { + $pp_title = 'Blog'; +} + +if (!isset($hide_header) OR !$hide_header) { + ?> + +
+
+ + +
+

+
+ +
+

+
+ +
+

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

+ + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+ + + + + + + + + + + + diff --git a/src/wp-content/themes/lqdvi/template-press.php b/src/wp-content/themes/lqdvi/template-press.php index 4e8bec21..d719cb2d 100644 --- a/src/wp-content/themes/lqdvi/template-press.php +++ b/src/wp-content/themes/lqdvi/template-press.php @@ -228,7 +228,7 @@ if (have_posts()) : while (have_posts()) : the_post();

- - . + .     @@ -243,7 +243,7 @@ if (have_posts()) : while (have_posts()) : the_post();
- - . + .     diff --git a/src/wp-content/themes/lqdvi/template-webcam.php b/src/wp-content/themes/lqdvi/template-webcam.php index b02acfd1..d9d7ce22 100644 --- a/src/wp-content/themes/lqdvi/template-webcam.php +++ b/src/wp-content/themes/lqdvi/template-webcam.php @@ -74,6 +74,7 @@ if (have_posts()) : while (have_posts()) : the_post();

+
diff --git a/src/wp-content/themes/lqdvi/templates/logo-slideshow.php b/src/wp-content/themes/lqdvi/templates/logo-slideshow.php new file mode 100644 index 00000000..131ad1a0 --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/logo-slideshow.php @@ -0,0 +1,69 @@ + + + 'apoyo', + 'orderby' => 'rand', + 'numberposts' => -1, + 'post_status' => 'publish', + 'tax_query' => array( + array( + 'taxonomy' => 'categoria-apoyo', + 'field' => 'slug', + 'terms' => array( + 'entidades-aliadas', + 'patrocinador-principal', + 'socios-fundadores', + ) + )), +); + +$principales = get_posts($args); + +$args = array( + 'post_type' => 'apoyo', + 'orderby' => 'rand', + 'numberposts' => -1, + 'post_status' => 'publish', +); +$todos = get_posts($args); + +$apoyos = array_merge($principales, $todos, $principales); +shuffle($apoyos); + +?> +
+
+

+
+
    + ID)); + if ($image_url != '') : + $url = get_post_meta($apoyo->ID, 'wpcf-web', true); + ?> +
  • + + + <?php echo the_title(); ?> + +
  • + +
+
+
+

+
+
+
+
+
+
\ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/templates/template-homepage-slider.php b/src/wp-content/themes/lqdvi/templates/template-homepage-slider.php new file mode 100644 index 00000000..14eefa10 --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/template-homepage-slider.php @@ -0,0 +1,189 @@ + $pp_slider_items, + 'order' => $pp_slider_sort, + 'orderby' => 'date', + 'post_type' => 'slides', +); + +$all_photo_arr = get_posts($args); + +?> + + + + +
+ +
+ +
+ + + + + + + + $photo) + { + $title = $photo->post_title; + $content = $photo->post_content; + $small_image_url = get_bloginfo( 'stylesheet_directory' ).'/images/000_70.png'; + + $slide_link_to = get_post_meta($photo->ID, 'slide_link_to', true); + + if(has_post_thumbnail($photo->ID, 'large')) + { + + + $image_id = get_post_thumbnail_id($photo->ID); + $image_url = wp_get_attachment_image_src($image_id, 'large', true); + //$image_url[0] = cleanSource($image_url[0]); + + $small_image_url = get_bloginfo( 'stylesheet_directory' ).'/timthumb.php?src='.cleanSource($image_url[0]).'&h='.$pp_gallery_height.'&w='.$pp_gallery_width.'&zc=1'; + + if(!empty($slide_link_to) && $slide_link_to != 'Image') + { + $hyperlink_url = get_post_meta($photo->ID, 'gallery_link_url', true); + } + else + { + $hyperlink_url = $image_url[0]; + } + + } + ?> + + +
+ +
+ + > + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+ + + + +
+ + + +
+ +

+

+
+ + + + diff --git a/src/wp-content/themes/lqdvi/templates/template-homepage-streaming.php b/src/wp-content/themes/lqdvi/templates/template-homepage-streaming.php new file mode 100644 index 00000000..d2a48036 --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/template-homepage-streaming.php @@ -0,0 +1,79 @@ + + +
+
+
+ + + +
+
+
+
+ + + diff --git a/src/wp-content/themes/lqdvi/templates/template-homepage-videos.php b/src/wp-content/themes/lqdvi/templates/template-homepage-videos.php new file mode 100644 index 00000000..709b65a0 --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/template-homepage-videos.php @@ -0,0 +1,57 @@ + + +
+
+
+ + + +
+
+
+
+ + + diff --git a/src/wp-content/themes/lqdvi/templates/template-ponente.php b/src/wp-content/themes/lqdvi/templates/template-ponente.php new file mode 100644 index 00000000..f9cc1433 --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/template-ponente.php @@ -0,0 +1,104 @@ + +
+
+ + +
+

+
+ +
+
+
+ + + +
+
+ +
+ + + + +
+ + <?php echo $pp_title; ?> + + +
+ + +
+ + +
+ + + + + + + + + + +
+
+ +
+ + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/templates/tu.php b/src/wp-content/themes/lqdvi/templates/tu.php new file mode 100644 index 00000000..609f33cb --- /dev/null +++ b/src/wp-content/themes/lqdvi/templates/tu.php @@ -0,0 +1,115 @@ +
+ + +
+
+ + $captura_items, + 'order' => $captura_sort, + 'orderby' => 'date', + 'post_type' => array('capturas'), + 'offset' => $offset, + ); + + $page_photo_arr = get_posts($args); + + +//Get all portfolio items for paging + + $args = array( + 'numberposts' => -1, + 'order' => $captura_sort, + 'orderby' => 'date', + 'post_type' => array('capturas'), + ); + + $all_photo_arr = get_posts($args); + $total = count($all_photo_arr); + + if (isset($page_photo_arr) && !empty($page_photo_arr)) { + + foreach ($page_photo_arr as $key => $captura_item) { + + $image_url = ''; + + if (has_post_thumbnail($captura_item->ID, 'large')) { + $image_id = get_post_thumbnail_id($captura_item->ID); + $image_url = wp_get_attachment_image_src($image_id, 'large', true); + //$image_url[0] = cleanSource($image_url[0]); + + $small_image_url = get_bloginfo('stylesheet_directory') . '/timthumb.php?src=' . cleanSource($image_url[0]) . '&h=' . $pp_capturas_img_height . '&w=' . $pp_capturas_img_width . '&zc=1'; + + $permalink_url = get_permalink($captura_item->ID); + + $titulo = strip_tags(strip_shortcodes(__($captura_item->post_title))); + $texto = strip_tags(strip_shortcodes(__($captura_item->post_content))); + + if ($texto != "") { + $texto = " " . $texto; + } + + + $last_class = ''; + $line_break = ''; + if (($key + 1) % $captura_items == 0) { + $last_class = ' last'; + + if (isset($page_photo_arr[$key + 1])) { + $line_break = '



'; + } else { + $line_break = '
'; + } + } + ?> +
+ +
+ + + + + ID); + + echo gen_pagination($total, $current_page, $base_link, TRUE, $captura_items); + } + //End if have portfolio items + ?> +


+ +
+
\ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/timthumb.php b/src/wp-content/themes/lqdvi/timthumb.php index 760ce717..828c9baf 100644 --- a/src/wp-content/themes/lqdvi/timthumb.php +++ b/src/wp-content/themes/lqdvi/timthumb.php @@ -1,804 +1,1251 @@ -*/ +/** + * TimThumb by Ben Gillbanks and Mark Maunder + * Based on work done by Tim McDaniels and Darren Hoyt + * http://code.google.com/p/timthumb/ + * + * GNU General Public License, version 2 + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * + * Examples and documentation available on the project homepage + * http://www.binarymoon.co.uk/projects/timthumb/ + * + * $Rev$ + */ /* -$sizeLimits = array( - "100x100", - "150x150", -); + * --- TimThumb CONFIGURATION --- + * To edit the configs it is best to create a file called timthumb-config.php + * and define variables you want to customize in there. It will automatically be + * loaded by timthumb. This will save you having to re-edit these variables + * everytime you download a new version */ +define ('VERSION', '2.8.11'); // Version of this script +//Load a config file if it exists. Otherwise, use the values below +if( file_exists(dirname(__FILE__) . '/timthumb-config.php')) require_once('timthumb-config.php'); +if(! defined('DEBUG_ON') ) define ('DEBUG_ON', false); // Enable debug logging to web server error log (STDERR) +if(! defined('DEBUG_LEVEL') ) define ('DEBUG_LEVEL', 1); // Debug level 1 is less noisy and 3 is the most noisy +if(! defined('MEMORY_LIMIT') ) define ('MEMORY_LIMIT', '30M'); // Set PHP memory limit +if(! defined('BLOCK_EXTERNAL_LEECHERS') ) define ('BLOCK_EXTERNAL_LEECHERS', false); // If the image or webshot is being loaded on an external site, display a red "No Hotlinking" gif. -error_reporting(0); -ini_set("display_errors", 1); +//Image fetching and caching +if(! defined('ALLOW_EXTERNAL') ) define ('ALLOW_EXTERNAL', TRUE); // Allow image fetching from external websites. Will check against ALLOWED_SITES if ALLOW_ALL_EXTERNAL_SITES is false +if(! defined('ALLOW_ALL_EXTERNAL_SITES') ) define ('ALLOW_ALL_EXTERNAL_SITES', false); // Less secure. +if(! defined('FILE_CACHE_ENABLED') ) define ('FILE_CACHE_ENABLED', TRUE); // Should we store resized/modified images on disk to speed things up? +if(! defined('FILE_CACHE_TIME_BETWEEN_CLEANS')) define ('FILE_CACHE_TIME_BETWEEN_CLEANS', 86400); // How often the cache is cleaned -define ('CACHE_SIZE', 250); // number of files to store before clearing cache -define ('CACHE_CLEAR', 5); // maximum number of files to delete on each cache clear -define ('CACHE_USE', FALSE); // use the cache files? (mostly for testing) -define ('VERSION', '1.15'); // version number (to force a cache refresh) -define ('DIRECTORY_CACHE', './cache'); // cache directory -define ('DIRECTORY_TEMP', './temp'); // temp directory +if(! defined('FILE_CACHE_MAX_FILE_AGE') ) define ('FILE_CACHE_MAX_FILE_AGE', 86400); // How old does a file have to be to be deleted from the cache +if(! defined('FILE_CACHE_SUFFIX') ) define ('FILE_CACHE_SUFFIX', '.timthumb.txt'); // What to put at the end of all files in the cache directory so we can identify them +if(! defined('FILE_CACHE_PREFIX') ) define ('FILE_CACHE_PREFIX', 'timthumb'); // What to put at the beg of all files in the cache directory so we can identify them +if(! defined('FILE_CACHE_DIRECTORY') ) define ('FILE_CACHE_DIRECTORY', './cache'); // Directory where images are cached. Left blank it will use the system temporary directory (which is better for security) +if(! defined('MAX_FILE_SIZE') ) define ('MAX_FILE_SIZE', 10485760); // 10 Megs is 10485760. This is the max internal or external file size that we'll process. +if(! defined('CURL_TIMEOUT') ) define ('CURL_TIMEOUT', 20); // Timeout duration for Curl. This only applies if you have Curl installed and aren't using PHP's default URL fetching mechanism. +if(! defined('WAIT_BETWEEN_FETCH_ERRORS') ) define ('WAIT_BETWEEN_FETCH_ERRORS', 3600); // Time to wait between errors fetching remote file -// external domains that are allowed to be displayed on your website -$allowedSites = array ( - 'flickr.com', - 'picasa.com', - 'blogger.com', - 'wordpress.com', - 'img.youtube.com', -); +//Browser caching +if(! defined('BROWSER_CACHE_MAX_AGE') ) define ('BROWSER_CACHE_MAX_AGE', 864000); // Time to cache in the browser +if(! defined('BROWSER_CACHE_DISABLE') ) define ('BROWSER_CACHE_DISABLE', false); // Use for testing if you want to disable all browser caching + +//Image size and defaults +if(! defined('MAX_WIDTH') ) define ('MAX_WIDTH', 1500); // Maximum image width +if(! defined('MAX_HEIGHT') ) define ('MAX_HEIGHT', 1500); // Maximum image height +if(! defined('NOT_FOUND_IMAGE') ) define ('NOT_FOUND_IMAGE', ''); // Image to serve if any 404 occurs +if(! defined('ERROR_IMAGE') ) define ('ERROR_IMAGE', ''); // Image to serve if an error occurs instead of showing error message +if(! defined('PNG_IS_TRANSPARENT') ) define ('PNG_IS_TRANSPARENT', FALSE); // Define if a png image should have a transparent background color. Use False value if you want to display a custom coloured canvas_colour +if(! defined('DEFAULT_Q') ) define ('DEFAULT_Q', 90); // Default image quality. Allows overrid in timthumb-config.php +if(! defined('DEFAULT_ZC') ) define ('DEFAULT_ZC', 1); // Default zoom/crop setting. Allows overrid in timthumb-config.php +if(! defined('DEFAULT_F') ) define ('DEFAULT_F', ''); // Default image filters. Allows overrid in timthumb-config.php +if(! defined('DEFAULT_S') ) define ('DEFAULT_S', 0); // Default sharpen value. Allows overrid in timthumb-config.php +if(! defined('DEFAULT_CC') ) define ('DEFAULT_CC', 'ffffff'); // Default canvas colour. Allows overrid in timthumb-config.php -// STOP MODIFYING HERE! -// -------------------- +//Image compression is enabled if either of these point to valid paths -// check to see if GD function exist -if (!function_exists('imagecreatetruecolor')) { - displayError('GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library'); -} +//These are now disabled by default because the file sizes of PNGs (and GIFs) are much smaller than we used to generate. +//They only work for PNGs. GIFs and JPEGs are not affected. +if(! defined('OPTIPNG_ENABLED') ) define ('OPTIPNG_ENABLED', false); +if(! defined('OPTIPNG_PATH') ) define ('OPTIPNG_PATH', '/usr/bin/optipng'); //This will run first because it gives better compression than pngcrush. +if(! defined('PNGCRUSH_ENABLED') ) define ('PNGCRUSH_ENABLED', false); +if(! defined('PNGCRUSH_PATH') ) define ('PNGCRUSH_PATH', '/usr/bin/pngcrush'); //This will only run if OPTIPNG_PATH is not set or is not valid -if (function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { - $imageFilters = array ( - 1 => array (IMG_FILTER_NEGATE, 0), - 2 => array (IMG_FILTER_GRAYSCALE, 0), - 3 => array (IMG_FILTER_BRIGHTNESS, 1), - 4 => array (IMG_FILTER_CONTRAST, 1), - 5 => array (IMG_FILTER_COLORIZE, 4), - 6 => array (IMG_FILTER_EDGEDETECT, 0), - 7 => array (IMG_FILTER_EMBOSS, 0), - 8 => array (IMG_FILTER_GAUSSIAN_BLUR, 0), - 9 => array (IMG_FILTER_SELECTIVE_BLUR, 0), - 10 => array (IMG_FILTER_MEAN_REMOVAL, 0), - 11 => array (IMG_FILTER_SMOOTH, 0), +/* + -------====Website Screenshots configuration - BETA====------- + + If you just want image thumbnails and don't want website screenshots, you can safely leave this as is. + + If you would like to get website screenshots set up, you will need root access to your own server. + + Enable ALLOW_ALL_EXTERNAL_SITES so you can fetch any external web page. This is more secure now that we're using a non-web folder for cache. + Enable BLOCK_EXTERNAL_LEECHERS so that your site doesn't generate thumbnails for the whole Internet. + + Instructions to get website screenshots enabled on Ubuntu Linux: + + 1. Install Xvfb with the following command: sudo apt-get install subversion libqt4-webkit libqt4-dev g++ xvfb + 2. Go to a directory where you can download some code + 3. Check-out the latest version of CutyCapt with the following command: svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt + 4. Compile CutyCapt by doing: cd cutycapt/CutyCapt + 5. qmake + 6. make + 7. cp CutyCapt /usr/local/bin/ + 8. Test it by running: xvfb-run --server-args="-screen 0, 1024x768x24" CutyCapt --url="http://markmaunder.com/" --out=test.png + 9. If you get a file called test.png with something in it, it probably worked. Now test the script by accessing it as follows: + 10. http://yoursite.com/path/to/timthumb.php?src=http://markmaunder.com/&webshot=1 + + Notes on performance: + The first time a webshot loads, it will take a few seconds. + From then on it uses the regular timthumb caching mechanism with the configurable options above + and loading will be very fast. + + --ADVANCED USERS ONLY-- + If you'd like a slight speedup (about 25%) and you know Linux, you can run the following command which will keep Xvfb running in the background. + nohup Xvfb :100 -ac -nolisten tcp -screen 0, 1024x768x24 > /dev/null 2>&1 & + Then set WEBSHOT_XVFB_RUNNING = true below. This will save your server having to fire off a new Xvfb server and shut it down every time a new shot is generated. + You will need to take responsibility for keeping Xvfb running in case it crashes. (It seems pretty stable) + You will also need to take responsibility for server security if you're running Xvfb as root. + + +*/ +if(! defined('WEBSHOT_ENABLED') ) define ('WEBSHOT_ENABLED', false); //Beta feature. Adding webshot=1 to your query string will cause the script to return a browser screenshot rather than try to fetch an image. +if(! defined('WEBSHOT_CUTYCAPT') ) define ('WEBSHOT_CUTYCAPT', '/usr/local/bin/CutyCapt'); //The path to CutyCapt. +if(! defined('WEBSHOT_XVFB') ) define ('WEBSHOT_XVFB', '/usr/bin/xvfb-run'); //The path to the Xvfb server +if(! defined('WEBSHOT_SCREEN_X') ) define ('WEBSHOT_SCREEN_X', '1024'); //1024 works ok +if(! defined('WEBSHOT_SCREEN_Y') ) define ('WEBSHOT_SCREEN_Y', '768'); //768 works ok +if(! defined('WEBSHOT_COLOR_DEPTH') ) define ('WEBSHOT_COLOR_DEPTH', '24'); //I haven't tested anything besides 24 +if(! defined('WEBSHOT_IMAGE_FORMAT') ) define ('WEBSHOT_IMAGE_FORMAT', 'png'); //png is about 2.5 times the size of jpg but is a LOT better quality +if(! defined('WEBSHOT_TIMEOUT') ) define ('WEBSHOT_TIMEOUT', '20'); //Seconds to wait for a webshot +if(! defined('WEBSHOT_USER_AGENT') ) define ('WEBSHOT_USER_AGENT', "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18"); //I hate to do this, but a non-browser robot user agent might not show what humans see. So we pretend to be Firefox +if(! defined('WEBSHOT_JAVASCRIPT_ON') ) define ('WEBSHOT_JAVASCRIPT_ON', true); //Setting to false might give you a slight speedup and block ads. But it could cause other issues. +if(! defined('WEBSHOT_JAVA_ON') ) define ('WEBSHOT_JAVA_ON', false); //Have only tested this as fase +if(! defined('WEBSHOT_PLUGINS_ON') ) define ('WEBSHOT_PLUGINS_ON', true); //Enable flash and other plugins +if(! defined('WEBSHOT_PROXY') ) define ('WEBSHOT_PROXY', ''); //In case you're behind a proxy server. +if(! defined('WEBSHOT_XVFB_RUNNING') ) define ('WEBSHOT_XVFB_RUNNING', false); //ADVANCED: Enable this if you've got Xvfb running in the background. + + +// If ALLOW_EXTERNAL is true and ALLOW_ALL_EXTERNAL_SITES is false, then external images will only be fetched from these domains and their subdomains. +if(! isset($ALLOWED_SITES)){ + $ALLOWED_SITES = array ( + 'flickr.com', + 'staticflickr.com', + 'picasa.com', + 'img.youtube.com', + 'upload.wikimedia.org', + 'photobucket.com', + 'imgur.com', + 'imageshack.us', + 'tinypic.com', ); } +// ------------------------------------------------------------- +// -------------- STOP EDITING CONFIGURATION HERE -------------- +// ------------------------------------------------------------- -// sort out image source -$src = get_request ('src', ''); -if ($src == '' || strlen ($src) <= 3) { - displayError ('no image specified'); -} +timthumb::start(); -// clean params before use -$src = cleanSource ($src); -// last modified time (for caching) -$lastModified = filemtime ($src); - -// get standard input properties -$new_width = preg_replace ("/[^0-9]+/", '', get_request('w', 0)); -$new_height = preg_replace ("/[^0-9]+/", '', get_request('h', 0)); -$zoom_crop = preg_replace ("/[^0-9]+/", '', get_request('zc', 1)); -$quality = preg_replace ("/[^0-9]+/", '', get_request('q', 90)); -$align = get_request ('a', 'c'); -$filters = get_request ('f', ''); -$sharpen = get_request ('s', 0); - -// set default width and height if neither are set already -if ($new_width == 0 && $new_height == 0) { - $new_width = 100; - $new_height = 100; -} - -// get mime type of src -$mime_type = mime_type ($src); - -// check to see if this image is in the cache already -check_cache ($mime_type); - -// if not in cache then clear some space and generate a new file -cleanCache(); - -// set memory limit to be able to have enough space to resize larger images -ini_set ('memory_limit', '50M'); - -// make sure that the src is gif/jpg/png -if (!valid_src_mime_type ($mime_type)) { - displayError ('Invalid src mime type: ' . $mime_type); -} - -if (strlen ($src) && file_exists ($src)) { - - // open the existing image - $image = open_image ($mime_type, $src); - if ($image === false) { - displayError ('Unable to open image : ' . $src); - } - - // Get original width and height - $width = imagesx ($image); - $height = imagesy ($image); - - // generate new w/h if not provided - if ($new_width && !$new_height) { - - $new_height = $height * ($new_width / $width); - - } elseif ($new_height && !$new_width) { - - $new_width = $width * ($new_height / $height); - - } elseif (!$new_width && !$new_height) { - - $new_width = $width; - $new_height = $height; - - } - - // create a new true color image - $canvas = imagecreatetruecolor ($new_width, $new_height); - imagealphablending ($canvas, false); - // Create a new transparent color for image - $color = imagecolorallocatealpha ($canvas, 0, 0, 0, 127); - // Completely fill the background of the new image with allocated color. - imagefill ($canvas, 0, 0, $color); - // Restore transparency blending - imagesavealpha ($canvas, true); - - if ($zoom_crop) { - - $src_x = $src_y = 0; - $src_w = $width; - $src_h = $height; - - $cmp_x = $width / $new_width; - $cmp_y = $height / $new_height; - - // calculate x or y coordinate and width or height of source - if ($cmp_x > $cmp_y) { - - $src_w = round (($width / $cmp_x * $cmp_y)); - $src_x = round (($width - ($width / $cmp_x * $cmp_y)) / 2); - - } elseif ($cmp_y > $cmp_x) { - - $src_h = round (($height / $cmp_y * $cmp_x)); - $src_y = round (($height - ($height / $cmp_y * $cmp_x)) / 2); - - } - - // positional cropping! - switch ($align) { - case 't': - case 'tl': - case 'lr': - case 'tr': - case 'rt': - $src_y = 0; - break; - - case 'b': - case 'bl': - case 'lb': - case 'br': - case 'rb': - $src_y = $height - $src_h; - break; - - case 'l': - case 'tl': - case 'lt': - case 'bl': - case 'lb': - $src_x = 0; - break; - - case 'r': - case 'tr': - case 'rt': - case 'br': - case 'rb': - $src_x = $width - $new_width; - $src_x = $width - $src_w; - - break; - - default: - - break; +class timthumb { + protected $src = ""; + protected $is404 = false; + protected $docRoot = ""; + protected $lastURLError = false; + protected $localImage = ""; + protected $localImageMTime = 0; + protected $url = false; + protected $myHost = ""; + protected $isURL = false; + protected $cachefile = ''; + protected $errors = array(); + protected $toDeletes = array(); + protected $cacheDirectory = ''; + protected $startTime = 0; + protected $lastBenchTime = 0; + protected $cropTop = false; + protected $salt = ""; + protected $fileCacheVersion = 1; //Generally if timthumb.php is modifed (upgraded) then the salt changes and all cache files are recreated. This is a backup mechanism to force regen. + protected $filePrependSecurityBlock = "handleErrors(); + $tim->securityChecks(); + if($tim->tryBrowserCache()){ + exit(0); } - - imagecopyresampled ($canvas, $image, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h); - - } else { - - // copy and resize part of an image with resampling - imagecopyresampled ($canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); - - } - - if ($filters != '' && function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { - // apply filters to image - $filterList = explode ('|', $filters); - foreach ($filterList as $fl) { - - $filterSettings = explode (',', $fl); - if (isset ($imageFilters[$filterSettings[0]])) { - - for ($i = 0; $i < 4; $i ++) { - if (!isset ($filterSettings[$i])) { - $filterSettings[$i] = null; - } else { - $filterSettings[$i] = (int) $filterSettings[$i]; - } - } - - switch ($imageFilters[$filterSettings[0]][1]) { - - case 1: - - imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1]); - break; - - case 2: - - imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]); - break; - - case 3: - - imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]); - break; - - case 4: - - imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3], $filterSettings[4]); - break; - - default: - - imagefilter ($canvas, $imageFilters[$filterSettings[0]][0]); - break; - - } - } - } - } - - if ($sharpen > 0 && function_exists('imageconvolution')) { - - $sharpenMatrix = array( - array(-1,-1,-1), - array(-1,16,-1), - array(-1,-1,-1), - ); - - $divisor = 8; - $offset = 0; - - imageconvolution ($canvas, $sharpenMatrix, $divisor, $offset); - + $tim->handleErrors(); + if(FILE_CACHE_ENABLED && $tim->tryServerCache()){ + exit(0); + } + $tim->handleErrors(); + $tim->run(); + $tim->handleErrors(); + exit(0); } - - // output image to browser based on mime type - show_image ($mime_type, $canvas); - - // remove image from memory - imagedestroy ($canvas); - -} else { - - if (strlen ($src)) { - displayError ('image ' . $src . ' not found'); - } else { - displayError ('no source specified'); - } - -} - -/** - * - */ -function show_image ($mime_type, $image_resized) { - - global $quality; - - // check to see if we can write to the cache directory - $is_writable = 0; - $cache_file = get_cache_file ($mime_type); - - if (touch ($cache_file)) { - - // give 666 permissions so that the developer - // can overwrite web server user - chmod ($cache_file, 0666); - $is_writable = 1; - - } else { - - $cache_file = NULL; - header ('Content-type: ' . $mime_type); - - } - - if (stristr ($mime_type, 'jpeg')) { - imagejpeg ($image_resized, $cache_file, $quality); - } else { - $quality = floor ($quality * 0.09); - imagepng ($image_resized, $cache_file, $quality); - } - - if ($is_writable) { - show_cache_file ($mime_type); - } - - imagedestroy ($image_resized); - - //displayError ('error showing image'); - -} - -/** - * - */ -function get_request( $property, $default = 0 ) { - - if( isset($_REQUEST[$property]) ) { - - return $_REQUEST[$property]; - - } else { - - return $default; - - } - -} - -/** - * - */ -function open_image ($mime_type, $src) { - - $mime_type = strtolower ($mime_type); - - if (stristr ($mime_type, 'gif')) { - - $image = imagecreatefromgif($src); - - } elseif (stristr ($mime_type, 'jpeg')) { - - @ini_set ('gd.jpeg_ignore_warning', 1); - $image = imagecreatefromjpeg($src); - - } elseif (stristr ($mime_type, 'png')) { - - $image = imagecreatefrompng($src); - - } - - return $image; - -} - -/** - * clean out old files from the cache - * you can change the number of files to store and to delete per loop in the defines at the top of the code - */ -function cleanCache() { - - $files = glob(DIRECTORY_CACHE . '/*', GLOB_BRACE); - - if (count($files) > 0) { - - $yesterday = time() - (24 * 60 * 60); - - usort($files, 'filemtime_compare'); - $i = 0; - - if (count($files) > CACHE_SIZE) { - - foreach ($files as $file) { - - $i ++; - - if ($i >= CACHE_CLEAR) { - return; - } - - if (@filemtime($file) > $yesterday) { - return; - } - - if (file_exists($file)) { - unlink($file); + public function __construct(){ + global $ALLOWED_SITES; + $this->startTime = microtime(true); + date_default_timezone_set('UTC'); + $this->debug(1, "Starting new request from " . $this->getIP() . " to " . $_SERVER['REQUEST_URI']); + $this->calcDocRoot(); + //On windows systems I'm assuming fileinode returns an empty string or a number that doesn't change. Check this. + $this->salt = @filemtime(__FILE__) . '-' . @fileinode(__FILE__); + $this->debug(3, "Salt is: " . $this->salt); + if(FILE_CACHE_DIRECTORY){ + if(! is_dir(FILE_CACHE_DIRECTORY)){ + @mkdir(FILE_CACHE_DIRECTORY); + if(! is_dir(FILE_CACHE_DIRECTORY)){ + $this->error("Could not create the file cache directory."); + return false; } - - } - - } - - } - -} - - -/** - * compare the file time of two files - */ -function filemtime_compare($a, $b) { - - return filemtime ($a) - filemtime ($b); - -} - - -/** - * determine the file mime type - */ -function mime_type ($file) { - - if (stristr (PHP_OS, 'WIN')) { - $os = 'WIN'; - } else { - $os = PHP_OS; - } - - $mime_type = ''; - - if (function_exists ('mime_content_type') && $os != 'WIN') { - $mime_type = mime_content_type ($file); - } - - // use PECL fileinfo to determine mime type - if (!valid_src_mime_type ($mime_type)) { - if (function_exists ('finfo_open')) { - $finfo = @finfo_open (FILEINFO_MIME); - if ($finfo != '') { - $mime_type = finfo_file ($finfo, $file); - finfo_close ($finfo); } + $this->cacheDirectory = FILE_CACHE_DIRECTORY; + if (!touch($this->cacheDirectory . '/index.html')) { + $this->error("Could not create the index.html file - to fix this create an empty file named index.html file in the cache directory."); + } + } else { + $this->cacheDirectory = sys_get_temp_dir(); } - } - - // try to determine mime type by using unix file command - // this should not be executed on windows - if (!valid_src_mime_type ($mime_type) && $os != "WIN") { - if (preg_match ("/FreeBSD|FREEBSD|LINUX/", $os)) { - $mime_type = trim (@shell_exec ('file -bi ' . escapeshellarg($file))); - } - } - - // use file's extension to determine mime type - if (!valid_src_mime_type ($mime_type)) { - - // set defaults - $mime_type = 'image/png'; - // file details - $fileDetails = pathinfo ($file); - $ext = strtolower ($fileDetails["extension"]); - // mime types - $types = array ( - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'png' => 'image/png', - 'gif' => 'image/gif' - ); - - if (strlen ($ext) && strlen ($types[$ext])) { - $mime_type = $types[$ext]; - } - - } - - return $mime_type; - -} - - -/** - * - */ -function valid_src_mime_type ($mime_type) { - - if (preg_match ("/jpg|jpeg|gif|png/i", $mime_type)) { - return true; - } - - return false; - -} - - -/** - * - */ -function check_cache ($mime_type) { - - if (CACHE_USE) { - // make sure cache dir exists - if (!file_exists (DIRECTORY_CACHE)) { - // give 777 permissions so that developer can overwrite - // files created by web server user - mkdir (DIRECTORY_CACHE); - chmod (DIRECTORY_CACHE, 0777); + //Clean the cache before we do anything because we don't want the first visitor after FILE_CACHE_TIME_BETWEEN_CLEANS expires to get a stale image. + $this->cleanCache(); + + $this->myHost = preg_replace('/^www\./i', '', $_SERVER['HTTP_HOST']); + $this->src = $this->param('src'); + $this->url = parse_url($this->src); + $this->src = preg_replace('/https?:\/\/(?:www\.)?' . $this->myHost . '/i', '', $this->src); + + if(strlen($this->src) <= 3){ + $this->error("No image specified"); + return false; } - - show_cache_file ($mime_type); - } - -} - - -/** - * - */ -function show_cache_file ($mime_type) { - - $cache_file = get_cache_file ($mime_type); - - if (file_exists ($cache_file)) { - - $gmdate_mod = gmdate ("D, d M Y H:i:s", filemtime($cache_file)); - - if(! strstr ($gmdate_mod, "GMT")) { - $gmdate_mod .= " GMT"; - } - - if (isset ($_SERVER["HTTP_IF_MODIFIED_SINCE"])) { - - // check for updates - $if_modified_since = preg_replace ("/;.*$/", "", $_SERVER["HTTP_IF_MODIFIED_SINCE"]); - - if ($if_modified_since == $gmdate_mod) { - header ('HTTP/1.1 304 Not Modified'); - die(); - } - - } - - clearstatcache (); - $fileSize = filesize ($cache_file); - - // send headers then display image - header ('Content-Type: ' . $mime_type); - header ('Accept-Ranges: bytes'); - header ('Last-Modified: ' . $gmdate_mod); - header ('Content-Length: ' . $fileSize); - header ('Cache-Control: max-age=9999, must-revalidate'); - header ('Expires: ' . $gmdate_mod); - - if (!@readfile ($cache_file)) { - $content = file_get_contents ($cache_file); - if ($content != FALSE) { - echo $content; - die(); + if(BLOCK_EXTERNAL_LEECHERS && array_key_exists('HTTP_REFERER', $_SERVER) && (! preg_match('/^https?:\/\/(?:www\.)?' . $this->myHost . '(?:$|\/)/i', $_SERVER['HTTP_REFERER']))){ + // base64 encoded red image that says 'no hotlinkers' + // nothing to worry about! :) + $imgData = base64_decode("R0lGODlhUAAMAIAAAP8AAP///yH5BAAHAP8ALAAAAABQAAwAAAJpjI+py+0Po5y0OgAMjjv01YUZ\nOGplhWXfNa6JCLnWkXplrcBmW+spbwvaVr/cDyg7IoFC2KbYVC2NQ5MQ4ZNao9Ynzjl9ScNYpneb\nDULB3RP6JuPuaGfuuV4fumf8PuvqFyhYtjdoeFgAADs="); + header('Content-Type: image/gif'); + header('Content-Length: ' . sizeof($imgData)); + header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); + header("Pragma: no-cache"); + header('Expires: ' . gmdate ('D, d M Y H:i:s', time())); + echo $imgData; + return false; + exit(0); + } + if(preg_match('/^https?:\/\/[^\/]+/i', $this->src)){ + $this->debug(2, "Is a request for an external URL: " . $this->src); + $this->isURL = true; + } else { + $this->debug(2, "Is a request for an internal file: " . $this->src); + } + if($this->isURL && (! ALLOW_EXTERNAL)){ + $this->error("You are not allowed to fetch images from an external website."); + return false; + } + if($this->isURL){ + if(ALLOW_ALL_EXTERNAL_SITES){ + $this->debug(2, "Fetching from all external sites is enabled."); } else { - displayError ('cache file could not be loaded'); + $this->debug(2, "Fetching only from selected external sites is enabled."); + $allowed = false; + foreach($ALLOWED_SITES as $site){ + if ((strtolower(substr($this->url['host'],-strlen($site)-1)) === strtolower(".$site")) || (strtolower($this->url['host'])===strtolower($site))) { + $this->debug(3, "URL hostname {$this->url['host']} matches $site so allowing."); + $allowed = true; + } + } + if(! $allowed){ + return $this->error("You may not fetch images from that site. To enable this site in timthumb, you can either add it to \$ALLOWED_SITES and set ALLOW_EXTERNAL=true. Or you can set ALLOW_ALL_EXTERNAL_SITES=true, depending on your security needs."); + } } } - die(); + $cachePrefix = ($this->isURL ? '_ext_' : '_int_'); + if($this->isURL){ + $arr = explode('&', $_SERVER ['QUERY_STRING']); + asort($arr); + $this->cachefile = $this->cacheDirectory . '/' . FILE_CACHE_PREFIX . $cachePrefix . md5($this->salt . implode('', $arr) . $this->fileCacheVersion) . FILE_CACHE_SUFFIX; + } else { + $this->localImage = $this->getLocalImagePath($this->src); + if(! $this->localImage){ + $this->debug(1, "Could not find the local image: {$this->localImage}"); + $this->error("Could not find the internal image you specified."); + $this->set404(); + return false; + } + $this->debug(1, "Local image path is {$this->localImage}"); + $this->localImageMTime = @filemtime($this->localImage); + //We include the mtime of the local file in case in changes on disk. + $this->cachefile = $this->cacheDirectory . '/' . FILE_CACHE_PREFIX . $cachePrefix . md5($this->salt . $this->localImageMTime . $_SERVER ['QUERY_STRING'] . $this->fileCacheVersion) . FILE_CACHE_SUFFIX; + } + $this->debug(2, "Cache file is: " . $this->cachefile); - } + return true; + } + public function __destruct(){ + foreach($this->toDeletes as $del){ + $this->debug(2, "Deleting temp file $del"); + @unlink($del); + } + } + public function run(){ + if($this->isURL){ + if(! ALLOW_EXTERNAL){ + $this->debug(1, "Got a request for an external image but ALLOW_EXTERNAL is disabled so returning error msg."); + $this->error("You are not allowed to fetch images from an external website."); + return false; + } + $this->debug(3, "Got request for external image. Starting serveExternalImage."); + if($this->param('webshot')){ + if(WEBSHOT_ENABLED){ + $this->debug(3, "webshot param is set, so we're going to take a webshot."); + $this->serveWebshot(); + } else { + $this->error("You added the webshot parameter but webshots are disabled on this server. You need to set WEBSHOT_ENABLED == true to enable webshots."); + } + } else { + $this->debug(3, "webshot is NOT set so we're going to try to fetch a regular image."); + $this->serveExternalImage(); -} + } + } else { + $this->debug(3, "Got request for internal image. Starting serveInternalImage()"); + $this->serveInternalImage(); + } + return true; + } + protected function handleErrors(){ + if($this->haveErrors()){ + if(NOT_FOUND_IMAGE && $this->is404()){ + if($this->serveImg(NOT_FOUND_IMAGE)){ + exit(0); + } else { + $this->error("Additionally, the 404 image that is configured could not be found or there was an error serving it."); + } + } + if(ERROR_IMAGE){ + if($this->serveImg(ERROR_IMAGE)){ + exit(0); + } else { + $this->error("Additionally, the error image that is configured could not be found or there was an error serving it."); + } + } + $this->serveErrors(); + exit(0); + } + return false; + } + protected function tryBrowserCache(){ + if(BROWSER_CACHE_DISABLE){ $this->debug(3, "Browser caching is disabled"); return false; } + if(!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) ){ + $this->debug(3, "Got a conditional get"); + $mtime = false; + //We've already checked if the real file exists in the constructor + if(! is_file($this->cachefile)){ + //If we don't have something cached, regenerate the cached image. + return false; + } + if($this->localImageMTime){ + $mtime = $this->localImageMTime; + $this->debug(3, "Local real file's modification time is $mtime"); + } else if(is_file($this->cachefile)){ //If it's not a local request then use the mtime of the cached file to determine the 304 + $mtime = @filemtime($this->cachefile); + $this->debug(3, "Cached file's modification time is $mtime"); + } + if(! $mtime){ return false; } + $iftime = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']); + $this->debug(3, "The conditional get's if-modified-since unixtime is $iftime"); + if($iftime < 1){ + $this->debug(3, "Got an invalid conditional get modified since time. Returning false."); + return false; + } + if($iftime < $mtime){ //Real file or cache file has been modified since last request, so force refetch. + $this->debug(3, "File has been modified since last fetch."); + return false; + } else { //Otherwise serve a 304 + $this->debug(3, "File has not been modified since last get, so serving a 304."); + header ($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); + $this->debug(1, "Returning 304 not modified"); + return true; + } + } + return false; + } + protected function tryServerCache(){ + $this->debug(3, "Trying server cache"); + if(file_exists($this->cachefile)){ + $this->debug(3, "Cachefile {$this->cachefile} exists"); + if($this->isURL){ + $this->debug(3, "This is an external request, so checking if the cachefile is empty which means the request failed previously."); + if(filesize($this->cachefile) < 1){ + $this->debug(3, "Found an empty cachefile indicating a failed earlier request. Checking how old it is."); + //Fetching error occured previously + if(time() - @filemtime($this->cachefile) > WAIT_BETWEEN_FETCH_ERRORS){ + $this->debug(3, "File is older than " . WAIT_BETWEEN_FETCH_ERRORS . " seconds. Deleting and returning false so app can try and load file."); + @unlink($this->cachefile); + return false; //to indicate we didn't serve from cache and app should try and load + } else { + $this->debug(3, "Empty cachefile is still fresh so returning message saying we had an error fetching this image from remote host."); + $this->set404(); + $this->error("An error occured fetching image."); + return false; + } + } + } else { + $this->debug(3, "Trying to serve cachefile {$this->cachefile}"); + } + if($this->serveCacheFile()){ + $this->debug(3, "Succesfully served cachefile {$this->cachefile}"); + return true; + } else { + $this->debug(3, "Failed to serve cachefile {$this->cachefile} - Deleting it from cache."); + //Image serving failed. We can't retry at this point, but lets remove it from cache so the next request recreates it + @unlink($this->cachefile); + return true; + } + } + } + protected function error($err){ + $this->debug(3, "Adding error message: $err"); + $this->errors[] = $err; + return false; -/** - * - */ -function get_cache_file ($mime_type) { + } + protected function haveErrors(){ + if(sizeof($this->errors) > 0){ + return true; + } + return false; + } + protected function serveErrors(){ + header ($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request'); + $html = '
    '; + foreach($this->errors as $err){ + $html .= '
  • ' . htmlentities($err) . '
  • '; + } + $html .= '
'; + echo '

A TimThumb error has occured

The following error(s) occured:
' . $html . '
'; + echo '
Query String : ' . htmlentities ($_SERVER['QUERY_STRING']); + echo '
TimThumb version : ' . VERSION . ''; + } + protected function serveInternalImage(){ + $this->debug(3, "Local image path is $this->localImage"); + if(! $this->localImage){ + $this->sanityFail("localImage not set after verifying it earlier in the code."); + return false; + } + $fileSize = filesize($this->localImage); + if($fileSize > MAX_FILE_SIZE){ + $this->error("The file you specified is greater than the maximum allowed file size."); + return false; + } + if($fileSize <= 0){ + $this->error("The file you specified is <= 0 bytes."); + return false; + } + $this->debug(3, "Calling processImageAndWriteToCache() for local image."); + if($this->processImageAndWriteToCache($this->localImage)){ + $this->serveCacheFile(); + return true; + } else { + return false; + } + } + protected function cleanCache(){ + if (FILE_CACHE_TIME_BETWEEN_CLEANS < 0) { + return; + } + $this->debug(3, "cleanCache() called"); + $lastCleanFile = $this->cacheDirectory . '/timthumb_cacheLastCleanTime.touch'; + + //If this is a new timthumb installation we need to create the file + if(! is_file($lastCleanFile)){ + $this->debug(1, "File tracking last clean doesn't exist. Creating $lastCleanFile"); + if (!touch($lastCleanFile)) { + $this->error("Could not create cache clean timestamp file."); + } + return; + } + if(@filemtime($lastCleanFile) < (time() - FILE_CACHE_TIME_BETWEEN_CLEANS) ){ //Cache was last cleaned more than 1 day ago + $this->debug(1, "Cache was last cleaned more than " . FILE_CACHE_TIME_BETWEEN_CLEANS . " seconds ago. Cleaning now."); + // Very slight race condition here, but worst case we'll have 2 or 3 servers cleaning the cache simultaneously once a day. + if (!touch($lastCleanFile)) { + $this->error("Could not create cache clean timestamp file."); + } + $files = glob($this->cacheDirectory . '/*' . FILE_CACHE_SUFFIX); + if ($files) { + $timeAgo = time() - FILE_CACHE_MAX_FILE_AGE; + foreach($files as $file){ + if(@filemtime($file) < $timeAgo){ + $this->debug(3, "Deleting cache file $file older than max age: " . FILE_CACHE_MAX_FILE_AGE . " seconds"); + @unlink($file); + } + } + } + return true; + } else { + $this->debug(3, "Cache was cleaned less than " . FILE_CACHE_TIME_BETWEEN_CLEANS . " seconds ago so no cleaning needed."); + } + return false; + } + protected function processImageAndWriteToCache($localImage){ + $sData = getimagesize($localImage); + $origType = $sData[2]; + $mimeType = $sData['mime']; - global $lastModified; - static $cache_file; - - $file_type = '.png'; - - if (stristr ($mime_type, 'jpeg')) { - $file_type = '.jpg'; - } - - if (!$cache_file) { - $cache_file = DIRECTORY_CACHE . '/' . md5 ($_SERVER ['QUERY_STRING'] . VERSION . $lastModified) . $file_type; - } - - return $cache_file; - -} - - -/** - * check to if the url is valid or not - */ -function valid_extension ($ext) { - - if (preg_match ("/jpg|jpeg|png|gif/i", $ext)) { - return TRUE; - } else { - return FALSE; - } - -} - - -/** - * - */ -function checkExternal ($src) { - - global $allowedSites; - - if (preg_match ('/http:\/\//', $src) == true) { - - $url_info = parse_url ($src); - - $isAllowedSite = false; - foreach ($allowedSites as $site) { - $site = '/' . addslashes ($site) . '/'; - if (preg_match ($site, $url_info['host']) == true) { - $isAllowedSite = true; - } + $this->debug(3, "Mime type of image is $mimeType"); + if(! preg_match('/^image\/(?:gif|jpg|jpeg|png)$/i', $mimeType)){ + return $this->error("The image being resized is not a valid gif, jpg or png."); } - if ($isAllowedSite) { + if (!function_exists ('imagecreatetruecolor')) { + return $this->error('GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library'); + } - $fileDetails = pathinfo ($src); - $ext = strtolower ($fileDetails['extension']); + if (function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { + $imageFilters = array ( + 1 => array (IMG_FILTER_NEGATE, 0), + 2 => array (IMG_FILTER_GRAYSCALE, 0), + 3 => array (IMG_FILTER_BRIGHTNESS, 1), + 4 => array (IMG_FILTER_CONTRAST, 1), + 5 => array (IMG_FILTER_COLORIZE, 4), + 6 => array (IMG_FILTER_EDGEDETECT, 0), + 7 => array (IMG_FILTER_EMBOSS, 0), + 8 => array (IMG_FILTER_GAUSSIAN_BLUR, 0), + 9 => array (IMG_FILTER_SELECTIVE_BLUR, 0), + 10 => array (IMG_FILTER_MEAN_REMOVAL, 0), + 11 => array (IMG_FILTER_SMOOTH, 0), + ); + } - $filename = md5 ($src); - $local_filepath = DIRECTORY_TEMP . '/' . $filename . '.' . $ext; + // get standard input properties + $new_width = (int) abs ($this->param('w', 0)); + $new_height = (int) abs ($this->param('h', 0)); + $zoom_crop = (int) $this->param('zc', DEFAULT_ZC); + $quality = (int) abs ($this->param('q', DEFAULT_Q)); + $align = $this->cropTop ? 't' : $this->param('a', 'c'); + $filters = $this->param('f', DEFAULT_F); + $sharpen = (bool) $this->param('s', DEFAULT_S); + $canvas_color = $this->param('cc', DEFAULT_CC); + $canvas_trans = (bool) $this->param('ct', '1'); - if (!file_exists ($local_filepath)) { + // set default width and height if neither are set already + if ($new_width == 0 && $new_height == 0) { + $new_width = 100; + $new_height = 100; + } - if (function_exists ('curl_init')) { + // ensure size limits can not be abused + $new_width = min ($new_width, MAX_WIDTH); + $new_height = min ($new_height, MAX_HEIGHT); - $fh = fopen ($local_filepath, 'w'); - $ch = curl_init ($src); + // set memory limit to be able to have enough space to resize larger images + $this->setMemoryLimit(); - curl_setopt ($ch, CURLOPT_URL, $src); - curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE); - curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt ($ch, CURLOPT_HEADER, 0); - curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); - curl_setopt ($ch, CURLOPT_FILE, $fh); + // open the existing image + $image = $this->openImage ($mimeType, $localImage); + if ($image === false) { + return $this->error('Unable to open image.'); + } - if (curl_exec ($ch) === FALSE) { - if (file_exists ($local_filepath)) { - unlink ($local_filepath); - } - displayError ('error reading file ' . $src . ' from remote host: ' . curl_error($ch)); - } + // Get original width and height + $width = imagesx ($image); + $height = imagesy ($image); + $origin_x = 0; + $origin_y = 0; - curl_close ($ch); - fclose ($fh); + // generate new w/h if not provided + if ($new_width && !$new_height) { + $new_height = floor ($height * ($new_width / $width)); + } else if ($new_height && !$new_width) { + $new_width = floor ($width * ($new_height / $height)); + } - } else { + // scale down and add borders + if ($zoom_crop == 3) { - if (!$img = file_get_contents($src)) { - displayError('remote file for ' . $src . ' can not be accessed. It is likely that the file permissions are restricted'); - } + $final_height = $height * ($new_width / $width); - if (file_put_contents ($local_filepath, $img) == FALSE) { - displayError ('error writing temporary file'); - } + if ($final_height > $new_height) { + $new_width = $width * ($new_height / $height); + } else { + $new_height = $final_height; + } - } + } - if (!file_exists($local_filepath)) { - displayError('local file for ' . $src . ' can not be created'); - } + // create a new true color image + $canvas = imagecreatetruecolor ($new_width, $new_height); + imagealphablending ($canvas, false); + + if (strlen($canvas_color) == 3) { //if is 3-char notation, edit string into 6-char notation + $canvas_color = str_repeat(substr($canvas_color, 0, 1), 2) . str_repeat(substr($canvas_color, 1, 1), 2) . str_repeat(substr($canvas_color, 2, 1), 2); + } else if (strlen($canvas_color) != 6) { + $canvas_color = DEFAULT_CC; // on error return default canvas color + } + + $canvas_color_R = hexdec (substr ($canvas_color, 0, 2)); + $canvas_color_G = hexdec (substr ($canvas_color, 2, 2)); + $canvas_color_B = hexdec (substr ($canvas_color, 4, 2)); + + // Create a new transparent color for image + // If is a png and PNG_IS_TRANSPARENT is false then remove the alpha transparency + // (and if is set a canvas color show it in the background) + if(preg_match('/^image\/png$/i', $mimeType) && !PNG_IS_TRANSPARENT && $canvas_trans){ + $color = imagecolorallocatealpha ($canvas, $canvas_color_R, $canvas_color_G, $canvas_color_B, 127); + }else{ + $color = imagecolorallocatealpha ($canvas, $canvas_color_R, $canvas_color_G, $canvas_color_B, 0); + } + + + // Completely fill the background of the new image with allocated color. + imagefill ($canvas, 0, 0, $color); + + // scale down and add borders + if ($zoom_crop == 2) { + + $final_height = $height * ($new_width / $width); + + if ($final_height > $new_height) { + + $origin_x = $new_width / 2; + $new_width = $width * ($new_height / $height); + $origin_x = round ($origin_x - ($new_width / 2)); + + } else { + + $origin_y = $new_height / 2; + $new_height = $final_height; + $origin_y = round ($origin_y - ($new_height / 2)); } - $src = $local_filepath; + } + + // Restore transparency blending + imagesavealpha ($canvas, true); + + if ($zoom_crop > 0) { + + $src_x = $src_y = 0; + $src_w = $width; + $src_h = $height; + + $cmp_x = $width / $new_width; + $cmp_y = $height / $new_height; + + // calculate x or y coordinate and width or height of source + if ($cmp_x > $cmp_y) { + + $src_w = round ($width / $cmp_x * $cmp_y); + $src_x = round (($width - ($width / $cmp_x * $cmp_y)) / 2); + + } else if ($cmp_y > $cmp_x) { + + $src_h = round ($height / $cmp_y * $cmp_x); + $src_y = round (($height - ($height / $cmp_y * $cmp_x)) / 2); + + } + + // positional cropping! + if ($align) { + if (strpos ($align, 't') !== false) { + $src_y = 0; + } + if (strpos ($align, 'b') !== false) { + $src_y = $height - $src_h; + } + if (strpos ($align, 'l') !== false) { + $src_x = 0; + } + if (strpos ($align, 'r') !== false) { + $src_x = $width - $src_w; + } + } + + imagecopyresampled ($canvas, $image, $origin_x, $origin_y, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h); } else { - displayError('remote host "' . $url_info['host'] . '" not allowed'); + // copy and resize part of an image with resampling + imagecopyresampled ($canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); } - } + if ($filters != '' && function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { + // apply filters to image + $filterList = explode ('|', $filters); + foreach ($filterList as $fl) { - return $src; + $filterSettings = explode (',', $fl); + if (isset ($imageFilters[$filterSettings[0]])) { + for ($i = 0; $i < 4; $i ++) { + if (!isset ($filterSettings[$i])) { + $filterSettings[$i] = null; + } else { + $filterSettings[$i] = (int) $filterSettings[$i]; + } + } + + switch ($imageFilters[$filterSettings[0]][1]) { + + case 1: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1]); + break; + + case 2: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]); + break; + + case 3: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]); + break; + + case 4: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3], $filterSettings[4]); + break; + + default: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0]); + break; + + } + } + } + } + + // sharpen image + if ($sharpen && function_exists ('imageconvolution')) { + + $sharpenMatrix = array ( + array (-1,-1,-1), + array (-1,16,-1), + array (-1,-1,-1), + ); + + $divisor = 8; + $offset = 0; + + imageconvolution ($canvas, $sharpenMatrix, $divisor, $offset); + + } + //Straight from Wordpress core code. Reduces filesize by up to 70% for PNG's + if ( (IMAGETYPE_PNG == $origType || IMAGETYPE_GIF == $origType) && function_exists('imageistruecolor') && !imageistruecolor( $image ) && imagecolortransparent( $image ) > 0 ){ + imagetruecolortopalette( $canvas, false, imagecolorstotal( $image ) ); + } + + $imgType = ""; + $tempfile = tempnam($this->cacheDirectory, 'timthumb_tmpimg_'); + if(preg_match('/^image\/(?:jpg|jpeg)$/i', $mimeType)){ + $imgType = 'jpg'; + imagejpeg($canvas, $tempfile, $quality); + } else if(preg_match('/^image\/png$/i', $mimeType)){ + $imgType = 'png'; + imagepng($canvas, $tempfile, floor($quality * 0.09)); + } else if(preg_match('/^image\/gif$/i', $mimeType)){ + $imgType = 'gif'; + imagegif($canvas, $tempfile); + } else { + return $this->sanityFail("Could not match mime type after verifying it previously."); + } + + if($imgType == 'png' && OPTIPNG_ENABLED && OPTIPNG_PATH && @is_file(OPTIPNG_PATH)){ + $exec = OPTIPNG_PATH; + $this->debug(3, "optipng'ing $tempfile"); + $presize = filesize($tempfile); + $out = `$exec -o1 $tempfile`; //you can use up to -o7 but it really slows things down + clearstatcache(); + $aftersize = filesize($tempfile); + $sizeDrop = $presize - $aftersize; + if($sizeDrop > 0){ + $this->debug(1, "optipng reduced size by $sizeDrop"); + } else if($sizeDrop < 0){ + $this->debug(1, "optipng increased size! Difference was: $sizeDrop"); + } else { + $this->debug(1, "optipng did not change image size."); + } + } else if($imgType == 'png' && PNGCRUSH_ENABLED && PNGCRUSH_PATH && @is_file(PNGCRUSH_PATH)){ + $exec = PNGCRUSH_PATH; + $tempfile2 = tempnam($this->cacheDirectory, 'timthumb_tmpimg_'); + $this->debug(3, "pngcrush'ing $tempfile to $tempfile2"); + $out = `$exec $tempfile $tempfile2`; + $todel = ""; + if(is_file($tempfile2)){ + $sizeDrop = filesize($tempfile) - filesize($tempfile2); + if($sizeDrop > 0){ + $this->debug(1, "pngcrush was succesful and gave a $sizeDrop byte size reduction"); + $todel = $tempfile; + $tempfile = $tempfile2; + } else { + $this->debug(1, "pngcrush did not reduce file size. Difference was $sizeDrop bytes."); + $todel = $tempfile2; + } + } else { + $this->debug(3, "pngcrush failed with output: $out"); + $todel = $tempfile2; + } + @unlink($todel); + } + + $this->debug(3, "Rewriting image with security header."); + $tempfile4 = tempnam($this->cacheDirectory, 'timthumb_tmpimg_'); + $context = stream_context_create (); + $fp = fopen($tempfile,'r',0,$context); + file_put_contents($tempfile4, $this->filePrependSecurityBlock . $imgType . ' ?' . '>'); //6 extra bytes, first 3 being image type + file_put_contents($tempfile4, $fp, FILE_APPEND); + fclose($fp); + @unlink($tempfile); + $this->debug(3, "Locking and replacing cache file."); + $lockFile = $this->cachefile . '.lock'; + $fh = fopen($lockFile, 'w'); + if(! $fh){ + return $this->error("Could not open the lockfile for writing an image."); + } + if(flock($fh, LOCK_EX)){ + @unlink($this->cachefile); //rename generally overwrites, but doing this in case of platform specific quirks. File might not exist yet. + rename($tempfile4, $this->cachefile); + flock($fh, LOCK_UN); + fclose($fh); + @unlink($lockFile); + } else { + fclose($fh); + @unlink($lockFile); + @unlink($tempfile4); + return $this->error("Could not get a lock for writing."); + } + $this->debug(3, "Done image replace with security header. Cleaning up and running cleanCache()"); + imagedestroy($canvas); + imagedestroy($image); + return true; + } + protected function calcDocRoot(){ + $docRoot = @$_SERVER['DOCUMENT_ROOT']; + if (defined('LOCAL_FILE_BASE_DIRECTORY')) { + $docRoot = LOCAL_FILE_BASE_DIRECTORY; + } + if(!isset($docRoot)){ + $this->debug(3, "DOCUMENT_ROOT is not set. This is probably windows. Starting search 1."); + if(isset($_SERVER['SCRIPT_FILENAME'])){ + $docRoot = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF']))); + $this->debug(3, "Generated docRoot using SCRIPT_FILENAME and PHP_SELF as: $docRoot"); + } + } + if(!isset($docRoot)){ + $this->debug(3, "DOCUMENT_ROOT still is not set. Starting search 2."); + if(isset($_SERVER['PATH_TRANSLATED'])){ + $docRoot = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF']))); + $this->debug(3, "Generated docRoot using PATH_TRANSLATED and PHP_SELF as: $docRoot"); + } + } + if($docRoot && $_SERVER['DOCUMENT_ROOT'] != '/'){ $docRoot = preg_replace('/\/$/', '', $docRoot); } + $this->debug(3, "Doc root is: " . $docRoot); + $this->docRoot = $docRoot; + + } + protected function getLocalImagePath($src){ + $src = ltrim($src, '/'); //strip off the leading '/' + if(! $this->docRoot){ + $this->debug(3, "We have no document root set, so as a last resort, lets check if the image is in the current dir and serve that."); + //We don't support serving images outside the current dir if we don't have a doc root for security reasons. + $file = preg_replace('/^.*?([^\/\\\\]+)$/', '$1', $src); //strip off any path info and just leave the filename. + if(is_file($file)){ + return $this->realpath($file); + } + return $this->error("Could not find your website document root and the file specified doesn't exist in timthumbs directory. We don't support serving files outside timthumb's directory without a document root for security reasons."); + } //Do not go past this point without docRoot set + + //Try src under docRoot + if(file_exists ($this->docRoot . '/' . $src)) { + $this->debug(3, "Found file as " . $this->docRoot . '/' . $src); + $real = $this->realpath($this->docRoot . '/' . $src); + if(stripos($real, $this->docRoot) === 0){ + return $real; + } else { + $this->debug(1, "Security block: The file specified occurs outside the document root."); + //allow search to continue + } + } + //Check absolute paths and then verify the real path is under doc root + $absolute = $this->realpath('/' . $src); + if($absolute && file_exists($absolute)){ //realpath does file_exists check, so can probably skip the exists check here + $this->debug(3, "Found absolute path: $absolute"); + if(! $this->docRoot){ $this->sanityFail("docRoot not set when checking absolute path."); } + if(stripos($absolute, $this->docRoot) === 0){ + return $absolute; + } else { + $this->debug(1, "Security block: The file specified occurs outside the document root."); + //and continue search + } + } + + $base = $this->docRoot; + + // account for Windows directory structure + if (strstr($_SERVER['SCRIPT_FILENAME'],':')) { + $sub_directories = explode('\\', str_replace($this->docRoot, '', $_SERVER['SCRIPT_FILENAME'])); + } else { + $sub_directories = explode('/', str_replace($this->docRoot, '', $_SERVER['SCRIPT_FILENAME'])); + } + + foreach ($sub_directories as $sub){ + $base .= $sub . '/'; + $this->debug(3, "Trying file as: " . $base . $src); + if(file_exists($base . $src)){ + $this->debug(3, "Found file as: " . $base . $src); + $real = $this->realpath($base . $src); + if(stripos($real, $this->realpath($this->docRoot)) === 0){ + return $real; + } else { + $this->debug(1, "Security block: The file specified occurs outside the document root."); + //And continue search + } + } + } + return false; + } + protected function realpath($path){ + //try to remove any relative paths + $remove_relatives = '/\w+\/\.\.\//'; + while(preg_match($remove_relatives,$path)){ + $path = preg_replace($remove_relatives, '', $path); + } + //if any remain use PHP realpath to strip them out, otherwise return $path + //if using realpath, any symlinks will also be resolved + return preg_match('#^\.\./|/\.\./#', $path) ? realpath($path) : $path; + } + protected function toDelete($name){ + $this->debug(3, "Scheduling file $name to delete on destruct."); + $this->toDeletes[] = $name; + } + protected function serveWebshot(){ + $this->debug(3, "Starting serveWebshot"); + $instr = "Please follow the instructions at http://code.google.com/p/timthumb/ to set your server up for taking website screenshots."; + if(! is_file(WEBSHOT_CUTYCAPT)){ + return $this->error("CutyCapt is not installed. $instr"); + } + if(! is_file(WEBSHOT_XVFB)){ + return $this->Error("Xvfb is not installed. $instr"); + } + $cuty = WEBSHOT_CUTYCAPT; + $xv = WEBSHOT_XVFB; + $screenX = WEBSHOT_SCREEN_X; + $screenY = WEBSHOT_SCREEN_Y; + $colDepth = WEBSHOT_COLOR_DEPTH; + $format = WEBSHOT_IMAGE_FORMAT; + $timeout = WEBSHOT_TIMEOUT * 1000; + $ua = WEBSHOT_USER_AGENT; + $jsOn = WEBSHOT_JAVASCRIPT_ON ? 'on' : 'off'; + $javaOn = WEBSHOT_JAVA_ON ? 'on' : 'off'; + $pluginsOn = WEBSHOT_PLUGINS_ON ? 'on' : 'off'; + $proxy = WEBSHOT_PROXY ? ' --http-proxy=' . WEBSHOT_PROXY : ''; + $tempfile = tempnam($this->cacheDirectory, 'timthumb_webshot'); + $url = $this->src; + if(! preg_match('/^https?:\/\/[a-zA-Z0-9\.\-]+/i', $url)){ + return $this->error("Invalid URL supplied."); + } + $url = preg_replace('/[^A-Za-z0-9\-\.\_\~:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=]+/', '', $url); //RFC 3986 + //Very important we don't allow injection of shell commands here. URL is between quotes and we are only allowing through chars allowed by a the RFC + // which AFAIKT can't be used for shell injection. + if(WEBSHOT_XVFB_RUNNING){ + putenv('DISPLAY=:100.0'); + $command = "$cuty $proxy --max-wait=$timeout --user-agent=\"$ua\" --javascript=$jsOn --java=$javaOn --plugins=$pluginsOn --js-can-open-windows=off --url=\"$url\" --out-format=$format --out=$tempfile"; + } else { + $command = "$xv --server-args=\"-screen 0, {$screenX}x{$screenY}x{$colDepth}\" $cuty $proxy --max-wait=$timeout --user-agent=\"$ua\" --javascript=$jsOn --java=$javaOn --plugins=$pluginsOn --js-can-open-windows=off --url=\"$url\" --out-format=$format --out=$tempfile"; + } + $this->debug(3, "Executing command: $command"); + $out = `$command`; + $this->debug(3, "Received output: $out"); + if(! is_file($tempfile)){ + $this->set404(); + return $this->error("The command to create a thumbnail failed."); + } + $this->cropTop = true; + if($this->processImageAndWriteToCache($tempfile)){ + $this->debug(3, "Image processed succesfully. Serving from cache"); + return $this->serveCacheFile(); + } else { + return false; + } + } + protected function serveExternalImage(){ + if(! preg_match('/^https?:\/\/[a-zA-Z0-9\-\.]+/i', $this->src)){ + $this->error("Invalid URL supplied."); + return false; + } + $tempfile = tempnam($this->cacheDirectory, 'timthumb'); + $this->debug(3, "Fetching external image into temporary file $tempfile"); + $this->toDelete($tempfile); + #fetch file here + if(! $this->getURL($this->src, $tempfile)){ + @unlink($this->cachefile); + touch($this->cachefile); + $this->debug(3, "Error fetching URL: " . $this->lastURLError); + $this->error("Error reading the URL you specified from remote host." . $this->lastURLError); + return false; + } + + $mimeType = $this->getMimeType($tempfile); + if(! preg_match("/^image\/(?:jpg|jpeg|gif|png)$/i", $mimeType)){ + $this->debug(3, "Remote file has invalid mime type: $mimeType"); + @unlink($this->cachefile); + touch($this->cachefile); + $this->error("The remote file is not a valid image. Mimetype = '" . $mimeType . "'" . $tempfile); + return false; + } + if($this->processImageAndWriteToCache($tempfile)){ + $this->debug(3, "Image processed succesfully. Serving from cache"); + return $this->serveCacheFile(); + } else { + return false; + } + } + public static function curlWrite($h, $d){ + fwrite(self::$curlFH, $d); + self::$curlDataWritten += strlen($d); + if(self::$curlDataWritten > MAX_FILE_SIZE){ + return 0; + } else { + return strlen($d); + } + } + protected function serveCacheFile(){ + $this->debug(3, "Serving {$this->cachefile}"); + if(! is_file($this->cachefile)){ + $this->error("serveCacheFile called in timthumb but we couldn't find the cached file."); + return false; + } + $fp = fopen($this->cachefile, 'rb'); + if(! $fp){ return $this->error("Could not open cachefile."); } + fseek($fp, strlen($this->filePrependSecurityBlock), SEEK_SET); + $imgType = fread($fp, 3); + fseek($fp, 3, SEEK_CUR); + if(ftell($fp) != strlen($this->filePrependSecurityBlock) + 6){ + @unlink($this->cachefile); + return $this->error("The cached image file seems to be corrupt."); + } + $imageDataSize = filesize($this->cachefile) - (strlen($this->filePrependSecurityBlock) + 6); + $this->sendImageHeaders($imgType, $imageDataSize); + $bytesSent = @fpassthru($fp); + fclose($fp); + if($bytesSent > 0){ + return true; + } + $content = file_get_contents ($this->cachefile); + if ($content != FALSE) { + $content = substr($content, strlen($this->filePrependSecurityBlock) + 6); + echo $content; + $this->debug(3, "Served using file_get_contents and echo"); + return true; + } else { + $this->error("Cache file could not be loaded."); + return false; + } + } + protected function sendImageHeaders($mimeType, $dataSize){ + if(! preg_match('/^image\//i', $mimeType)){ + $mimeType = 'image/' . $mimeType; + } + if(strtolower($mimeType) == 'image/jpg'){ + $mimeType = 'image/jpeg'; + } + $gmdate_expires = gmdate ('D, d M Y H:i:s', strtotime ('now +10 days')) . ' GMT'; + $gmdate_modified = gmdate ('D, d M Y H:i:s') . ' GMT'; + // send content headers then display image + header ('Content-Type: ' . $mimeType); + header ('Accept-Ranges: none'); //Changed this because we don't accept range requests + header ('Last-Modified: ' . $gmdate_modified); + header ('Content-Length: ' . $dataSize); + if(BROWSER_CACHE_DISABLE){ + $this->debug(3, "Browser cache is disabled so setting non-caching headers."); + header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); + header("Pragma: no-cache"); + header('Expires: ' . gmdate ('D, d M Y H:i:s', time())); + } else { + $this->debug(3, "Browser caching is enabled"); + header('Cache-Control: max-age=' . BROWSER_CACHE_MAX_AGE . ', must-revalidate'); + header('Expires: ' . $gmdate_expires); + } + return true; + } + protected function securityChecks(){ + } + protected function param($property, $default = ''){ + if (isset ($_GET[$property])) { + return $_GET[$property]; + } else { + return $default; + } + } + protected function openImage($mimeType, $src){ + switch ($mimeType) { + case 'image/jpeg': + $image = imagecreatefromjpeg ($src); + break; + + case 'image/png': + $image = imagecreatefrompng ($src); + imagealphablending( $image, true ); + imagesavealpha( $image, true ); + break; + + case 'image/gif': + $image = imagecreatefromgif ($src); + break; + + default: + $this->error("Unrecognised mimeType"); + } + + return $image; + } + protected function getIP(){ + $rem = @$_SERVER["REMOTE_ADDR"]; + $ff = @$_SERVER["HTTP_X_FORWARDED_FOR"]; + $ci = @$_SERVER["HTTP_CLIENT_IP"]; + if(preg_match('/^(?:192\.168|172\.16|10\.|127\.)/', $rem)){ + if($ff){ return $ff; } + if($ci){ return $ci; } + return $rem; + } else { + if($rem){ return $rem; } + if($ff){ return $ff; } + if($ci){ return $ci; } + return "UNKNOWN"; + } + } + protected function debug($level, $msg){ + if(DEBUG_ON && $level <= DEBUG_LEVEL){ + $execTime = sprintf('%.6f', microtime(true) - $this->startTime); + $tick = sprintf('%.6f', 0); + if($this->lastBenchTime > 0){ + $tick = sprintf('%.6f', microtime(true) - $this->lastBenchTime); + } + $this->lastBenchTime = microtime(true); + error_log("TimThumb Debug line " . __LINE__ . " [$execTime : $tick]: $msg"); + } + } + protected function sanityFail($msg){ + return $this->error("There is a problem in the timthumb code. Message: Please report this error at timthumb's bug tracking page: $msg"); + } + protected function getMimeType($file){ + $info = getimagesize($file); + if(is_array($info) && $info['mime']){ + return $info['mime']; + } + return ''; + } + protected function setMemoryLimit(){ + $inimem = ini_get('memory_limit'); + $inibytes = timthumb::returnBytes($inimem); + $ourbytes = timthumb::returnBytes(MEMORY_LIMIT); + if($inibytes < $ourbytes){ + ini_set ('memory_limit', MEMORY_LIMIT); + $this->debug(3, "Increased memory from $inimem to " . MEMORY_LIMIT); + } else { + $this->debug(3, "Not adjusting memory size because the current setting is " . $inimem . " and our size of " . MEMORY_LIMIT . " is smaller."); + } + } + protected static function returnBytes($size_str){ + switch (substr ($size_str, -1)) + { + case 'M': case 'm': return (int)$size_str * 1048576; + case 'K': case 'k': return (int)$size_str * 1024; + case 'G': case 'g': return (int)$size_str * 1073741824; + default: return $size_str; + } + } + + protected function getURL($url, $tempfile){ + $this->lastURLError = false; + $url = preg_replace('/ /', '%20', $url); + if(function_exists('curl_init')){ + $this->debug(3, "Curl is installed so using it to fetch URL."); + self::$curlFH = fopen($tempfile, 'w'); + if(! self::$curlFH){ + $this->error("Could not open $tempfile for writing."); + return false; + } + self::$curlDataWritten = 0; + $this->debug(3, "Fetching url with curl: $url"); + $curl = curl_init($url); + curl_setopt ($curl, CURLOPT_TIMEOUT, CURL_TIMEOUT); + curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30"); + curl_setopt ($curl, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt ($curl, CURLOPT_HEADER, 0); + curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt ($curl, CURLOPT_WRITEFUNCTION, 'timthumb::curlWrite'); + @curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, true); + @curl_setopt ($curl, CURLOPT_MAXREDIRS, 10); + + $curlResult = curl_exec($curl); + fclose(self::$curlFH); + $httpStatus = curl_getinfo($curl, CURLINFO_HTTP_CODE); + if($httpStatus == 404){ + $this->set404(); + } + if($httpStatus == 302){ + $this->error("External Image is Redirecting. Try alternate image url"); + return false; + } + if($curlResult){ + curl_close($curl); + return true; + } else { + $this->lastURLError = curl_error($curl); + curl_close($curl); + return false; + } + } else { + $img = @file_get_contents ($url); + if($img === false){ + $err = error_get_last(); + if(is_array($err) && $err['message']){ + $this->lastURLError = $err['message']; + } else { + $this->lastURLError = $err; + } + if(preg_match('/404/', $this->lastURLError)){ + $this->set404(); + } + + return false; + } + if(! file_put_contents($tempfile, $img)){ + $this->error("Could not write to $tempfile."); + return false; + } + return true; + } + + } + protected function serveImg($file){ + $s = getimagesize($file); + if(! ($s && $s['mime'])){ + return false; + } + header ('Content-Type: ' . $s['mime']); + header ('Content-Length: ' . filesize($file) ); + header ('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); + header ("Pragma: no-cache"); + $bytes = @readfile($file); + if($bytes > 0){ + return true; + } + $content = @file_get_contents ($file); + if ($content != FALSE){ + echo $content; + return true; + } + return false; + + } + protected function set404(){ + $this->is404 = true; + } + protected function is404(){ + return $this->is404; + } } - - -/** - * tidy up the image source url - */ -function cleanSource ($src) { - $host = str_replace ('www.', '', $_SERVER['HTTP_HOST']); - $regex = "/^((ht|f)tp(s|):\/\/)(www\.|)" . $host . "/i"; - - $src = preg_replace ($regex, '', $src); - $src = strip_tags ($src); - $src = checkExternal ($src); - - // remove slash from start of string - if (strpos ($src, '/') === 0) { - $src = substr ($src, -(strlen ($src) - 1)); - } - - // don't allow users the ability to use '../' - // in order to gain access to files below document root - $src = preg_replace ("/\.\.+\//", "", $src); - - // get path to image on file system - $src = get_document_root ($src) . '/' . $src; - - return $src; - -} - - -/** - * - */ -function get_document_root ($src) { - - // check for unix servers - if (file_exists ($_SERVER['DOCUMENT_ROOT'] . '/' . $src)) { - return $_SERVER['DOCUMENT_ROOT']; - } - - // check from script filename (to get all directories to timthumb location) - $parts = array_diff (explode ('/', $_SERVER['SCRIPT_FILENAME']), explode('/', $_SERVER['DOCUMENT_ROOT'])); - $path = $_SERVER['DOCUMENT_ROOT']; - foreach ($parts as $part) { - $path .= '/' . $part; - if (file_exists($path . '/' . $src)) { - return $path; - } - } - - // the relative paths below are useful if timthumb is moved outside of document root - // specifically if installed in wordpress themes like mimbo pro: - // /wp-content/themes/mimbopro/scripts/timthumb.php - $paths = array ( - ".", - "..", - "../..", - "../../..", - "../../../..", - "../../../../.." - ); - - foreach ($paths as $path) { - if (file_exists($path . '/' . $src)) { - return $path; - } - } - - // special check for microsoft servers - if (!isset ($_SERVER['DOCUMENT_ROOT'])) { - $path = str_replace ("/", "\\", $_SERVER['ORIG_PATH_INFO']); - $path = str_replace ($path, "", $_SERVER['SCRIPT_FILENAME']); - - if (file_exists ($path . '/' . $src)) { - return $path; - } - } - - displayError ('file not found ' . $src); - -} - - -/** - * generic error message - */ -function displayError ($errorString = '') { - - header ('HTTP/1.1 400 Bad Request'); - echo '
' . htmlentities($errorString);
-	echo '
Query String : ' . $_SERVER['QUERY_STRING']; - echo '
TimThumb version : ' . VERSION . '
'; - die(); - -} -?> \ No newline at end of file diff --git a/src/wp-content/themes/lqdvi/timthumb.php.bak b/src/wp-content/themes/lqdvi/timthumb.php.bak new file mode 100644 index 00000000..2ceb60b3 --- /dev/null +++ b/src/wp-content/themes/lqdvi/timthumb.php.bak @@ -0,0 +1,804 @@ + +*/ + +/* +$sizeLimits = array( + "100x100", + "150x150", +); +*/ + +error_reporting(0); +ini_set("display_errors", 1); + +define ('CACHE_SIZE', 250); // number of files to store before clearing cache +define ('CACHE_CLEAR', 5); // maximum number of files to delete on each cache clear +define ('CACHE_USE', FALSE); // use the cache files? (mostly for testing) +define ('VERSION', '1.15'); // version number (to force a cache refresh) +define ('DIRECTORY_CACHE', './cache'); // cache directory +define ('DIRECTORY_TEMP', './temp'); // temp directory + +// external domains that are allowed to be displayed on your website +$allowedSites = array ( + 'flickr.com', + 'picasa.com', + 'blogger.com', + 'wordpress.com', + 'img.youtube.com', +); + + +// STOP MODIFYING HERE! +// -------------------- + +// check to see if GD function exist +if (!function_exists('imagecreatetruecolor')) { + displayError('GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library'); +} + +if (function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { + $imageFilters = array ( + 1 => array (IMG_FILTER_NEGATE, 0), + 2 => array (IMG_FILTER_GRAYSCALE, 0), + 3 => array (IMG_FILTER_BRIGHTNESS, 1), + 4 => array (IMG_FILTER_CONTRAST, 1), + 5 => array (IMG_FILTER_COLORIZE, 4), + 6 => array (IMG_FILTER_EDGEDETECT, 0), + 7 => array (IMG_FILTER_EMBOSS, 0), + 8 => array (IMG_FILTER_GAUSSIAN_BLUR, 0), + 9 => array (IMG_FILTER_SELECTIVE_BLUR, 0), + 10 => array (IMG_FILTER_MEAN_REMOVAL, 0), + 11 => array (IMG_FILTER_SMOOTH, 0), + ); +} + +// sort out image source +$src = get_request ('src', ''); +if ($src == '' || strlen ($src) <= 3) { + displayError ('no image specified'); +} + +// clean params before use +$src = cleanSource ($src); +// last modified time (for caching) +$lastModified = filemtime ($src); + +// get standard input properties +$new_width = preg_replace ("/[^0-9]+/", '', get_request('w', 0)); +$new_height = preg_replace ("/[^0-9]+/", '', get_request('h', 0)); +$zoom_crop = preg_replace ("/[^0-9]+/", '', get_request('zc', 1)); +$quality = preg_replace ("/[^0-9]+/", '', get_request('q', 90)); +$align = get_request ('a', 'c'); +$filters = get_request ('f', ''); +$sharpen = get_request ('s', 0); + +// set default width and height if neither are set already +if ($new_width == 0 && $new_height == 0) { + $new_width = 100; + $new_height = 100; +} + +// get mime type of src +$mime_type = mime_type ($src); + +// check to see if this image is in the cache already +check_cache ($mime_type); + +// if not in cache then clear some space and generate a new file +cleanCache(); + +// set memory limit to be able to have enough space to resize larger images +ini_set ('memory_limit', '50M'); + +// make sure that the src is gif/jpg/png +if (!valid_src_mime_type ($mime_type)) { + displayError ('Invalid src mime type: ' . $mime_type); +} + +if (strlen ($src) && file_exists ($src)) { + + // open the existing image + $image = open_image ($mime_type, $src); + if ($image === false) { + displayError ('Unable to open image : ' . $src); + } + + // Get original width and height + $width = imagesx ($image); + $height = imagesy ($image); + + // generate new w/h if not provided + if ($new_width && !$new_height) { + + $new_height = $height * ($new_width / $width); + + } elseif ($new_height && !$new_width) { + + $new_width = $width * ($new_height / $height); + + } elseif (!$new_width && !$new_height) { + + $new_width = $width; + $new_height = $height; + + } + + // create a new true color image + $canvas = imagecreatetruecolor ($new_width, $new_height); + imagealphablending ($canvas, false); + // Create a new transparent color for image + $color = imagecolorallocatealpha ($canvas, 0, 0, 0, 127); + // Completely fill the background of the new image with allocated color. + imagefill ($canvas, 0, 0, $color); + // Restore transparency blending + imagesavealpha ($canvas, true); + + if ($zoom_crop) { + + $src_x = $src_y = 0; + $src_w = $width; + $src_h = $height; + + $cmp_x = $width / $new_width; + $cmp_y = $height / $new_height; + + // calculate x or y coordinate and width or height of source + if ($cmp_x > $cmp_y) { + + $src_w = round (($width / $cmp_x * $cmp_y)); + $src_x = round (($width - ($width / $cmp_x * $cmp_y)) / 2); + + } elseif ($cmp_y > $cmp_x) { + + $src_h = round (($height / $cmp_y * $cmp_x)); + $src_y = round (($height - ($height / $cmp_y * $cmp_x)) / 2); + + } + + // positional cropping! + switch ($align) { + case 't': + case 'tl': + case 'lr': + case 'tr': + case 'rt': + $src_y = 0; + break; + + case 'b': + case 'bl': + case 'lb': + case 'br': + case 'rb': + $src_y = $height - $src_h; + break; + + case 'l': + case 'tl': + case 'lt': + case 'bl': + case 'lb': + $src_x = 0; + break; + + case 'r': + case 'tr': + case 'rt': + case 'br': + case 'rb': + $src_x = $width - $new_width; + $src_x = $width - $src_w; + + break; + + default: + + break; + } + + imagecopyresampled ($canvas, $image, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h); + + } else { + + // copy and resize part of an image with resampling + imagecopyresampled ($canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); + + } + + if ($filters != '' && function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { + // apply filters to image + $filterList = explode ('|', $filters); + foreach ($filterList as $fl) { + + $filterSettings = explode (',', $fl); + if (isset ($imageFilters[$filterSettings[0]])) { + + for ($i = 0; $i < 4; $i ++) { + if (!isset ($filterSettings[$i])) { + $filterSettings[$i] = null; + } else { + $filterSettings[$i] = (int) $filterSettings[$i]; + } + } + + switch ($imageFilters[$filterSettings[0]][1]) { + + case 1: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1]); + break; + + case 2: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]); + break; + + case 3: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]); + break; + + case 4: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3], $filterSettings[4]); + break; + + default: + + imagefilter ($canvas, $imageFilters[$filterSettings[0]][0]); + break; + + } + } + } + } + + if ($sharpen > 0 && function_exists('imageconvolution')) { + + $sharpenMatrix = array( + array(-1,-1,-1), + array(-1,16,-1), + array(-1,-1,-1), + ); + + $divisor = 8; + $offset = 0; + + imageconvolution ($canvas, $sharpenMatrix, $divisor, $offset); + + } + + // output image to browser based on mime type + show_image ($mime_type, $canvas); + + // remove image from memory + imagedestroy ($canvas); + +} else { + + if (strlen ($src)) { + displayError ('image ' . $src . ' not found'); + } else { + displayError ('no source specified'); + } + +} + +/** + * + */ +function show_image ($mime_type, $image_resized) { + + global $quality; + + // check to see if we can write to the cache directory + $is_writable = 0; + $cache_file = get_cache_file ($mime_type); + + if (touch ($cache_file)) { + + // give 666 permissions so that the developer + // can overwrite web server user + chmod ($cache_file, 0666); + $is_writable = 1; + + } else { + + $cache_file = NULL; + header ('Content-type: ' . $mime_type); + + } + + if (stristr ($mime_type, 'jpeg')) { + imagejpeg ($image_resized, $cache_file, $quality); + } else { + $quality = floor ($quality * 0.09); + imagepng ($image_resized, $cache_file, $quality); + } + + if ($is_writable) { + show_cache_file ($mime_type); + } + + imagedestroy ($image_resized); + + //displayError ('error showing image'); + +} + +/** + * + */ +function get_request( $property, $default = 0 ) { + + if( isset($_REQUEST[$property]) ) { + + return $_REQUEST[$property]; + + } else { + + return $default; + + } + +} + +/** + * + */ +function open_image ($mime_type, $src) { + + $mime_type = strtolower ($mime_type); + + if (stristr ($mime_type, 'gif')) { + + $image = imagecreatefromgif($src); + + } elseif (stristr ($mime_type, 'jpeg')) { + + @ini_set ('gd.jpeg_ignore_warning', 1); + $image = imagecreatefromjpeg($src); + + } elseif (stristr ($mime_type, 'png')) { + + $image = imagecreatefrompng($src); + + } + + return $image; + +} + +/** + * clean out old files from the cache + * you can change the number of files to store and to delete per loop in the defines at the top of the code + */ +function cleanCache() { + + $files = glob(DIRECTORY_CACHE . '/*', GLOB_BRACE); + + if (count($files) > 0) { + + $yesterday = time() - (24 * 60 * 60); + + usort($files, 'filemtime_compare'); + $i = 0; + + if (count($files) > CACHE_SIZE) { + + foreach ($files as $file) { + + $i ++; + + if ($i >= CACHE_CLEAR) { + return; + } + + if (@filemtime($file) > $yesterday) { + return; + } + + if (file_exists($file)) { + unlink($file); + } + + } + + } + + } + +} + + +/** + * compare the file time of two files + */ +function filemtime_compare($a, $b) { + + return filemtime ($a) - filemtime ($b); + +} + + +/** + * determine the file mime type + */ +function mime_type ($file) { + + if (stristr (PHP_OS, 'WIN')) { + $os = 'WIN'; + } else { + $os = PHP_OS; + } + + $mime_type = ''; + + if (function_exists ('mime_content_type') && $os != 'WIN') { + $mime_type = mime_content_type ($file); + } + + // use PECL fileinfo to determine mime type + if (!valid_src_mime_type ($mime_type)) { + if (function_exists ('finfo_open')) { + $finfo = @finfo_open (FILEINFO_MIME); + if ($finfo != '') { + $mime_type = finfo_file ($finfo, $file); + finfo_close ($finfo); + } + } + } + + // try to determine mime type by using unix file command + // this should not be executed on windows + if (!valid_src_mime_type ($mime_type) && $os != "WIN") { + if (preg_match ("/FreeBSD|FREEBSD|LINUX/", $os)) { + $mime_type = trim (@shell_exec ('file -bi ' . escapeshellarg($file))); + } + } + + // use file's extension to determine mime type + if (!valid_src_mime_type ($mime_type)) { + + // set defaults + $mime_type = 'image/png'; + // file details + $fileDetails = pathinfo ($file); + $ext = strtolower ($fileDetails["extension"]); + // mime types + $types = array ( + 'jpg' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'png' => 'image/png', + 'gif' => 'image/gif' + ); + + if (strlen ($ext) && strlen ($types[$ext])) { + $mime_type = $types[$ext]; + } + + } + + return $mime_type; + +} + + +/** + * + */ +function valid_src_mime_type ($mime_type) { + + if (preg_match ("/jpg|jpeg|gif|png/i", $mime_type)) { + return true; + } + + return false; + +} + + +/** + * + */ +function check_cache ($mime_type) { + + if (CACHE_USE) { + // make sure cache dir exists + if (!file_exists (DIRECTORY_CACHE)) { + // give 777 permissions so that developer can overwrite + // files created by web server user + mkdir (DIRECTORY_CACHE); + chmod (DIRECTORY_CACHE, 0777); + } + + show_cache_file ($mime_type); + } + +} + + +/** + * + */ +function show_cache_file ($mime_type) { + + $cache_file = get_cache_file ($mime_type); + + if (file_exists ($cache_file)) { + + $gmdate_mod = gmdate ("D, d M Y H:i:s", filemtime($cache_file)); + + if(! strstr ($gmdate_mod, "GMT")) { + $gmdate_mod .= " GMT"; + } + + if (isset ($_SERVER["HTTP_IF_MODIFIED_SINCE"])) { + + // check for updates + $if_modified_since = preg_replace ("/;.*$/", "", $_SERVER["HTTP_IF_MODIFIED_SINCE"]); + + if ($if_modified_since == $gmdate_mod) { + header ('HTTP/1.1 304 Not Modified'); + die(); + } + + } + + clearstatcache (); + $fileSize = filesize ($cache_file); + + // send headers then display image + header ('Content-Type: ' . $mime_type); + header ('Accept-Ranges: bytes'); + header ('Last-Modified: ' . $gmdate_mod); + header ('Content-Length: ' . $fileSize); + header ('Cache-Control: max-age=9999, must-revalidate'); + header ('Expires: ' . $gmdate_mod); + + if (!@readfile ($cache_file)) { + $content = file_get_contents ($cache_file); + if ($content != FALSE) { + echo $content; + die(); + } else { + displayError ('cache file could not be loaded'); + } + } + + die(); + + } + +} + + +/** + * + */ +function get_cache_file ($mime_type) { + + global $lastModified; + static $cache_file; + + $file_type = '.png'; + + if (stristr ($mime_type, 'jpeg')) { + $file_type = '.jpg'; + } + + if (!$cache_file) { + $cache_file = DIRECTORY_CACHE . '/' . md5 ($_SERVER ['QUERY_STRING'] . VERSION . $lastModified) . $file_type; + } + + return $cache_file; + +} + + +/** + * check to if the url is valid or not + */ +function valid_extension ($ext) { + + if (preg_match ("/jpg|jpeg|png|gif/i", $ext)) { + return TRUE; + } else { + return FALSE; + } + +} + + +/** + * + */ +function checkExternal ($src) { + + global $allowedSites; + + if (preg_match ('/http:\/\//', $src) == true) { + + $url_info = parse_url ($src); + + $isAllowedSite = false; + foreach ($allowedSites as $site) { + $site = '/' . addslashes ($site) . '/'; + if (preg_match ($site, $url_info['host']) == true) { + $isAllowedSite = true; + } + } + + if ($isAllowedSite) { + + $fileDetails = pathinfo ($src); + $ext = strtolower ($fileDetails['extension']); + + $filename = md5 ($src); + $local_filepath = DIRECTORY_TEMP . '/' . $filename . '.' . $ext; + + if (!file_exists ($local_filepath)) { + + if (function_exists ('curl_init')) { + + $fh = fopen ($local_filepath, 'w'); + $ch = curl_init ($src); + + curl_setopt ($ch, CURLOPT_URL, $src); + curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt ($ch, CURLOPT_HEADER, 0); + curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); + curl_setopt ($ch, CURLOPT_FILE, $fh); + + if (curl_exec ($ch) === FALSE) { + if (file_exists ($local_filepath)) { + unlink ($local_filepath); + } + displayError ('error reading file ' . $src . ' from remote host: ' . curl_error($ch)); + } + + curl_close ($ch); + fclose ($fh); + + } else { + + if (!$img = file_get_contents($src)) { + displayError('remote file for ' . $src . ' can not be accessed. It is likely that the file permissions are restricted'); + } + + if (file_put_contents ($local_filepath, $img) == FALSE) { + displayError ('error writing temporary file'); + } + + } + + if (!file_exists($local_filepath)) { + displayError('local file for ' . $src . ' can not be created'); + } + + } + + $src = $local_filepath; + + } else { + + displayError('remote host "' . $url_info['host'] . '" not allowed'); + + } + + } + + return $src; + +} + + +/** + * tidy up the image source url + */ +function cleanSource ($src) { + $host = str_replace ('www.', '', $_SERVER['HTTP_HOST']); + $regex = "/^((ht|f)tp(s|):\/\/)(www\.|)" . $host . "/i"; + + $src = preg_replace ($regex, '', $src); + $src = strip_tags ($src); + $src = checkExternal ($src); + + // remove slash from start of string + if (strpos ($src, '/') === 0) { + $src = substr ($src, -(strlen ($src) - 1)); + } + + // don't allow users the ability to use '../' + // in order to gain access to files below document root + $src = preg_replace ("/\.\.+\//", "", $src); + + // get path to image on file system + $src = get_document_root ($src) . '/' . $src; + + return $src; + +} + + +/** + * + */ +function get_document_root ($src) { + + // check for unix servers + if (file_exists ($_SERVER['DOCUMENT_ROOT'] . '/' . $src)) { + return $_SERVER['DOCUMENT_ROOT']; + } + + // check from script filename (to get all directories to timthumb location) + $parts = array_diff (explode ('/', $_SERVER['SCRIPT_FILENAME']), explode('/', $_SERVER['DOCUMENT_ROOT'])); + $path = $_SERVER['DOCUMENT_ROOT']; + foreach ($parts as $part) { + $path .= '/' . $part; + if (file_exists($path . '/' . $src)) { + return $path; + } + } + + // the relative paths below are useful if timthumb is moved outside of document root + // specifically if installed in wordpress themes like mimbo pro: + // /wp-content/themes/mimbopro/scripts/timthumb.php + $paths = array ( + ".", + "..", + "../..", + "../../..", + "../../../..", + "../../../../.." + ); + + foreach ($paths as $path) { + if (file_exists($path . '/' . $src)) { + return $path; + } + } + + // special check for microsoft servers + if (!isset ($_SERVER['DOCUMENT_ROOT'])) { + $path = str_replace ("/", "\\", $_SERVER['ORIG_PATH_INFO']); + $path = str_replace ($path, "", $_SERVER['SCRIPT_FILENAME']); + + if (file_exists ($path . '/' . $src)) { + return $path; + } + } + + displayError ('file not found ' . $src); + +} + + +/** + * generic error message + */ +function displayError ($errorString = '') { + + header ('HTTP/1.1 400 Bad Request'); + echo '
' . htmlentities($errorString);
+	echo '
Query String : ' . $_SERVER['QUERY_STRING']; + echo '
TimThumb version : ' . VERSION . '
'; + die(); + +} +?> \ No newline at end of file