Index: branches/1.0.x/in-commerce/img/zoom.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/products.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/products.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/products.elm.tpl (revision 13320) @@ -0,0 +1,372 @@ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + + + +

+ + + + + + +
+ +
+ + + + + + ">
+ + " class="link-product2"> + "><inp2:m_Phrase label=" width="15" height="17" border="0" vspace="4" style="vertical-align:middle" /> + + + + + + " class="link-product2"> + + "> + +
+ + + :
+
+ + : +
+ + + + : (%) +
+
+ + +
:
+
+ + +
+ + + + + +

+ + + + + + +
+ +
+ + + + + + + + + + + + + +
+ + + class="vertical-separator"> + +
+ + + +
+ + + + + + + " class="text-title">

+ +
+ + + + + + + + Index: branches/1.0.x/img/icon_favorite.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/menu_active_border.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/my_account/my_profile.tpl =================================================================== diff -u -N --- branches/1.0.x/my_account/my_profile.tpl (revision 0) +++ branches/1.0.x/my_account/my_profile.tpl (revision 13320) @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + *

+ + + + + +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + "/> + + +
+
+
+ + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/products_list.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/products_list.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/products_list.elm.tpl (revision 13320) @@ -0,0 +1,17 @@ + + + + + () + + + + + + +
+ + +
\ No newline at end of file Index: branches/1.0.x/elements/side_boxes/search.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/search.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/search.elm.tpl (revision 13320) @@ -0,0 +1,45 @@ + + + + +
"> + + + + + + + + + + + + + +
+ +
+ + + +
+ + + +
+ +
+ !" /> + + + \ No newline at end of file Index: branches/1.0.x/img/horizontal_dashed_line.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/img/credit_cards/master_card.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/tab_right_select.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/specials_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/specials_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/specials_products.tpl (revision 13320) @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/ic_mylinks46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/light_box_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/my_items.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/my_items.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/my_items.elm.tpl (revision 13320) @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/checkout/preview.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/preview.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/preview.tpl (revision 13320) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_options.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_options.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_options.elm.tpl (revision 13320) @@ -0,0 +1,183 @@ + + + + + + + + +
+ +

+
+

+
+ +
+ + + + +
+ +

+ +
+ +
+ + + + + + + "> + + + + + + + + "> + + + + + + + + + + "> + +
+ +
+
+ + / + +
+ +
+
+ " value="" tabindex="" style="width: 50px;"> +    +
+
+ + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ +
+
+
+ +
+
+ + + "> +
+ + + + : + + + + + + + (): + + + + + + + : + + + + + + + : + + + + + + + %: + + + + + + + + + + + + + + + + + + +
:
+ +
+

+
+ + +
+ : + +  " name="events[ord][OnUpdate]" id="events[ord][OnUpdate]"> +

+ + +
\ No newline at end of file Index: branches/1.0.x/in-commerce/checkout/shop_cart.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/shop_cart.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/shop_cart.tpl (revision 13320) @@ -0,0 +1,235 @@ + + + + + () + + + + + + + + + + () + + +
+ + + + + + + +
+ + + +
+
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
. 
+
+
+ + + + + + +
+ img/shopping_cart_item.gif" width="16" height="14" alt="" /> + + + "> + + + + + + +
+ + + + + + + + "> + + +
+ +
+ +
+ +
+ :
+ : + ')">[?] +
+ +
+ + +
+ + " style="width:20px" class="input-text" name="" /> + + + 1 + + Delete
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + :
+
+ + : + + "> + + :  + + +
+ : +
+
+
+
+ " /> +   + ')" value="" /> + + + + ">
+
+ " /> +
+ +
+
+ + + + +
"> + + + + + &w=180&h=46&style=white&variant=text&loc=en_US" height="46" width="180"> + + + &w=180&h=46&style=white&variant=text&loc=en_US" height="46" width="180"> + + +
+ + +
+
+ +
+ + + + + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/box_title_background_green.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/star_rate.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/searchbox_center.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/inc/styles.css =================================================================== diff -u -N --- branches/1.0.x/in-commerce/inc/styles.css (revision 0) +++ branches/1.0.x/in-commerce/inc/styles.css (revision 13320) @@ -0,0 +1,180 @@ +.link-picture-padding + { + padding:10px; + vertical-align:top; + } + +.link-text-padding + { + padding:10px; + vertical-align:top; + font-size:11px; + font-weight:bold; + font-family: Tahoma; + color: #484e53; + } + +.category-title + { + text-transform:uppercase; + color:#5b7604; + font-family: Tahoma, Arial, Helvetica, sans-serif; + font-size:11px; + font-weight:bold; + } + +.shopping-cart-cell-item-padding + { + padding:5px 8px; + vertical-align:middle; + } + +.shopping-cart-icpn-padding-right + { + padding-right:10px; + width:16px; + vertical-align:top; + } + +.cart-subtotal + { + background:#f4f4f4; + padding:5px 10px; + } + +.cart-item td { + color: #000000; + padding:10px; + border-bottom: 1px solid #989898; +} + +.cart-item-small td { + color: #000000; + padding: 2px 10px 2px 10px; + border-bottom: 1px solid #989898; +} + +.cart-subtotal-text + { + font-weight:bold; + font-size:12px; + } + +.shopping-cart-button-padding + { + padding:10px; + } + +.order-prewiew-padding-cell TD + { + padding:3px 13px; + } + +.order-padding-left TD + { + padding:6px 6px 0px 7px; + } + +.subtotal + { + font-size:13px; + font-weight:bold; + color:#0073B0 + } + +.grand-total-blue TD + { + font-size:15px; + font-weight:bold; + color:#0073B0 + } + +.credit-card-table td { + padding: 2px; +} + +/* --- Category Sidebox Styles --- */ +.top-category-padding { + padding: 3px 6px 0px 0px; + vertical-align: top; +} + +.top-category-title-padding + { + padding-bottom: 5px; + } + +a.top-category { + font-size: 11px; + color: #484e53; + font-family:Verdana, Arial, Helvetica, sans-serif; + text-decoration:none; +} + +a.top-category:hover { + text-decoration:none; + color: #000000; +} + +.sub-category-padding { + padding: 8px 2px 0px 10px; + vertical-align: top; +} + +.sub-category-text-padding { + padding: 3px 2px 0px 3px; + vertical-align: top; + font-size:10px; +} + +a.category { + color: #13547C; +} + +a.category:hover { + color: #000000; +} + +a.sub-category + { + color: #666666; + font-size:10px; + text-decoration:none; + } + +a.sub-category:hover + { + color: #000000; + text-decoration:none; + } + + +/* --- Product Pricing Styles --- */ +.product-price { + color: #D51410; + font-family: Tahoma; + font-size: 14px; + font-weight: bold; +} + +.product-price-large { + color: #CC0000; + font-size: 13px; + font-weight: bold; +} + +.product-price-msrp { + text-decoration: line-through; +} + +/* --- Order Preview & Checkout Process Styles --- */ +.order-grand-total td, .order-sub-total td { + color: #CC0000; + font-size: 13px; + font-weight: bold; +} + +.order-totals td { + padding: 5px; + vertical-align: top; +} \ No newline at end of file Index: branches/1.0.x/img/top_menu_select.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/img/buy2.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/vertical_dashed_line.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/activate_confirm.tpl =================================================================== diff -u -N --- branches/1.0.x/login/activate_confirm.tpl (revision 0) +++ branches/1.0.x/login/activate_confirm.tpl (revision 13320) @@ -0,0 +1,46 @@ + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + +

+ + + +

+ +
+
+ +
+
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_address.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_address.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_address.elm.tpl (revision 13320) @@ -0,0 +1,53 @@ + + + + + + + + *

+ +

+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "/> + +
+
\ No newline at end of file Index: branches/1.0.x/in-commerce/img/buy.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/tab_center_noselect.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/login_pending_disabled.tpl =================================================================== diff -u -N --- branches/1.0.x/login/login_pending_disabled.tpl (revision 0) +++ branches/1.0.x/login/login_pending_disabled.tpl (revision 13320) @@ -0,0 +1,36 @@ + + + + + + + + + + +
+
+ +
+
+ + + + + + + : + + +
+
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/footer_blue.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/forums_dir.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/menu_home.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/register_confirm_pending.tpl =================================================================== diff -u -N --- branches/1.0.x/login/register_confirm_pending.tpl (revision 0) +++ branches/1.0.x/login/register_confirm_pending.tpl (revision 13320) @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/searchbox_right.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/pick_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/pick_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/pick_products.tpl (revision 13320) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + +
+ + +
+ +
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/affiliates.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/affiliates.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/affiliates.elm.tpl (revision 13320) @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   +   +   + + : + + + : + + + + + + + + +   +   + + : + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "> +

+ + +
+ + + + + + + + "> + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+
+
+ \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/options_blocks.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/options_blocks.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/options_blocks.elm.tpl (revision 13320) @@ -0,0 +1,32 @@ + + + + ( ) + , + + + + + : + + + : + ( ) +
+
+ + + + , + + + + + : + + + : +
+
+ + \ No newline at end of file Index: branches/1.0.x/inc/lbox/scriptaculous.js =================================================================== diff -u -N --- branches/1.0.x/inc/lbox/scriptaculous.js (revision 0) +++ branches/1.0.x/inc/lbox/scriptaculous.js (revision 13320) @@ -0,0 +1,45 @@ +// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +var Scriptaculous = { + Version: '1.5.1', + require: function(libraryName) { + // inserting via DOM fails in Safari 2.0, so brute force approach + document.write(''); + }, + load: function() { + if((typeof Prototype=='undefined') || + parseFloat(Prototype.Version.split(".")[0] + "." + + Prototype.Version.split(".")[1]) < 1.4) + throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0"); + + $A(document.getElementsByTagName("script")).findAll( function(s) { + return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) + }).each( function(s) { + var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); + var includes = s.src.match(/\?.*load=([a-z,]*)/); + (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each( + function(include) { Scriptaculous.require(path+include+'.js') }); + }); + } +} + +Scriptaculous.load(); \ No newline at end of file Index: branches/1.0.x/in-commerce/checkout/shipping.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/shipping.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/shipping.tpl (revision 13320) @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/download.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/download.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/download.elm.tpl (revision 13320) @@ -0,0 +1,3 @@ + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/inc/script.js =================================================================== diff -u -N --- branches/1.0.x/in-commerce/inc/script.js (revision 0) +++ branches/1.0.x/in-commerce/inc/script.js (revision 13320) @@ -0,0 +1 @@ \ No newline at end of file Index: branches/1.0.x/in-commerce/products/add_review_pending_confirm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/add_review_pending_confirm.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/add_review_pending_confirm.tpl (revision 13320) @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + +

+ "> +
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/ic_myfavorites46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/recent_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/recent_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/recent_products.tpl (revision 13320) @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + () + + + + + + + +
+ + +
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/img/ic_myaffiliate46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/registration_fields.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/registration_fields.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/registration_fields.elm.tpl (revision 13320) @@ -0,0 +1,40 @@ + + + + + + "> + + + + + + " type="checkbox" id="RegisterAsAffiliate" name="RegisterAsAffiliate" onchange="toggle_affiliate()" checked/> + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/img/credit_cards/novus.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/forums_new_post.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/my_account/my_orders.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/my_orders.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/my_orders.tpl (revision 13320) @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + () + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+ + + + + \ No newline at end of file Index: branches/1.0.x/elements/side_boxes/mailing_list.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/mailing_list.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/mailing_list.elm.tpl (revision 13320) @@ -0,0 +1,21 @@ + + + + +
+
+ +
+
+ +
+
+ +
+ " /> + " /> +   + + + +
Index: branches/1.0.x/img/forums_no_new_post.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/menu_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/sorting.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/sorting.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/sorting.elm.tpl (revision 13320) @@ -0,0 +1,41 @@ + + + + + + + +
+ :  |  : + + : +
+
+
+
+ + + + + +
+
+ : + + + " value="" /> + +
+ +
+ + \ No newline at end of file Index: branches/1.0.x/img/pagenation_left.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/side_boxes/payment_seal.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/payment_seal.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/payment_seal.elm.tpl (revision 13320) @@ -0,0 +1,9 @@ + + + + +
+
Payment Processing
+
+ + Index: branches/1.0.x/img/banners/home/banner_all.jpg =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/featured_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/featured_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/featured_products.tpl (revision 13320) @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/inportal_logo.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/calendar_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/banners/home/banner1.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/background_table_blue.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/checkout/billing.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/billing.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/billing.tpl (revision 13320) @@ -0,0 +1,46 @@ + + + + + + + + + + + + +
+ + +
+ + + +
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/banners/home/banner3.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/form_options.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/form_options.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/form_options.elm.tpl (revision 13320) @@ -0,0 +1,156 @@ + + + +
"> + + + "> + "> + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + : + , + + + + + + ][]" name="qty[][]" value="0"> + + +    + + )"> + + + + + + + + + + + +
 
+
+ + + + :
+ img/s.gif" width="1" height="8" alt="" />
+ + + + + + + + + + + name="options[][][]" + id="options[][]_" + value="" /> + + + + + + name="options[][]" + id="options[][]_" + value="" /> + + + + + + + * : + + + + + + + + ][]" value=""/> + + + + + + + + + + + + + + + + + + + +
+
+ + " /> + + + " /> + + +

+
+
+
+ + \ No newline at end of file Index: branches/1.0.x/inc/lbox/lightbox.js =================================================================== diff -u -N --- branches/1.0.x/inc/lbox/lightbox.js (revision 0) +++ branches/1.0.x/inc/lbox/lightbox.js (revision 13320) @@ -0,0 +1,817 @@ +// ----------------------------------------------------------------------------------- +// +// Lightbox v2.03.3 +// by Lokesh Dhakar - http://www.huddletogether.com +// 5/21/06 +// +// For more information on this script, visit: +// http://huddletogether.com/projects/lightbox2/ +// +// Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/ +// +// Credit also due to those who have helped, inspired, and made their code available to the public. +// Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), Thomas Fuchs(mir.aculo.us), and others. +// +// +// ----------------------------------------------------------------------------------- +/* + + Table of Contents + ----------------- + Configuration + Global Variables + + Extending Built-in Objects + - Object.extend(Element) + - Array.prototype.removeDuplicates() + - Array.prototype.empty() + + Lightbox Class Declaration + - initialize() + - updateImageList() + - start() + - changeImage() + - resizeImageContainer() + - showImage() + - updateDetails() + - updateNav() + - enableKeyboardNav() + - disableKeyboardNav() + - keyboardAction() + - preloadNeighborImages() + - end() + + Miscellaneous Functions + - getPageScroll() + - getPageSize() + - getKey() + - listenKey() + - showSelectBoxes() + - hideSelectBoxes() + - showFlash() + - hideFlash() + - pause() + - initLightbox() + + Function Calls + - addLoadEvent(initLightbox) + +*/ +// ----------------------------------------------------------------------------------- + +// +// Configuration +// +var fileLoadingImage = inportalBase+'img/lbox/loading.gif'; +var fileBottomNavCloseImage = inportalBase+'img/lbox/closelabel.gif'; + +var overlayOpacity = 0.2; // controls transparency of shadow overlay + +var animate = true; // toggles resizing animations +var resizeSpeed = 7; // controls the speed of the image resizing animations (1=slowest and 10=fastest) + +var borderSize = 10; //if you adjust the padding in the CSS, you will need to update this variable + +// ----------------------------------------------------------------------------------- + +// +// Global Variables +// +var imageArray = new Array; +var activeImage; + +if(animate == true){ + overlayDuration = 0.2; // shadow fade in/out duration + if(resizeSpeed > 10){ resizeSpeed = 10;} + if(resizeSpeed < 1){ resizeSpeed = 1;} + resizeDuration = (11 - resizeSpeed) * 0.15; +} else { + overlayDuration = 0; + resizeDuration = 0; +} + +// ----------------------------------------------------------------------------------- + +// +// Additional methods for Element added by SU, Couloir +// - further additions by Lokesh Dhakar (huddletogether.com) +// +Object.extend(Element, { + getWidth: function(element) { + element = $(element); + return element.offsetWidth; + }, + setWidth: function(element,w) { + element = $(element); + element.style.width = w +"px"; + }, + setHeight: function(element,h) { + element = $(element); + element.style.height = h +"px"; + }, + setTop: function(element,t) { + element = $(element); + element.style.top = t +"px"; + }, + setLeft: function(element,l) { + element = $(element); + element.style.left = l +"px"; + }, + setSrc: function(element,src) { + element = $(element); + element.src = src; + }, + setHref: function(element,href) { + element = $(element); + element.href = href; + }, + setInnerHTML: function(element,content) { + element = $(element); + element.innerHTML = content; + } +}); + +// ----------------------------------------------------------------------------------- + +// +// Extending built-in Array object +// - array.removeDuplicates() +// - array.empty() +// +Array.prototype.removeDuplicates = function () { + for(i = 0; i < this.length; i++){ + for(j = this.length-1; j>i; j--){ + if(this[i][0] == this[j][0]){ + this.splice(j,1); + } + } + } +} + +// ----------------------------------------------------------------------------------- + +Array.prototype.empty = function () { + for(i = 0; i <= this.length; i++){ + this.shift(); + } +} + +// ----------------------------------------------------------------------------------- + +// +// Lightbox Class Declaration +// - initialize() +// - start() +// - changeImage() +// - resizeImageContainer() +// - showImage() +// - updateDetails() +// - updateNav() +// - enableKeyboardNav() +// - disableKeyboardNav() +// - keyboardNavAction() +// - preloadNeighborImages() +// - end() +// +// Structuring of code inspired by Scott Upton (http://www.uptonic.com/) +// +var Lightbox = Class.create(); + +Lightbox.prototype = { + + // initialize() + // Constructor runs on completion of the DOM loading. Calls updateImageList and then + // the function inserts html at the bottom of the page which is used to display the shadow + // overlay and the image container. + // + initialize: function() { + + this.updateImageList(); + + // Code inserts html at the bottom of the page that looks similar to this: + // + //
+ // + + + var objBody = document.getElementsByTagName("body").item(0); + + var objOverlay = document.createElement("div"); + objOverlay.setAttribute('id','overlay'); + objOverlay.style.display = 'none'; + objOverlay.onclick = function() { myLightbox.end(); } + objBody.appendChild(objOverlay); + + var objLightbox = document.createElement("div"); + objLightbox.setAttribute('id','lightbox'); + objLightbox.style.display = 'none'; + objLightbox.onclick = function(e) { // close Lightbox is user clicks shadow overlay + if (!e) var e = window.event; + var clickObj = Event.element(e).id; + if ( clickObj == 'lightbox') { + myLightbox.end(); + } + }; + objBody.appendChild(objLightbox); + + var objOuterImageContainer = document.createElement("div"); + objOuterImageContainer.setAttribute('id','outerImageContainer'); + objLightbox.appendChild(objOuterImageContainer); + + // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension. + // If animations are turned off, it will be hidden as to prevent a flicker of a + // white 250 by 250 box. + if(animate){ + Element.setWidth('outerImageContainer', 250); + Element.setHeight('outerImageContainer', 250); + } else { + Element.setWidth('outerImageContainer', 1); + Element.setHeight('outerImageContainer', 1); + } + + var objImageContainer = document.createElement("div"); + objImageContainer.setAttribute('id','imageContainer'); + objOuterImageContainer.appendChild(objImageContainer); + + var objLightboxImage = document.createElement("img"); + objLightboxImage.setAttribute('id','lightboxImage'); + objImageContainer.appendChild(objLightboxImage); + + var objHoverNav = document.createElement("div"); + objHoverNav.setAttribute('id','hoverNav'); + objImageContainer.appendChild(objHoverNav); + + var objPrevLink = document.createElement("a"); + objPrevLink.setAttribute('id','prevLink'); + objPrevLink.setAttribute('href','#'); + objHoverNav.appendChild(objPrevLink); + + var objNextLink = document.createElement("a"); + objNextLink.setAttribute('id','nextLink'); + objNextLink.setAttribute('href','#'); + objHoverNav.appendChild(objNextLink); + + var objLoading = document.createElement("div"); + objLoading.setAttribute('id','loading'); + objImageContainer.appendChild(objLoading); + + var objLoadingLink = document.createElement("a"); + objLoadingLink.setAttribute('id','loadingLink'); + objLoadingLink.setAttribute('href','#'); + objLoadingLink.onclick = function() { myLightbox.end(); return false; } + objLoading.appendChild(objLoadingLink); + + var objLoadingImage = document.createElement("img"); + objLoadingImage.setAttribute('src', fileLoadingImage); + objLoadingLink.appendChild(objLoadingImage); + + var objImageDataContainer = document.createElement("div"); + objImageDataContainer.setAttribute('id','imageDataContainer'); + objLightbox.appendChild(objImageDataContainer); + + var objImageData = document.createElement("div"); + objImageData.setAttribute('id','imageData'); + objImageDataContainer.appendChild(objImageData); + + var objImageDetails = document.createElement("div"); + objImageDetails.setAttribute('id','imageDetails'); + objImageData.appendChild(objImageDetails); + + var objCaption = document.createElement("span"); + objCaption.setAttribute('id','caption'); + objImageDetails.appendChild(objCaption); + + var objNumberDisplay = document.createElement("span"); + objNumberDisplay.setAttribute('id','numberDisplay'); + objImageDetails.appendChild(objNumberDisplay); + + var objBottomNav = document.createElement("div"); + objBottomNav.setAttribute('id','bottomNav'); + objImageData.appendChild(objBottomNav); + + var objBottomNavCloseLink = document.createElement("a"); + objBottomNavCloseLink.setAttribute('id','bottomNavClose'); + objBottomNavCloseLink.setAttribute('href','#'); + objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; } + objBottomNav.appendChild(objBottomNavCloseLink); + + var objBottomNavCloseImage = document.createElement("img"); + objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage); + objBottomNavCloseLink.appendChild(objBottomNavCloseImage); + }, + + + // + // updateImageList() + // Loops through anchor tags looking for 'lightbox' references and applies onclick + // events to appropriate links. You can rerun after dynamically adding images w/ajax. + // + updateImageList: function() { + if (!document.getElementsByTagName){ return; } + var anchors = document.getElementsByTagName('a'); + var areas = document.getElementsByTagName('area'); + + // loop through all anchor tags + for (var i=0; i 1){ + Element.show('numberDisplay'); + Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length); + } + + new Effect.Parallel( + [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration, from: 0.0, to: 1.0 }), + new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ], + { duration: resizeDuration, afterFinish: function() { + // update overlay size and update nav + var arrayPageSize = getPageSize(); + Element.setHeight('overlay', arrayPageSize[1]); + myLightbox.updateNav(); + } + } + ); + }, + + // + // updateNav() + // Display appropriate previous and next hover navigation. + // + updateNav: function() { + + Element.show('hoverNav'); + + // if not first image in set, display prev image button + if(activeImage != 0){ + Element.show('prevLink'); + document.getElementById('prevLink').onclick = function() { + myLightbox.changeImage(activeImage - 1); return false; + } + } + + // if not last image in set, display next image button + if(activeImage != (imageArray.length - 1)){ + Element.show('nextLink'); + document.getElementById('nextLink').onclick = function() { + myLightbox.changeImage(activeImage + 1); return false; + } + } + + this.enableKeyboardNav(); + }, + + // + // enableKeyboardNav() + // + enableKeyboardNav: function() { + document.onkeydown = this.keyboardAction; + }, + + // + // disableKeyboardNav() + // + disableKeyboardNav: function() { + document.onkeydown = ''; + }, + + // + // keyboardAction() + // + keyboardAction: function(e) { + if (e == null) { // ie + keycode = event.keyCode; + escapeKey = 27; + } else { // mozilla + keycode = e.keyCode; + escapeKey = e.DOM_VK_ESCAPE; + } + + key = String.fromCharCode(keycode).toLowerCase(); + + if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){ // close lightbox + myLightbox.end(); + } else if((key == 'p') || (keycode == 37)){ // display previous image + if(activeImage != 0){ + myLightbox.disableKeyboardNav(); + myLightbox.changeImage(activeImage - 1); + } + } else if((key == 'n') || (keycode == 39)){ // display next image + if(activeImage != (imageArray.length - 1)){ + myLightbox.disableKeyboardNav(); + myLightbox.changeImage(activeImage + 1); + } + } + + }, + + // + // preloadNeighborImages() + // Preload previous and next images. + // + preloadNeighborImages: function(){ + + if((imageArray.length - 1) > activeImage){ + preloadNextImage = new Image(); + preloadNextImage.src = imageArray[activeImage + 1][0]; + } + if(activeImage > 0){ + preloadPrevImage = new Image(); + preloadPrevImage.src = imageArray[activeImage - 1][0]; + } + + }, + + // + // end() + // + end: function() { + this.disableKeyboardNav(); + Element.hide('lightbox'); + new Effect.Fade('overlay', { duration: overlayDuration}); + showSelectBoxes(); + showFlash(); + } +} + +// ----------------------------------------------------------------------------------- + +// +// getPageScroll() +// Returns array with x,y page scroll values. +// Core code from - quirksmode.com +// +function getPageScroll(){ + + var xScroll, yScroll; + + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) {// all other Explorers + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + + arrayPageScroll = new Array(xScroll,yScroll) + return arrayPageScroll; +} + +// ----------------------------------------------------------------------------------- + +// +// getPageSize() +// Returns array with page width, height and window width, height +// Core code from - quirksmode.com +// Edit for Firefox by pHaez +// +function getPageSize(){ + + var xScroll, yScroll; + + if (window.innerHeight && window.scrollMaxY) { + xScroll = window.innerWidth + window.scrollMaxX; + yScroll = window.innerHeight + window.scrollMaxY; + } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac + xScroll = document.body.scrollWidth; + yScroll = document.body.scrollHeight; + } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari + xScroll = document.body.offsetWidth; + yScroll = document.body.offsetHeight; + } + + var windowWidth, windowHeight; + +// console.log(self.innerWidth); +// console.log(document.documentElement.clientWidth); + + if (self.innerHeight) { // all except Explorer + if(document.documentElement.clientWidth){ + windowWidth = document.documentElement.clientWidth; + } else { + windowWidth = self.innerWidth; + } + windowHeight = self.innerHeight; + } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode + windowWidth = document.documentElement.clientWidth; + windowHeight = document.documentElement.clientHeight; + } else if (document.body) { // other Explorers + windowWidth = document.body.clientWidth; + windowHeight = document.body.clientHeight; + } + + // for small pages with total height less then height of the viewport + if(yScroll < windowHeight){ + pageHeight = windowHeight; + } else { + pageHeight = yScroll; + } + +// console.log("xScroll " + xScroll) +// console.log("windowWidth " + windowWidth) + + // for small pages with total width less then width of the viewport + if(xScroll < windowWidth){ + pageWidth = xScroll; + } else { + pageWidth = windowWidth; + } +// console.log("pageWidth " + pageWidth) + + arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) + return arrayPageSize; +} + +// ----------------------------------------------------------------------------------- + +// +// getKey(key) +// Gets keycode. If 'x' is pressed then it hides the lightbox. +// +function getKey(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + key = String.fromCharCode(keycode).toLowerCase(); + + if(key == 'x'){ + } +} + +// ----------------------------------------------------------------------------------- + +// +// listenKey() +// +function listenKey () { document.onkeypress = getKey; } + +// --------------------------------------------------- + +function showSelectBoxes(){ + var selects = document.getElementsByTagName("select"); + for (i = 0; i != selects.length; i++) { + selects[i].style.visibility = "visible"; + } +} + +// --------------------------------------------------- + +function hideSelectBoxes(){ + var selects = document.getElementsByTagName("select"); + for (i = 0; i != selects.length; i++) { + selects[i].style.visibility = "hidden"; + } +} + +// --------------------------------------------------- + +function showFlash(){ + var flashObjects = document.getElementsByTagName("object"); + for (i = 0; i < flashObjects.length; i++) { + flashObjects[i].style.visibility = "visible"; + } + + var flashEmbeds = document.getElementsByTagName("embed"); + for (i = 0; i < flashEmbeds.length; i++) { + flashEmbeds[i].style.visibility = "visible"; + } +} + +// --------------------------------------------------- + +function hideFlash(){ + var flashObjects = document.getElementsByTagName("object"); + for (i = 0; i < flashObjects.length; i++) { + flashObjects[i].style.visibility = "hidden"; + } + + var flashEmbeds = document.getElementsByTagName("embed"); + for (i = 0; i < flashEmbeds.length; i++) { + flashEmbeds[i].style.visibility = "hidden"; + } + +} + + +// --------------------------------------------------- + +// +// pause(numberMillis) +// Pauses code execution for specified time. Uses busy code, not good. +// Help from Ran Bar-On [ran2103@gmail.com] +// + +function pause(ms){ + var date = new Date(); + curDate = null; + do{var curDate = new Date();} + while( curDate - date < ms); +} +/* +function pause(numberMillis) { + var curently = new Date().getTime() + sender; + while (new Date().getTime(); +} +*/ +// --------------------------------------------------- + + + +function initLightbox() { myLightbox = new Lightbox(); } +Event.observe(window, 'load', initLightbox, false); \ No newline at end of file Index: branches/1.0.x/img/banners/home/banner5.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/background_table_grey.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/order_preview.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/order_preview.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/order_preview.elm.tpl (revision 13320) @@ -0,0 +1,301 @@ + + + + + + + +
+ + + + + + + +
+
+ +
+ :
+ : +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
:
:
:
:
:
: + +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
:
:
:
:
:
:
: + +
+
+ + +
out/preview:m1--1-3-s-:ord---- +
+ +
:
:
:
:
:
+
+ + + + + + +
+ +
+
+ + + + + + + + +
+ +   + +
+ + + + + +
+ +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
.
+
+
+ + :
+
  +
+   + +   + + : +
+ + +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
():
:
:
%:
:
+
+
+ + + + + + + +
+
+ + + " class="button"> + + +
\ No newline at end of file Index: branches/1.0.x/img/banners/home/banner7.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/cards.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/inc/jquery/autoresize.jquery.js =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/autoresize.jquery.js (revision 0) +++ branches/1.0.x/inc/jquery/autoresize.jquery.js (revision 13320) @@ -0,0 +1,96 @@ +/* + * jQuery autoResize (textarea auto-resizer) + * @copyright James Padolsey http://james.padolsey.com + * @version 1.04 + */ + +(function($){ + + $.fn.autoResize = function(options) { + + // Just some abstracted details, + // to make plugin users happy: + var settings = $.extend({ + onResize : function(){}, + animate : true, + animateDuration : 150, + animateCallback : function(){}, + extraSpace : 20, + limit: 1000 + }, options); + + // Only textarea's auto-resize: + this.filter('textarea').each(function(){ + + // Get rid of scrollbars and disable WebKit resizing: + var textarea = $(this).css({resize:'none','overflow-y':'hidden'}), + + // Cache original height, for use later: + origHeight = textarea.height(), + + // Need clone of textarea, hidden off screen: + clone = (function(){ + + // Properties which may effect space taken up by chracters: + var props = ['height','width','lineHeight','textDecoration','letterSpacing'], + propOb = {}; + + // Create object of styles to apply: + $.each(props, function(i, prop){ + propOb[prop] = textarea.css(prop); + }); + + // Clone the actual textarea removing unique properties + // and insert before original textarea: + return textarea.clone().removeAttr('id').removeAttr('name').css({ + position: 'absolute', + top: 0, + left: -9999 + }).css(propOb).attr('tabIndex','-1').insertBefore(textarea); + + })(), + lastScrollTop = null, + updateSize = function() { + + // Prepare the clone: + clone.height(0).val($(this).val()).scrollTop(10000); + + // Find the height of text: + var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace, + toChange = $(this).add(clone); + + // Don't do anything if scrollTip hasen't changed: + if (lastScrollTop === scrollTop) { return; } + lastScrollTop = scrollTop; + + // Check for limit: + if ( scrollTop >= settings.limit ) { + $(this).css('overflow-y',''); + return; + } + // Fire off callback: + settings.onResize.call(this); + + // Either animate or directly apply height: + settings.animate && textarea.css('display') === 'block' ? + toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback) + : toChange.height(scrollTop); + }; + + // Bind namespaced handlers to appropriate events: + textarea + .unbind('.dynSiz') + .bind('keyup.dynSiz', updateSize) + .bind('keydown.dynSiz', updateSize) + .bind('change.dynSiz', updateSize); + + }); + + // Chain: + return this; + + }; + + + +})(jQuery); \ No newline at end of file Index: branches/1.0.x/img/icon_home.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/input_button_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/img/ic_mydownloads46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/side_boxes/recommend_site.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/recommend_site.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/recommend_site.elm.tpl (revision 13320) @@ -0,0 +1,16 @@ + + + + +
+
+ +
+
+ +
+
+
+ " /> + +
\ No newline at end of file Index: branches/1.0.x/in-commerce/_install/theme.xml =================================================================== diff -u -N --- branches/1.0.x/in-commerce/_install/theme.xml (revision 0) +++ branches/1.0.x/in-commerce/_install/theme.xml (revision 13320) @@ -0,0 +1,4 @@ + + in-commerce/designs/section + in-commerce/products/product_detail + \ No newline at end of file Index: branches/1.0.x/in-commerce/_install/english.lang =================================================================== diff -u -N --- branches/1.0.x/in-commerce/_install/english.lang (revision 0) +++ branches/1.0.x/in-commerce/_install/english.lang (revision 13320) @@ -0,0 +1,520 @@ + + m/d/Yg:i Am/d/Yg:i:s A.,utf-8http://docs.in-portal.org/eng/index.php2 + + UXR5 + QmFja29yZGVyZWQ= + UHJvZHVjdHMgYnkgbWFudWZhY3R1cmVy + YmFja29yZGVyZWQ= + U2hpcCBhbGwgaXRlbXMgdG9nZXRoZXI= + U2hpcCBiYWNrb3JkZXJzIHVwb24gYXZhaWxhYmxl + U2hpcCBiYWNrb3JkZXJlZCBpdGVtcyBzZXBhcmF0ZWx5 + TmV3IENvdXBvbg== + TmV3IERpc2NvdW50 + QWRkaXRpb25hbCBJbmZv + QWRkcmVzcyBpcyBsb2NrZWQgZm9yIG1vZGlmaWNhdGlvbnM= + QWRkcmVzcyBVc2VkIEFz + U3BsaXQgeW91ciBvcmRlciBhbmQgY2hhbmdlIHNoaXBwaW5nIG9wdGlvbnM= + QWZmaWxpYXRl + WW91ciBBZmZsaWF0ZSBhY2NvdW50IGlzIHBlbmRpbmcgb3IgZGlzYWJsZWQ= + QWZmaWxpYXRlIE1hdGVyaWFscw== + QWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIC0gbGlua3MsIGNvZGUgc2FtcGxlcywgYmFubmVycyBldGMu + QWZmaWxpYXRlIFBheW1lbnRz + TG9nIG9mIGNvbW1pc3Npb24gcGF5bWVudHM= + VGhhbmtzIHlvdS4gWW91ciBwYXltZW50IHR5cGUgaGFzIGJlZW4gY2hhbmdlZC4= + VmlzaXRzIGFuZCBvcmRlcnMgc3RhdGlzdGljcw== + QWxsIGF2YWlsYWJsZS9iYWNrb3JkZXJlZCBpdGVtcw== + SW5zdHJ1Y3Rpb25zIGFuZCBSZWd1bGF0aW9ucw== + QWRkcmVzcw== + Q2FyZCBFeHBpcmF0aW9u + Q2FyZCBUeXBl + Q29tcGFueQ== + Q3JlZGl0IENhcmQgTnVtYmVy + Q1ZWMg== + RS1tYWls + TmFtZSBvbiB0aGUgQ2FyZA== + QnV5IE5vdw== + RG93bmxvYWQgTm93 + TWFuYWdlIEFkZHJlc3Nlcw== + TmV3IEFkZHJlc3M= + UHJvY2VlZCB0byBwcmV2aWV3 + UmF0ZSBQcm9kdWN0 + UmF0ZSB0aGlzIHByb2R1Y3Q= + UmVtb3ZlIEZyb20gV2lzaCBMaXN0 + Q29tbWVudCB0aGlzIFByb2R1Y3Q= + VXBkYXRlIEFkZHJlc3M= + UmVjdXJyaW5nIE9yZGVyIENhbmNlbCBDb25maXJtYXRpb24= + UmVvY2N1cnJpbmcgYmlsbGluZyBpcyBjYW5jZWxlZC4= + QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbCB0aGlzIHJlY3VycmluZyBvcmRlcj8= + WW91ciByZWN1cnJpbmcgb3JkZXIgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNhbmNlbGxlZA== + Q2FuY2VsIFJlY3VycmluZyBPcmRlcg== + KGJhY2tvcmRlcmVkKQ== + Q2hlY2tvdXQ= + ZnJlZSBzaGlwcGluZw== + T3JkZXIgVG90YWw= + VG90YWwgSXRlbXM= + VmlldyBDYXJ0 + Q3JlZGl0IGNhcmQgaXMgZXhwaXJlZA== + Q3JlZGl0IGNhcmQgbnVtYmVyIGlzIGludmFsaWQ= + UGxlYXNlIGNvbXBsZXRlIHRoZSBmb3JtIGJlbG93IHRvIGNoYW5nZSB5b3VyIGFmZmlsaWF0ZSBwYXltZW50IHR5cGUuIFRoZSBjaGFuZ2Ugd2lsbCB0YWtlIGVmZmVjdCBzdGFydGluZyBmcm9tIHRoZSBuZXh0IHNjaGVkdWxlZCBhZmZpbGlhdGUgcGF5bWVudC4= + Q2hhbmdlIFBheW1lbnQgVHlwZQ== + UGF5bWVudCBvcHRpb25zIGZvciBhZmZpbGlhdGUgY29tbWlzc2lvbnM= + Q29tbWlzc2lvbiBlYXJuZWQ= + T3JkZXJz + T3JkZXIgIw== + VG90YWwgc2FsZXM= + UmVmZXJyZXI= + TWFuYWdlIHlvdXIgc2hpcHBpbmcgYW5kIGJpbGxpbmcgYWRkcmVzc2Vz + QWNjZXNzIER1cmF0aW9u + QWN0aW9ucw== + QWRkZWQ= + QWRkZWQgT24= + QWRkcmVzcw== + QWRkcmVzcyBMaW5l + QWRkcmVzc2Vz + QWRkIFRvIEZhdm9yaXRlcw== + QWRkIFRvIFdpc2ggTGlzdA== + QWR2YW5jZWQgU2VhcmNo + QWZmaWxpYXRl + YWZmaWxpYXRlIGFncmVlbWVudA== + WW91ciBhZmZpbGlhdGUgcmVnaXN0cmF0aW9uIGlzIHBlbmRpbmcgb3IgZGlzYWJsZWQuIElmIHlvdSBoYXZlIHJlZ2lzdGVyZWQgcmVjZW50bHksIHBsZWFzZSB3YWl0IHVudGlsIHRoZSBzaXRlIGFkbWluaXN0cmF0b3JzIGFwcHJvdmUgeW91ciBhcHBsaWNhdGlvbi4gWW91IHdpbGwgYmUgbm90aWZpZWQgdmlhIGUtbWFpbC4= + SW5zdHJ1Y3Rpb25zL0FkdmVydGlzaW5nIE1hdGVyaWFscw== + QWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIC0gbGlua3MsIGNvZGUgc2FtcGxlcywgYmFubmVycyBldGMu + UGF5bWVudHM= + RGlzcGxheXMgcGF5bWVudHMgc3RhdGlzdGljcw== + QWZmaWxpYXRlIFBheW1lbnQgVHlwZQ== + WW91ciBhZmZpbGlhdGUgcGF5bWVudCB0eXBlIGhhcyBiZWVuIGNoYW5nZWQu + QWZmaWxpYXRlIFJlZ2lzdHJhdGlvbg== + QWZmaWxpYXRlcw== + U3RhdGlzdGljcw== + QWZmaWxpYXRlIFN0YXRpc3RpY3M= + RGlzcGxheXMgdmlzdGVycyBhbmQgb3JkZXJzIHN0YXRpc3RpY3M= + QWZmaWxpYXRlcyBzZWN0aW9uIC0gZGlzcGxheXMgc3RhdGlzdGljcywgcGF5bWVudHMsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBhbmQgbW9yZQ== + SGVyZSBpcyB0aGUgSFRNTCBjb2RlIHdoaWNoIGNyZWF0ZXMgYSBsaW5rIHRvIG91ciBzaXRl + WW91IGNvdWxkIGNvcHkgYW5kIHBhc3RlIGl0IG9uIHlvdXIgcGFnZSB0byBjcmVhdGUgYSBsaW5rIGFuZCBzdGFydCByZWZlcmluZyBjdXN0b21lcnMgYW5kIGVhcm5pbmcgYWZmaWxpYXRlIGNvbW1pc3Npb24u + VG8gcmVmZXIgY3VzdG9tZXJzIHRvIG91ciBzaXRlIGFuZCBlYXJuIGFmZmlsaWF0ZSBjb21taXNzaW9uIHBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBVUkw= + SSBhZ3JlZSB0byBhZmZpbGlhdGUgYWdyZWVtZW50IHRlcm1zICZhbXA7IGNvbmRpdGlvbnM= + QW1vdW50 + QW1vdW50IFdpdGhvdXQgU2FsZXMgVGF4L1ZBVA== + QW5k + QW55 + QXZhaWxhYmlsaXR5 + QmVjb21lIEFuIEFmZmlsaWF0ZQ== + UGxlYXNlIGZpbGwgaW4gdGhlIGZvcm0gYmVsb3cgdG8gcmVnaXN0ZXIgYXMgYWZmaWxpYXRlLiBZb3Ugd2lsbCBiZSBub3RpZmllZCB2aWEgZS1tYWlsIHdoZW4geW91ciBhZmZpbGlhdGUgcmVnaXN0cmF0aW9uIGlzIGFwcHJvdmVkLg== + QmlsbGluZyBFbWFpbCAoaWYgaXQncyBkaWZmZXJlbnQgZnJvbSBzaGlwcGluZyk= + QmlsbGluZyBJbmZvcm1hdGlvbg== + QmlsbGluZyBPcHRpb25z + QmlydGggZGF0ZQ== + Qm90aA== + QnV5IE5vdw== + QnV5IFRoaXMgUHJvZHVjdA== + Q2FyZCBOdW1iZXI= + Q2FyZCBUeXBl + UHJpY2VzIG9mIG9uZSBvciBtb3JlIGl0ZW1zIGluIHlvdXIgc2hvcHBpbmcgY2FydCBoYXZlIGJlZW4gY2hhbmdlZCBkdWUgdG8geW91ciBsb2dpbiwgcGxlYXNlIHJldmlldyBjaGFuZ2VzLg== + Q2F0ZWdvcmllcw== + Q2hhbmdlIFBheW1lbnQgVHlwZQ== + UGxlYXNlIGNvbXBsZXRlIHRoZSBmb3JtIGJlbG93IHRvIGNoYW5nZSB5b3VyIGFmZmlsaWF0ZSBwYXltZW50IHR5cGUuIFRoZSBjaGFuZ2Ugd2lsbCB0YWtlIGVmZmVjdCBzdGFydGluZyBmcm9tIHRoZSBuZXh0IHNjaGVkdWxlZCBhZmZpbGlhdGUgcGF5bWVudC4= + QWZmaWxpYXRlIGNvbW1pc3Npb25zIHBheW1lbnQgb3B0aW9ucw== + Q2hhbmdlIFBheW1lbnQgVHlwZQ== + Q2hlY2tvdXQgU3RlcHM= + Q2hvb3NlIFBheW1lbnQgVHlwZQ== + Q2hvb3NlIEFmZmlsaWF0ZSBQbGFu + Q2l0eQ== + Q2xlYXIgQ2FydA== + Q2xlYXI= + QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgcHJvZHVjdHMgZnJvbSB5b3VyIHNob3BwaW5nIGNhcnQ/ + Q291cG9uIGNvZGUgaXMgZXhwaXJlZCwgYWxyZWFkeSB1c2VkIG9yIGRpc2FibGVkLg== + Q29taXNzaW9uIFBheW1lbnRz + Q29tbWVudHMvaW5zdHJ1Y3Rpb25z + Q29tcGFueQ== + Q29uZmlybWF0aW9u + Q29udGFpbnM= + Q29udGludWUgU2hvcHBpbmc= + Q291cG9uIGhhcyBiZWVuIGFwcGxpZWQu + Q291cG9uIENvZGU= + VGhlIGZvbGxvd2luZyA8aT48c3Ryb25nPmNvdXBvbiBjb2RlPC9zdHJvbmc+PC9pPiBoYXMgYmVlbiBhcHBsaWVk + WW91ciBjb3Vwb24gY29kZSBoYXMgbm90IGJlZW4gYXBwbGllZCBiZWNhdXNlIGl0J3Mgbm90IGVmZmVjdGl2ZSBmb3IgYW55IGl0ZW1zIGluIHlvdXIgY2FydCwgb3IgY3VycmVudCBkaXNjb3VudHMgZ2l2ZXMgeW91IGEgYmV0dGVyIHNhdmluZ3MgYW5kIHlvdSBjb3VsZCBzYXZlIHlvdXIgY291cG9uIGZvciBhbm90aGVyIG9yZGVyLg== + Q291cG9uIGhhcyBiZWVuIHJlbW92ZWQu + Q3JlYXRl + Q3VycmVudCBQYXltZW50IFR5cGU= + Q1ZWMiBoZWxw + RGF0ZQ== + QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFkZHJlc3M/ + RGVzY3JpcHRpb24= + RGV0YWlscw== + RGlzY291bnQ= + RGlzY291bnQgSW5mbw== + RG9lc24ndCBDb250YWlu + WW91IGhhdmUgbm90IGNyZWF0ZWQgYW55IGFkZHJlc3NlcyB5ZXQu + WW91IGRvbid0IGhhdmUgYW55IG9yZGVycyB5ZXQ= + WW91IGRvbid0IGhhdmUgYW55IGFmZmlsYXRlIHBheW1lbnRzIHlldC4= + WW91IGRvbid0IGhhdmUgYW55IHZpc2l0b3JzIHlldA== + TGluaw== + RG93bmxvYWQgTm93 + RG93bmxvYWRz + VGhlIGl0ZW1zIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQ= + RWRpdG9yJ3MgUGljaw== + RWRpdG9yJ3MgUGlja3M= + RWRpdCBPcHRpb25z + SWYgeW91IGhhdmUgPGk+PHN0cm9uZz5jb3Vwb24gY29kZTwvc3Ryb25nPjwvaT4sIGVudGVyIGl0IGhlcmU= + SWYgeW91IGhhdmUgPGk+PHN0cm9uZz5naWZ0IGNlcnRpZmljYXRlPC9zdHJvbmc+PC9pPiwgZW50ZXIgaXQgaGVyZQ== + UGxlYXNlIGVudGVyIHlvdXIgc2hpcHBpbmcgYWRkcmVzcy4gSW5jb21wbGV0ZSBvciBpbmNvcmVjdCBpbmZvcm1hdGlvbiBtYXkgcmVzdWx0IGluIGEgZGVsYXkgb3IgY2FuY2VsbGF0aW9uIG9mIHlvdXIgb3JkZXIu + WW91IGhhdmUgYWxyZWFkeSBjb21tZW50ZWQgdGhpcyBwcm9kdWN0IQ== + UGxlYXNlIGVudGVyIHZhbGlkIHNoaXBwaW5nIGFkZHJlc3MgdG8gZ2V0IHNoaXBwaW5nIHJhdGVzIGFuZCBvcHRpb25z + U29ycnksIGJ1dCBubyBzaGlwcGluZyB0eXBlcyBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3RlZCBhZGRyZXNzLiBQbGVhc2Ugc2VsZWN0IGRpZmZlcmVudCBhZGRyZXNzLCBvciBjb250YWN0IHNpdGUgYWRtaW5pc3RyYXRvcg== + RXhhY3RseSBJcw== + RXhwLg== + RmF4IE51bWJlcg== + RmVhdHVyZWQgSXRlbQ== + RmVhdHVyZWQgUHJvZHVjdHM= + RmllbGQgaXMgcmVxdWlyZWQ= + RmlsZW5hbWU= + RmlsZXM= + Rmlyc3QgbmFtZQ== + RnJlZQ== + WW91ciBmcmllbmQgZS1tYWls + WW91ciBmcmllbmQgbmFtZQ== + RnJvbQ== + RnVsbCBOYW1l + R2lmdCBDZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhcHBsaWVk + VGhlIGZvbGxvd2luZyA8aT48c3Ryb25nPmdpZnQgY2VydGlmaWNhdGU8L3N0cm9uZz48L2k+IGhhcyBiZWVuIGFwcGxpZWQ= + WW91ciBnaWZ0IGNlcnRpZmljYXRlIGhhcyBub3QgYmVlbiBhcHBsaWVkIGJlY2F1c2UgaXQncyBub3QgZWZmZWN0aXZlIGZvciBhbnkgaXRlbXMgaW4geW91ciBjYXJ0LCBvciBjdXJyZW50IGRpc2NvdW50cyBnaXZlcyB5b3UgYSBiZXR0ZXIgc2F2aW5ncyBhbmQgeW91IGNvdWxkIHNhdmUgeW91ciBnaWZ0IGNlcnRpZmljYXRlIGZvciBhbm90aGVyIG9yZGVyLg== + R2lmdCBDZXJ0aWZpY2F0ZSBoYXMgYmVlbiByZW1vdmVkLg== + R2lmdCBDZXJ0aWZpY2F0ZQ== + R3JhbmQgVG90YWw= + SSBBZ3JlZSB0bw== + QWRkaXRpb25hbCBJbWFnZXM= + QURESVRJT05BTCBJTUFHRVM= + SW5zdXJhbmNlIENvc3Q= + SW52YWxpZCBjb3Vwb24gY29kZSE= + SXMgbm90 + VGhpcyBpdGVtIGlzIGVsaWdpYmxlIGZvciB0aGUgZm9sbG93aW5nIGRpc2NvdW50 + S2V5d29yZHMgYXJlIHRvbyBzaG9ydA== + TGFzdCAzIG1vbnRocw== + TGFzdCA2IG1vbnRocw== + TGFzdCBtb250aA== + TGFzdCBuYW1l + TGFzdCB3ZWVr + TGFzdCB5ZWFy + TG9naW4= + TG9nb3V0 + TWFuYWdlIGFkZHJlc3Nlcw== + TWFudWZhY3R1cmVy + TWFudWZhY3R1cmVycw== + TWFudWZhY3R1cmVyIEEgdG8gWg== + TWFudWZhY3R1cmVyIFogdG8gQQ== + TWVzc2FnZQ== + TW9yZSBGaWxlcw== + TW9yZSBJbWFnZXM= + bW9yZQ== + bW9yZSBvcmRlcnM= + U29ycnksIGJ1dCB0aGUgcHJvZHVjdCB5b3UgaGF2ZSBzZWxlY3RlZCBpcyBvdXQgb2Ygc3RvY2su + U29ycnksIGJ1dCB0aGUgcXVhbnRpdHkgeW91IGhhdmUgc2VsZWN0ZWQgZm9yIG9uZSBvciBtb3JlIHByb2R1Y3RzIGluIHlvdXIgY2FydCBpcyBub3QgY3VycmVudGx5IGF2YWlsYmxlLiBNYXhpbXVtIGF2YWlsYmxlIHF1YW50aXR5IGhhcyBiZWVuIGxlZnQgaW4geW91ciBjYXJ0Lg== + SXRlbXMgcXVhbnRpdGVzIGFuZC9vciBvcmRlciB0eXBlcyBpbiB5b3UgY2FydCBoYXZlIGJlZW4gdXBkYXRlZC4gUGxlYXNlIHJldmlldyB0aGUgY2hhbmdlcyBiZWxvdyBiZWZvcmUgcHJvY2VlZGluZy4= + TVNSUA== + WW91IGhhdmUgdG8gYWdyZWUgdG8gYWZmaWxpYXRlIHRlcm1zICZhbXA7IGNvbmRpdGlvbnMgdG8gcmVnaXN0ZXIgYXMgYWZmaWxpYXRl + TXkgQWNjb3VudA== + TXkgQWRkcmVzc2Vz + TXkgT3JkZXJz + TmFtZQ== + VGl0bGUgQSB0byBa + TmFtZSBvbiB0aGUgQ2FyZA== + VGl0bGUgWiB0byBB + TmV3 + QWRkIG5ldyBhZGRyZXNz + TmV3IFByb2R1Y3Rz + Tm8= + Tm8gY3JpdGVyaWEgZW50ZXJlZCBvciBrZXl3b3JkcyBhcmUgdG9vIHNob3J0IQ== + VGhlcmUgaXMgbm8gZmlsZXMgYXZhaWxhYmxlIGZvciB0aGlzIHByb2R1Y3Qu + Tm8gcHJvZHVjdHMgZm91bmQgbWF0Y2hpbmcgeW91ciBjcml0ZXJpYQ== + Tm90ZQ== + T2s= + T2xkIHRvIFJlY2VudA== + T3B0aW9ucyBDb21iaW5hdGlvbg== + U2VsZWN0ZWQgb3B0aW9ucyBjb21iaW5hdGlvbiBpcyBjdXJyZW50bHkgbm90IGF2YWlsYWJsZQ== + UGxlYXNlIHNlbGVjdCB0aGUgb3B0aW9ucyBtYXJrZWQgd2l0aCA8c3BhbiBjbGFzcz0iZXJyb3IiPio8L3NwYW4+IGJlZm9yZSBwcm9jZWVkaW5n + T3I= + Q29tbWlzc2lvbg== + T3JkZXIgQ29tcGxldGVk + T3JkZXIgY291bnQ= + T3JkZXIgIw== + T3JkZXIgTnVtYmVy + T3JkZXIgUHJldmlldw== + T3JkZXJz + QWxsIG9mIHlvdXIgb3JkZXJz + WW91ciBvcmRlciBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcGxhY2Vk + T3JkZXIgVG90YWw= + T3JkZXIgQW1vdW50 + b3IgZW50ZXIgbmV3IGFkZHJlc3MgYmVsb3c= + cHJvZHVjdHM= + b3RoZXI= + T3VyIFByaWNl + T3V0IG9mIHN0b2Nr + QW1vdW50 + UGF5bWVudCBSZWZlcmVuY2U= + UGF5bWVudCBUeXBl + UGVyc29uYWwgSW5mb3JtYXRpb24= + VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gY2hhbmdlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gc3VjaCBhcyBOYW1lLCBQYXNzd29yZCBldGMu + UGhvbmUgTnVtYmVy + UGxlYXNlIGVudGVyIHlvdXIgYmlsbGluZyBhZGRyZXNzLiBJbmNvbXBsZXRlIG9yIGluY29yZWN0IGluZm9ybWF0aW9uIG1heSByZXN1bHQgaW4gYSBkZWxheSBvciBjYW5jZWxsYXRpb24gb2YgeW91ciBvcmRlci4= + UG9wdWxhcg== + UHJpY2U= + UHJpY2UgSGlnaCB0byBMb3c= + UHJpY2UgTG93IHRvIEhpZ2g= + UHJpY2luZw== + UHJvY2VlZCB0byBDaGVja291dA== + UHJvY2VlZCB0byBCaWxsaW5n + UHJvY2Vzc2luZyBGZWU= + UHJvZHVjdCBEZXNjcmlwdGlvbg== + UHJvZHVjdCBEZXRhaWxz + RmlsZXM= + UHJvZHVjdHM= + UHJvZHVjdHMgQnk= + UHJvZHVjdHMgVG90YWw= + UXR5 + UXVhbnRpdHk= + UXVhbnRpdHkgUHJpY2luZw== + QXZlcmFnZQ== + RXhjZWxsZW50 + RmFpcg== + R29vZA== + UG9vcg== + UmF0ZSBQcm9kdWN0 + UmF0ZSBUaGlzIFByb2R1Y3Q= + VmVyeSBHb29k + UmVjZW50bHkgVmlld2VkIEl0ZW1z + UmVjZW50IE9yZGVycw== + UmVjZW50IHRvIE9sZA== + UmVjb21tZW5k + UmVjb21tZW5kIFRoaXMgUHJvZHVjdA== + UmVmZXJlciBVUkw= + UmVnaXN0ZXIgQXMgQWZmaWxpYXRl + UmVnaXN0cmF0aW9u + UmVndWxhciBQcmljZQ== + UmVsYXRlZCBQcm9kdWN0cw== + UmVsZXZhbmNl + UmVtb3Zl + UmVtb3ZlIGZyb20gV2lzaCBMaXN0 + UmVtb3Zl + Q29tbWVudCBieQ== + Q29tbWVudCBwcm9kdWN0 + Q29tbWVudHM= + Q29tbWVudCB0aGlzIHByb2R1Y3Q= + U2VhcmNoIEluIFJlc3VsdHM= + U2VhcmNoIFJlc3VsdHM= + U2VsZWN0 + UGxlYXNlIHNlbGVjdCB5b3VyIGFkZHJlc3M= + U2VsZWN0IE9wdGlvbnM= + U2VuZCBwYXNzd29yZA== + U2hpcG1lbnQgaW5mb3JtYXRpb24= + U2hpcHBpbmcgY29zdA== + U2hpcHBpbmcgSW5mb3JtYXRpb24= + U2hpcHBpbmcgT3B0aW9ucw== + U2hpcHBpbmcgVG90YWw= + VHJhY2tpbmcvUmVmZXJlbmNlIE51bWJlcg== + VGhlIHByb2R1Y3RzIGluIHlvdXIgY2FydCBoYXZlIGRpZmZlcmVudCBzaGlwcGluZyBvcHRpb25zLiBUaGUgc2hpcHBpbmcgb3B0aW9ucyBhbGxvd2VkIGZvciBhbGwgdGhlIHByb2R1Y3RzIGluIHlvdXIgY2FydCBhcmUgZGlzcGxheWVkIGJlbG93LiBJZiB5b3UnZCBsaWtlIHRvIG1hbnVhbGx5IGFkanVzdCB0aGUgc2hpcHBpbmcgZm9yIGV2ZXJ5IGdyb3VwIG9mIHByb2R1Y3RzIGNsaWNrIHRoZSBjaGVja2JveCBiZWxvdw== + dGhlIHByb2R1Y3RzIGluIHlvdXIgc2hvcHBpbmcgY2FydCBjYW4ndCBiZSBzaGlwcGVkIGluIG9uZSBzaGlwbWVudCBiZWNhdXNlIG9mIGRpZmZlcmVudCBzaGlwcGluZyBvcHRpb25zLiBZb3VyIG9yZGVyIHdpbGwgYmUgc3BsaXQgYW5kIHNvbWUgcHJvZHVjdHMgd2lsbCBiZSBzaGlwcGVkIHNlcGFyYXRlbHkuIFBsZWFzZSBzZWxlY3QgdGhlIHNoaXBwaW5nIGZvciBlYWNoIGdyb3VwIG9mIHByb2R1Y3RzIGJlbG93Lg== + U2l6ZQ== + U29ydA== + U29ydCBieQ== + U1NOL1RheCBJZC9WQVQgTnVtYmVy + U3RhdHVz + U3ViLUNhdGVnb3JpZXM= + U3Vic2NyaWJl + U3VidG90YWw= + dGVybXMgJmFtcDsgY29uZGl0aW9ucw== + VGVybXMgQW5kIENvbmRpdGlvbnM= + QWZmaWxpYXRlIGFncmVlbWVudCwgdGVybXMgJmFtcDsgY29uZGl0aW9ucw== + VGhhbmsgWW91 + VGhhbmsgeW91IGZvciByZWdpc3RlcmluZyBhcyBhZmZpbGlhdGUuIFlvdSB3aWxsIGJlIG5vdGlmaWVkIHZpYSBlLW1haWwgd2hlbiB5b3VyIHJlZ2lzdHJhdGlvbiBpcyBhcHByb3ZlZC4= + VG8= + VG9kYXk= + VG9wIFNlbGxlcg== + VG9wIFNlbGxlcnM= + VG90YWw= + Q29tbWlzc2lvbiBFYXJuZWQ= + T3JkZXIgVG90YWwgQW1vdW50 + T3JkZXJz + VG90YWwgU2F2aW5ncw== + VmlzaXRvcnM= + WW91IG1heSBhbHNvIHdpc2ggdG8gdHJ5IG91ciByZWNvbW1lbmRlZCBwcm9kdWN0cw== + WW91IG1heSBhbHNvIHdpc2ggdG8gdHJ5IG91ciByZWNvbW1lbmRlZCBwcm9kdWN0cw== + VW5zdWJzY3JpYmU= + VXBkYXRl + VXBkYXRlIEFkZHJlc3M= + VXBkYXRlIENhcnQ= + VXBkYXRlIE9wdGlvbnM= + VXBkYXRlIFNoaXBwaW5n + U2FsZXMgVGF4L1ZBVA== + VmVyc2lvbg== + VmlldyBSZWxhdGVkIFByb2R1Y3Rz + VmlldyBjb21tZW50cw== + V2VsY29tZQ== + V2lzaCBMaXN0 + VGhlIGl0ZW1zIHlvdSBoYXZlIGFkZGVkIHRvIHRoZSB3aXNoIGxpc3Q= + WWVz + WWVzdGVyZGF5 + WW91IGhhdmUgb25lIG9yIG1vcmUgYmFja29yZGVyZWQgaXRlbXMgb24geW91ciBzaG9wcGluZyBjYXJ0LiBQbGVhc2UsIHNlbGVjdCBvbmUgb2YgdGhlIGZvbGxvd2luZyBzaGlwbWVudCBvcHRpb24gdGhhdCBtaWd0aCBhZmZlY3QgeW91ciBzaGlwbWVudCBjb3N0 + WW91ciBTaG9wcGluZyBDYXJ0 + WW91ciBzaG9wcGluZyBjYXJ0IGlzIGVtcHR5 + WW91IGhhdmUgbm8gZG93bmxvYWRhYmxlIHByb2R1Y3RzIHB1cmNoYXNlZCB5ZXQu + WW91ciBEb3dubG9hZHM= + WW91ciBlLW1haWw= + WW91ciBuYW1l + WW91ciBQcmljZQ== + RW50ZXIgeW91ciBjb21tZW50 + WW91ciBXaXNoIExpc3Q= + WW91ciB3aXNoIGxpc3QgaXMgZW1wdHk= + WmlwIGNvZGU= + Wm9vbSBJbWFnZQ== + Q29udGFjdCBJbmZvcm1hdGlvbg== + Q29udGFjdCBpbmZvcm1hdGlvbg== + UGF5bWVudCB0eXBl + Q3VzdG9tZXIgTG9naW4= + VGhyZWUtZGlnaXQgbnVtYmVyIHByaW50ZWQgaW4gdGhlIHNpZ25hdHVyZSBzcGFjZSBvbiB0aGUgYmFjayBvZiBWSVNBLCBNYXN0ZXJDYXJkIGFuZCBEaXNjb3Zlci4gRm91ci1kaWdpdCBudW1iZXIgb24gdGhlIGZyb250IG9mIEFtZXJpY2FuIEV4cHJlc3M= + RGFpbHkgRGVhbHM= + WW91ciBBZmZpbGlhdGUgQWNjb3VudCBJbmZvcm1hdGlvbg== + TWFuYWdlIHlvdXIgc2hpcHBpbmcgYW5kIGJpbGxpbmcgYWRkcmVzc2VzIGhlcmU= + UHVyY2hhc2VkIERvd25sb2Fkcw== + TGlzdCBvZiBwbGFjZWQgT3JkZXJz + Tm8gb3JkZXJz + Tm8gcGF5bWVudHM= + Tm8gdmlzaXRvcnM= + RW50ZXIgQmlsbGluZyBJbmZvcm1hdGlvbg== + U2hpcHBpbmcgQWRkcmVzcw== + RmF4 + WW91IGhhdmUgYWxyZWFkeSByYXRlZCB0aGlzIHByb2R1Y3Qh + RGVzY3JpcHRpb24gZXhjZXJwdA== + SXRlbSBJcyBhIE5ldyBQcm9kdWN0 + SXRlbSBJcyBhIFBvcHVsYXIgUHJvZHVjdA== + UHJpY2U= + UHJvZHVjdCBJRA== + VGl0bGU= + U0tV + QWRkZWQgb24= + Q29tbWVudHM= + UGF5bWVudCB0eXBl + RG93bmxvYWQgTGluaw== + RGVmYXVsdCBCaWxsaW5nIEFkZHJlc3M= + RGVmYXVsdCBTaGlwcGluZyBBZGRyZXNz + TWFudWZhY3R1cmVy + TVNSUA== + T3VyIFByaWNl + QmVjb21lIGFuIEFmZmlsaWF0ZQ== + UmV0dXJucw== + U0tV + U29jaWFsIFNlY3VyaXR5ICM= + WW91IFNhdmU= + b3IgZW50ZXIgbmV3IGFkZHJlc3M= + UHJvZmlsZSBhZGRyZXNz + SWYgeW91IGZvcmdvdCB5b3VyIHBhc3N3b3JkIGNsaWNr + SXRlbXM= + a2c= + RGVmYXVsdCBCaWxsaW5nIEFkZHJlc3M= + RGVmYXVsdCBTaGlwcGluZyBBZGRyZXNz + TWF0ZXJpYWxz + T25lIG9yIG1vcmUgcHJvZHVjdCBpbiB5b3VyIGNhcnQgcmVxdWlyZXMgbWluaW11bSBxdWFudGl0eSBmb3IgcHVyY2hhc2UuIFlvdXIgY2FydCBoYXMgYmVlbiBhZGp1c3RlZCBhY2NvcmRpbmdseQ== + bW9yZQ== + TXVsdGlwbGUgU2hpcHBpbmcgVHlwZXM= + TXkgQWRkcmVzc2Vz + TXkgRG93bmxvYWRz + TXkgT3JkZXJz + Tm8gb3JkZXJz + Tm8gUHJvZHVjdHM= + bi9h + QWRkIG5ldyBhZGRyZXNz + UGxhY2UgT3JkZXI= + T3RoZXIgcHJvZHVjdHMgYnk= + b3VuY2Vz + UGF5bWVudCBhbW91bnQ= + UGF5bWVudCByZWZlcmVuY2U= + UGF5bWVudHM= + UGxlYXNlIExvZ2lu + cG91bmRz + UHJvZHVjdHMgdXBkYXRlZA== + SSB0aG91Z2h0IHlvdSBtaWdodCBiZSBpbnRlcmVzdGVkIGluIHRoaXMgaXRlbS4= + VGhhbmsgeW91IGZvciByZWNvbW1lbmRpbmcgdGhpcyBwcm9kdWN0LiBUaGUgZW1haWwgbWVzc2FnZSBoYXMgYmVlbiBzZW50IG91dC4= + UmVjdXJyaW5n + Q2FuY2VsIFJlY3VycmluZyBPcmRlcg== + IGRheShzKSBpbiBhZHZhbmNlLg== + SXQgd2lsbCBiZSBjaGFyZ2UgZm9yIHRoZSBzYW1lIHRvdGFsIGFtb3VudCBvbiA= + VGhpcyBpcyBhIHJlY3VycmluZyBvcmRlci4= + UmVmZXJyZXIgbGluaw== + UmVnaXN0cmF0aW9uIENvbmZpcm1hdGlvbg== + UmV0dXJuaW5nIGN1c3RvbWVycw== + U2FtZSBBcyBTaGlwcGluZyBBZGRyZXNz + QmlsbGluZyBJbmZvcm1hdGlvbg== + Q29zdCBTdW1tYXJ5 + RmlsZXM= + T3JkZXIgVG90YWw= + U2hpcHBpbmcgSW5mb3JtYXRpb24= + Q29tcGFueQ== + QWxsIGF2YWlsYWJsZSBpdGVtcw== + QWxsIGJhY2tvcmRlcmVkIGl0ZW1z + QmFja29yZGVyZWQ= + TnVtYmVyIG9mIEl0ZW1z + U2hpcG1lbnQ= + U2hpcHBpbmcgVHlwZQ== + U2hpcHBpbmcgV2VpZ2h0 + U2hvcHBpbmcgQ2FydA== + U29ydCBQcm9kdWN0cyBCeQ== + WW91IG1heSBmaWxsIGluIHRoZSBmb3JtIGJlbG93IHRvIHJlZ2lzdGVyLiBSZWdpc3RlcmluZyB3aWxsIGFsbG93IHlvdSB0byB1c2UgTXkgQWNjb3VudCBmZWF0dXJlcyBhbmQgc2ltcGxpZmllZCBjaGVja291dCBwcm9jZXNzIHRoZSBuZXh0IHRpbWUgeW91IHBsYWNlIGFuIG9yZGVyLg== + VGVybXMgYW5kIENvbmRpdGlvbnM= + QWZmaWxpYXRlIGFncmVlbWVudCwgdGVybXMgJmFtcDthbXA7IGNvbmRpdGlvbnM= + VGhhbmsgeW91IGZvciBjb21tZW50aW5nIHRoaXMgcHJvZHVjdC4= + VGhhbmsgeW91IGZvciBjb21tZW50aW5nIHRoaXMgcHJvZHVjdCAtIGl0J3MgcGVuZGluZyBmb3IgYWRtaW5pc3RyYXRpdmUgYXBwcm92YWwu + UGxlYXNlIGNvbmZpcm0gdGhhdCB5b3Ugd2FudCB0byByZXNldCB5b3VyIHBhc3N3b3JkLg== + Tm8gZmlsZXMgYXZhaWxhYmxlLg== + Tm8gcGVybWlzc2lvbnMgdG8gY29tbWVudCB0aGlzIHByb2R1Y3Qu + V2UgQWNjZXB0IENyZWRpdCBDYXJkcw== + VGhhbmsgeW91IGZvciBiZWNvbWluZyBvdXIgYWZmaWxpYXRlLiBZb3UnbGwgcmVjZWl2aW5nIG1vbnRobHkgdXBkYXRlcyBieSBlbWFpbC4= + UHJvZHVjdCBDb21tZW50IEFkZGVk + QWZmaWxpYXRlIFByb2dyYW0= + UGF5bWVuIFR5cGU= + UGF5bWVudCBUeXBlIENoYW5nZWQ= + QmVjb21lIGFuIEFmZmlsaWF0ZQ== + QWZmaWxpYXRlIFN0YXRpc3RpY3M= + T3JkZXJzIFN0YXRpc3RpY3M= + VmlzaXRvciBTdGF0aXN0aWNz + Q2FuY2VsIFJlb2NjdXJpbmcgQmlsbGluZw== + U2hvcHBpbmcgQ2FydA== + Q2hlY2tvdXQgU3RlcHM= + Q29taXNzaW9uIFBheW1lbnRz + Q29uZmlybSBwYXNzd29yZCByZXNldA== + Q3JlZGl0IENhcmRz + RGFpbHkgRGVhbHM= + RmVhdHVyZWQgUHJvZHVjdHM= + TXkgRG93bmxvYWRz + TXkgT3JkZXJz + TmV3IFByb2R1Y3Rz + T3JkZXIgUHJldmlldw== + RWRpdG9yJ3MgUGljayBQcm9kdWN0cw== + UG9wdWxhciBCcmFuZHM= + UHJvZHVjdCBEZXRhaWxz + UHJvZHVjdCBGaWxlcw== + UHJvZHVjdHM= + UHJvZHVjdHMgYnkgTWFudWZhY3R1cmVy + UHJvZHVjdCBTZWFyY2ggUmVzdWx0cw== + UmVjZW50bHkgVmlld2Vk + U29ycnkuIE5ldyB1c2VyIHJlZ2lzdHJhdGlvbiBoYXMgYmVlbiBkaXNhYmxlZC4= + UmVnaXN0cmF0aW9uIERpc2FibGVk + UmVsYXRlZCBQcm9kdWN0cw== + Q29tbWVudCB0aGlzIHByb2R1Y3Q= + U2hpcHBpbmcgT3B0aW9ucw== + U2hvcHBpbmcgQ2FydA== + U3BlY2lhbCBQcm9kdWN0cw== + Tm90IGEgTWVtYmVyPw== + VG9wIFNlbGxlcnM= + VG9wIFNlbGxlcnM= + WW91ciBXaXNoIExpc3Q= + VG90YWw= + VG90YWwgY29tbWlzc2lvbnM= + VG90YWwgb3JkZXJzIGFtb3VudA== + VG90YWwgb3JkZXJz + VG90YWwgcHJvZHVjdHM= + VG90YWwgdmlzaXRvcnM= + V2hhdCBpcyB0aGlzPw== + U2hvcHBpbmcgQ2FydA== + Q3VycmVuY3k= + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/_install/install_data.sql =================================================================== diff -u -N --- branches/1.0.x/in-commerce/_install/install_data.sql (revision 0) +++ branches/1.0.x/in-commerce/_install/install_data.sql (revision 13320) @@ -0,0 +1 @@ +UPDATE Category SET l1_Name = 'Products (TD)' WHERE l1_Name = 'Products'; \ No newline at end of file Index: branches/1.0.x/img/not_logged.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/phrases_edit.tpl =================================================================== diff -u -N --- branches/1.0.x/phrases_edit.tpl (revision 0) +++ branches/1.0.x/phrases_edit.tpl (revision 13320) @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + *

+ + + + + +

+ +
+ + + + + + + + " /> + " value="" /> + " value="0" /> + + "/> + +
+
+
+ +
+ + + + \ No newline at end of file Index: branches/1.0.x/img/ic_delete.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/product_details.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/product_details.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/product_details.tpl (revision 13320) @@ -0,0 +1,261 @@ + + + + + + + + + + + + + " rel="lightbox[roadtrip]" title=""> + " title="" alt="" border="0" />
+ + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ img/shopping_cart_item.gif" alt=""/> + + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + + + +
+
+ + + + + + +
+ + + " rel="lightbox[roadtrip]"> +
+
+ + +
+
+
+ + + #images"> +

+
+ +

+ + + + ' " type="button" value="" /> + + + + +
+ + : + + ">
+ : (: ) + + ">
+ +
+ + + : ( "> )
+
+ + + :
+
+ + :
+ + + : (%)
+
+
+ + + : + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ - + + + "> + + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +   + +
+ +
+ +
+ + + ">img/buy2.gif" alt="" width="15" height="17" border="0" /> +
+
+
+
+ + + + + +
+
+ +
+ + : + +
+
+
+ + + + + "> + +
+ +
+ + + + + + + + +
+
+
+
+ + + + + + + + + + () + + + + +
+ +
+ + + + + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/pagenation_right.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/side_boxes/login.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/login.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/login.elm.tpl (revision 13320) @@ -0,0 +1,133 @@ + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + ##--> + + + + + + + + + + + + + + + + + + +
+
+
+ "> +
+
+
+ +
+ + + + + + + + + +
+ +
+ Index: branches/1.0.x/img/topics_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/img/credit_cards/american_express.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/forums_locked.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/designs/section.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/designs/section.tpl (revision 0) +++ branches/1.0.x/in-commerce/designs/section.tpl (revision 13320) @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/warning_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/grey_pix.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/inc/jquery/thickbox/thickbox.js =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/thickbox/thickbox.js (revision 0) +++ branches/1.0.x/inc/jquery/thickbox/thickbox.js (revision 13320) @@ -0,0 +1,467 @@ +/* + * Thickbox 3.1 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2007 cody lindley + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php +*/ + +// on page load call TB.init +$(document).ready( + function() { + // pass where to apply thickbox + TB.init('a.thickbox, area.thickbox, input.thickbox'); + + // preload image + TB.imgLoader = new Image(); + TB.imgLoader.src = inportalBase + 'inc/jquery/thickbox/loadingAnimation.gif'; + } +); + +function TB () { + this.imgLoader = null; + this.pathToImage = inportalBase + 'inc/jquery/thickbox/loadingAnimation.gif'; + + this.Width = null; + this.Height = null; +} + +//add thickbox to href & area elements that have a class of .thickbox +TB.init = function (domChunk) { + $(domChunk).click( + function() { + var t = this.title || this.name || null; + var a = this.href || this.alt; + var g = this.rel || false; + + TB.show( {caption: t, url: a, imageGroup: g} ); + this.blur(); + return false; + } + ); +} + +// function called when the user clicks on a thickbox link +TB.show = function (params) { + +// caption, url, imageGroup, onDataReceived, onAfterShow, postParams + + try { + if (typeof document.body.style.maxHeight === 'undefined') { + // if IE 6 + $('body', 'html').css( {height: '100%', width: '100%'} ); + $('html').css('overflow', 'hidden'); + + if (document.getElementById('TB_HideSelect') === null) { + // iframe to hide select elements in ie6 + $('body').append("
"); + $('#TB_overlay').click(TB.remove); + } + } else { + // all others + if (document.getElementById('TB_overlay') === null) { + $('body').append("
"); + $('#TB_overlay').click(TB.remove); + } + } + + if (TB.detectMacXFF()) { + $('#TB_overlay').addClass('TB_overlayMacFFBGHack'); // use png overlay so hide flash + } else { + $('#TB_overlay').addClass('TB_overlayBG'); // use background and opacity + } + + if (params.caption === null) { + params.caption = ''; + } + + $('body').append("
"); // add loader to the page + $('#TB_load').show(); // show loader + + var baseURL; + if (params.url.indexOf('?') !== -1) { + // ff there is a query string involved + baseURL = params.url.substr(0, params.url.indexOf('?')); + } else { + baseURL = params.url; + } + + var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/; + var url_params = {}; + + if ( baseURL.toLowerCase().match(urlString) ) { + TB.processImages(params, urlString); + } else { + var queryString = params.url.replace(/^[^\?]+\??/,''); + url_params = TB.parseQuery(queryString); + + TB.processDialog(params, url_params); + } + + if (url_params['modal'] != 'true') { + $(document).bind( + 'keyup', + function(e){ + if (e.which == 27){ + // close + TB.remove(); + } + } + ); + } + } catch(e) { + //nothing here + } +} + +// helper functions below +TB.processImages = function (params, urlString) { + // code to show images + var TB_PrevCaption = ''; + var TB_PrevURL = ''; + var TB_PrevHTML = ''; + var TB_NextCaption = ''; + var TB_NextURL = ''; + var TB_NextHTML = ''; + var TB_imageCount = ''; + var TB_FoundURL = false; + + if (params.imageGroup) { + // scan images in group to create Prev/Next links + var TB_TempArray = $('a[rel=' + params.imageGroup + ']').get(); + for (var TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === '')); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == params.url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = 'Image ' + (TB_Counter + 1) + ' of ' + TB_TempArray.length; + } + } + } + + var imgPreloader = new Image(); + $(imgPreloader).bind( + 'load', + function() { + $(this).unbind('load'); + var $image_size = TB.scaleImage.call(TB, this); + + TB.Width = $image_size.width + 30; + TB.Height = $image_size.height + 60; + $('#TB_window').append("" + params.caption + "" + "
" + params.caption + "
" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
close or Esc Key
"); + $('#TB_closeWindowButton').click(TB.remove); + + if (TB_PrevHTML !== '') { + function goPrev() { + $('#TB_window').remove(); + $('body').append("
"); + TB.show( {caption: TB_PrevCaption, url: TB_PrevURL, imageGroup: params.imageGroup} ); + return false; + } + + $('#TB_prev').click(goPrev); + } + + if (TB_NextHTML !== '') { + function goNext() { + $('#TB_window').remove(); + $('body').append("
"); + TB.show( {caption: TB_NextCaption, url: TB_NextURL, imageGroup: params.imageGroup} ); + return false; + } + + $('#TB_next').click(goNext); + + } + + $(document).bind( + 'keydown', + function(e) { + var keycode = e.which; + + if (keycode == 27) { // close + TB.remove(); + } else if (keycode == 190) { + // display previous image + if (TB_NextHTML != '') { + $(this).unbind('keydown'); + goNext(); + } + } else if (keycode == 188) { + // display next image + if(TB_PrevHTML != ''){ + $(this).unbind('keydown'); + goPrev(); + } + } + } + ); + + // show image after it's loaded + TB.position(); + $('#TB_load').remove(); + $('#TB_ImageOff').click(TB.remove); + $('#TB_window').css('display', 'block'); // for safari using css instead of show + } + ); + + imgPreloader.src = params.url; +} + +TB.scaleImage = function ($image) { + // resizing large images - orginal by Christian Montoya edited by me + var pagesize = TB.getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + + var imageWidth = $image.width; + var imageHeight = $image.height; + + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + + return {width: imageWidth, height: imageHeight}; +} + +TB.processDialog = function (params, url_params) { + // code to show html + + // window size is global + TB.Width = (url_params['width'] * 1) + 30 || 630; // defaults to 630 if no paramaters were added to URL + TB.Height = (url_params['height'] * 1) + 40 || 440; // defaults to 440 if no paramaters were added to URL + + var ajaxContentW = TB.Width - 30; + var ajaxContentH = TB.Height - 45; + + if (params.url.indexOf('TB_iframe') != -1) { + // either iframe or ajax window + urlNoQuery = params.url.split('TB_'); + $('#TB_iframeContent').remove(); + + if (url_params['modal'] != 'true') { + // iframe no modal + $('#TB_window').append("
" + params.caption + "
close or Esc Key
"); + }else{ + // iframe modal + $('#TB_overlay').unbind(); + $('#TB_window').append(""); + } + } else { + // not an iframe, ajax + if ($('#TB_window').css('display') != 'block') { + if (url_params['modal'] != 'true') { + // ajax no modal + $('#TB_window').append("
" + params.caption + "
close or Esc Key
"); + } else { + // ajax modal + $('#TB_overlay').unbind(); + $('#TB_window').append("
"); + } + } else { + // this means the window is already up, we are just loading new content via ajax + $('#TB_ajaxContent')[0].style.width = ajaxContentW + 'px'; + $('#TB_ajaxContent')[0].style.height = ajaxContentH + 'px'; + $('#TB_ajaxContent')[0].scrollTop = 0; + $('#TB_ajaxWindowTitle').html(params.caption); + } + } + + $('#TB_closeWindowButton').click(TB.remove); + + if (params.url.indexOf('TB_inline') != -1) { + $('#TB_ajaxContent').html( $('#' + url_params['inlineId']).html() ); + $('#TB_window').unload( + function () { + // move elements back when you're finished + $('#' + url_params['inlineId']).html( $('#TB_ajaxContent').html() ); + } + ); + + TB.position(); + $('#TB_load').remove(); + $('#TB_window').css('display', 'block'); + } else if (params.url.indexOf('TB_iframe') != -1) { + TB.position(); + + if ($.browser.safari) { + // safari needs help because it will not fire iframe onload + $('#TB_load').remove(); + $('#TB_window').css('display', 'block'); + } + } else { + var $content_url = params.url + '&random=' + (new Date().getTime()); + + if (params.postParams === undefined) { + $.get( + $content_url, + function ($data) { + TB.onDataReceived($data, params); + } + ); + } + else { + $.post( + $content_url, + params.postParams, + function ($data) { + TB.onDataReceived($data, params); + } + ); + } + + /*$('#TB_ajaxContent').load( + params.url += '&random=' + (new Date().getTime()), + params.postParams, + function() { + //to do a post change this load method + TB.position(); + $('#TB_load').remove(); + TB.init('#TB_ajaxContent a.thickbox'); + $('#TB_window').css('display', 'block'); + + if ( $.isFunction(params.showCallback) ) { + params.showCallback(); + } + } + );*/ + } +} + +TB.parseRedirect = function ($data) { + var $match_redirect = new RegExp('^#redirect#(.*)').exec($data); + if ($match_redirect != null) { + // redirect to external template requested + return $match_redirect[1]; + } + + return false; +} + +TB.onDataReceived = function ($data, $params) { + if ( $.isFunction($params.onDataReceived) ) { + $data = $params.onDataReceived($data); + if ($data === false) { + // this callback even could prevent redirect action + // callback requested to stop processing + return ; + } + } + + var $redirect = TB.parseRedirect($data); + if ($redirect !== false) { + window.location.href = $redirect; + return ; + } + + $('#TB_ajaxContent').html($data); + + TB.position(); + $('#TB_load').remove(); + TB.init('#TB_ajaxContent a.thickbox'); + $('#TB_window').css('display', 'block'); + + if ( $.isFunction($params.onAfterShow) ) { + $params.onAfterShow(); + } +} + +TB.showIframe = function () { + $('#TB_load').remove(); + $('#TB_window').css('display', 'block'); +} + +TB.remove = function () { + $('#TB_imageOff').unbind('click'); + $('#TB_closeWindowButton').unbind('click'); + + $('#TB_window').fadeOut( + 'fast', + function(){ + $('#TB_window,#TB_overlay,#TB_HideSelect').trigger('unload').unbind().remove(); + } + ); + + $('#TB_load').remove(); + if (typeof document.body.style.maxHeight == 'undefined') { + // if IE 6 + $('body','html').css( {height: 'auto', width: 'auto'} ); + $('html').css('overflow', ''); + } + + $(document).unbind('keydown').unbind('keyup'); + + return false; +} + +TB.position = function () { + $('#TB_window').css( {marginLeft: '-' + parseInt((TB.Width / 2), 10) + 'px', width: TB.Width + 'px'} ); + + if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { + // take away IE6 + $('#TB_window').css( {marginTop: '-' + parseInt((TB.Height / 2), 10) + 'px'} ); + } +} + +TB.parseQuery = function (query) { + var Params = {}; + if (!query) { + // return empty object + return Params; + } + + var Pairs = query.split(/[;&]/); + + for (var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if (!KeyVal || KeyVal.length != 2) { + continue; + } + + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + + return Params; +} + +TB.getPageSize = function () { + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight; + + return [w, h]; +} + +TB.detectMacXFF = function () { + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox') != -1) { + return true; + } + + return false; +} + + Index: branches/1.0.x/img/no_picture.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_address.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_address.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/content_boxes/checkout/billing_address.elm.tpl (revision 13320) @@ -0,0 +1,64 @@ + + + + + + + + *

+ +

+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "/> + +
: + checked" /> +
+
\ No newline at end of file Index: branches/1.0.x/in-commerce/my_account/my_order_details.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/my_order_details.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/my_order_details.tpl (revision 13320) @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + \ No newline at end of file Index: branches/1.0.x/inc/jquery/autoresize.jquery.min.js =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/autoresize.jquery.min.js (revision 0) +++ branches/1.0.x/inc/jquery/autoresize.jquery.min.js (revision 13320) @@ -0,0 +1,7 @@ +/* + * jQuery autoResize (textarea auto-resizer) + * @copyright James Padolsey http://james.padolsey.com + * @version 1.04 + */ + +(function(a){a.fn.autoResize=function(j){var b=a.extend({onResize:function(){},animate:true,animateDuration:150,animateCallback:function(){},extraSpace:20,limit:1000},j);this.filter('textarea').each(function(){var c=a(this).css({resize:'none','overflow-y':'hidden'}),k=c.height(),f=(function(){var l=['height','width','lineHeight','textDecoration','letterSpacing'],h={};a.each(l,function(d,e){h[e]=c.css(e)});return c.clone().removeAttr('id').removeAttr('name').css({position:'absolute',top:0,left:-9999}).css(h).attr('tabIndex','-1').insertBefore(c)})(),i=null,g=function(){f.height(0).val(a(this).val()).scrollTop(10000);var d=Math.max(f.scrollTop(),k)+b.extraSpace,e=a(this).add(f);if(i===d){return}i=d;if(d>=b.limit){a(this).css('overflow-y','');return}b.onResize.call(this);b.animate&&c.css('display')==='block'?e.stop().animate({height:d},b.animateDuration,b.animateCallback):e.height(d)};c.unbind('.dynSiz').bind('keyup.dynSiz',g).bind('keydown.dynSiz',g).bind('change.dynSiz',g)});return this}})(jQuery); \ No newline at end of file Index: branches/1.0.x/inc/jquery/thickbox/thickbox.css =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/thickbox/thickbox.css (revision 0) +++ branches/1.0.x/inc/jquery/thickbox/thickbox.css (revision 13320) @@ -0,0 +1,164 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} +.TB_overlayBG { + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + border: 4px solid #525252; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; + font-weight: bold; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:103; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} Index: branches/1.0.x/img/button_center.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/ic_myfriends46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/box_title_background_orange.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/inc/jquery/jquery.pack.js =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/jquery.pack.js (revision 0) +++ branches/1.0.x/inc/jquery/jquery.pack.js (revision 13320) @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file Index: branches/1.0.x/no_permission.tpl =================================================================== diff -u -N --- branches/1.0.x/no_permission.tpl (revision 0) +++ branches/1.0.x/no_permission.tpl (revision 13320) @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + +

+ +

+
+ +
+ + + + \ No newline at end of file Index: branches/1.0.x/img/button_lifht_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/checkout/cvv2help.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/cvv2help.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/cvv2help.tpl (revision 13320) @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + CVV2HELP TPL + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/ic_removefromfav.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/side_boxes_content.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/tab_left_noselect.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/img/ic_myorders46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/button_right.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/affiliate_navigation.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/affiliate_navigation.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/affiliate_navigation.elm.tpl (revision 13320) @@ -0,0 +1,22 @@ + + + + + + + + + + + + + +
+
+
+ +
+ + + + Index: branches/1.0.x/img/backgr.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/star.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/checkout/.smsignore =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/.smsignore (revision 0) +++ branches/1.0.x/in-commerce/checkout/.smsignore (revision 13320) @@ -0,0 +1 @@ +.*\.tpl \ No newline at end of file Index: branches/1.0.x/img/zoom.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/my_account/my_downloads_more.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/my_downloads_more.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/my_downloads_more.tpl (revision 13320) @@ -0,0 +1,68 @@ + + + + + + + + - + + + + + + + + + + + - + + + + + + + + +
+ " target="_blank"> +
+
+
+ " class="text-title">
+ + + : ( ">)
+
+
+ + :

+ + + : + +
+
+
+ + + + + + +
+
+
+ + +
+ + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/products/manufacturer_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/manufacturer_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/manufacturer_products.tpl (revision 13320) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + +
+ + +
+ +
+ + + + + \ No newline at end of file Index: branches/1.0.x/img/top_logo.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/header_arrow.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/inc/jquery/easySlider1.7.js =================================================================== diff -u -N --- branches/1.0.x/inc/jquery/easySlider1.7.js (revision 0) +++ branches/1.0.x/inc/jquery/easySlider1.7.js (revision 13320) @@ -0,0 +1,226 @@ +/* + * Easy Slider 1.7 - jQuery plugin + * written by Alen Grakalic + * http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding + * + * Copyright (c) 2009 Alen Grakalic (http://cssglobe.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * Built for jQuery library + * http://jquery.com + * + */ + +/* + * markup example for $("#slider").easySlider(); + * + *
+ *
    + *
  • + *
  • + *
  • + *
  • + *
  • + *
+ *
+ * + */ + +(function($) { + + $.fn.easySlider = function(options){ + + // default configuration properties + var defaults = { + prevId: 'prevBtn', + prevText: 'Previous', + nextId: 'nextBtn', + nextText: 'Next', + controlsShow: true, + controlsBefore: '', + controlsAfter: '', + controlsFade: true, + firstId: 'firstBtn', + firstText: 'First', + firstShow: false, + lastId: 'lastBtn', + lastText: 'Last', + lastShow: false, + vertical: false, + speed: 1000, + auto: false, + pause: 2000, + continuous: false, + numeric: false, + numericId: 'controls' + }; + + var options = $.extend(defaults, options); + + this.each(function() { + var obj = $(this); + var s = $("li", obj).length; + var w = $("li", obj).width(); + var h = $("li", obj).height(); + var clickable = true; + obj.width(w); + obj.height(h); + obj.css("overflow","hidden"); + var ts = s-1; + var t = 0; + $("ul", obj).css('width',s*w); + + if(options.continuous){ + $("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px")); + $("ul", obj).append($("ul li:nth-child(2)", obj).clone()); + $("ul", obj).css('width',(s+1)*w); + }; + + if(!options.vertical) $("li", obj).css('float','left'); + + if(options.controlsShow){ + var html = options.controlsBefore; + if(options.numeric){ + html += '
    '; + } else { + if(options.firstShow) html += ''+ options.firstText +''; + html += ' '+ options.prevText +''; + html += ' '+ options.nextText +''; + if(options.lastShow) html += ' '+ options.lastText +''; + }; + + html += options.controlsAfter; + $(obj).after(html); + }; + + if(options.numeric){ + for(var i=0;i'+ (i+1) +'') + .appendTo($("#"+ options.numericId)) + .click(function(){ + animate($("a",$(this)).attr('rel'),true); + }); + }; + } else { + $("a","#"+options.nextId).click(function(){ + animate("next",true); + }); + $("a","#"+options.prevId).click(function(){ + animate("prev",true); + }); + $("a","#"+options.firstId).click(function(){ + animate("first",true); + }); + $("a","#"+options.lastId).click(function(){ + animate("last",true); + }); + }; + + function setCurrent(i){ + i = parseInt(i)+1; + $("li", "#" + options.numericId).removeClass("current"); + $("li#" + options.numericId + i).addClass("current"); + }; + + function adjust(){ + if(t>ts) t=0; + if(t<0) t=ts; + if(!options.vertical) { + $("ul",obj).css("margin-left",(t*w*-1)); + } else { + $("ul",obj).css("margin-left",(t*h*-1)); + } + clickable = true; + if(options.numeric) setCurrent(t); + }; + + function animate(dir,clicked){ + if (clickable){ + clickable = false; + var ot = t; + switch(dir){ + case "next": + t = (ot>=ts) ? (options.continuous ? t+1 : ts) : t+1; + break; + case "prev": + t = (t<=0) ? (options.continuous ? t-1 : 0) : t-1; + break; + case "first": + t = 0; + break; + case "last": + t = ts; + break; + default: + t = dir; + break; + }; + var diff = Math.abs(ot-t); + var speed = diff*options.speed; + if(!options.vertical) { + p = (t*w*-1); + $("ul",obj).animate( + { marginLeft: p }, + { queue:false, duration:speed, complete:adjust } + ); + } else { + p = (t*h*-1); + $("ul",obj).animate( + { marginTop: p }, + { queue:false, duration:speed, complete:adjust } + ); + }; + + if(!options.continuous && options.controlsFade){ + if(t==ts){ + $("a","#"+options.nextId).hide(); + $("a","#"+options.lastId).hide(); + } else { + $("a","#"+options.nextId).show(); + $("a","#"+options.lastId).show(); + }; + if(t==0){ + $("a","#"+options.prevId).hide(); + $("a","#"+options.firstId).hide(); + } else { + $("a","#"+options.prevId).show(); + $("a","#"+options.firstId).show(); + }; + }; + + if(clicked) clearTimeout(timeout); + if(options.auto && dir=="next" && !clicked){; + timeout = setTimeout(function(){ + animate("next",false); + },diff*options.speed+options.pause); + }; + + }; + + }; + // init + var timeout; + if(options.auto){; + timeout = setTimeout(function(){ + animate("next",false); + },options.pause); + }; + + if(options.numeric) setCurrent(0); + + if(!options.continuous && options.controlsFade){ + $("a","#"+options.prevId).hide(); + $("a","#"+options.firstId).hide(); + }; + + }); + + }; + +})(jQuery); + + + Index: branches/1.0.x/img/ic_mytopics46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/ic_myprofile46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/icon_new.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/my_account/cancel_recurring_ok.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/cancel_recurring_ok.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/cancel_recurring_ok.tpl (revision 13320) @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + +
    +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/my_account/my_downloads.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/my_downloads.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/my_downloads.tpl (revision 13320) @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + () + + + + + + +
    + + +
    + + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/ic_details.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/search/search_results.tpl =================================================================== diff -u -N --- branches/1.0.x/search/search_results.tpl (revision 0) +++ branches/1.0.x/search/search_results.tpl (revision 13320) @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/link_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/checkout/checkout_success.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/checkout/checkout_success.tpl (revision 0) +++ branches/1.0.x/in-commerce/checkout/checkout_success.tpl (revision 13320) @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + ! +
    + +
    + + + + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/searchbox_left.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/categories.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/categories.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/categories.elm.tpl (revision 13320) @@ -0,0 +1,65 @@ + + + +
    + + + " class="sub-category">...
    +
    + + +
    + + + + +
    + + + + + + " class="sub-category"> + + + +
    + + + + + +
    +
    + + + + + + + + +
    +
    +
    + +
    + + " class="top-category">
    +
    + + + + +
    +
    + +
    +
    Index: branches/1.0.x/img/icon_pick.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/ic_mypreferences46.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/my_account/my_account.tpl =================================================================== diff -u -N --- branches/1.0.x/my_account/my_account.tpl (revision 0) +++ branches/1.0.x/my_account/my_account.tpl (revision 13320) @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + " alt="" />
    + + + " class="text-title"> +
    + + + +
    + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + +
    +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/tab_right_noselect.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/delete.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/side_boxes/common_sideboxes.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/side_boxes/common_sideboxes.elm.tpl (revision 0) +++ branches/1.0.x/elements/side_boxes/common_sideboxes.elm.tpl (revision 13320) @@ -0,0 +1,27 @@ +
    + + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/addresses.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/addresses.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/addresses.elm.tpl (revision 13320) @@ -0,0 +1,92 @@ + + + + +
    + + + + +
    + +
    +
    + +
    +
    + + +
    +
    +
    + + + +
    +
    + + + :
    +
    + + + :
    +
    + + +
    + +
    + + + + + " class="item-action"> + + " class="item-action">    +  |  ');" class="item-action"> + + + + +
    + + + + + + + + + + + + + :
    + + + + + + +   + "/> + "> + + + + + + +
    + + +
    + +
    + \ No newline at end of file Index: branches/1.0.x/img/gradient_background_red.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/shopping_card_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/product_files.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/product_files.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/product_files.elm.tpl (revision 13320) @@ -0,0 +1,44 @@ + + + + + : + + + + + + : + "> + + + + + : + + + + + + : + + + + + : + + + + + : + "> + + + + +
    +

    + + +
    + \ No newline at end of file Index: branches/1.0.x/in-commerce/products/.smsignore =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/.smsignore (revision 0) +++ branches/1.0.x/in-commerce/products/.smsignore (revision 13320) @@ -0,0 +1 @@ +product_detail\.tpl \ No newline at end of file Index: branches/1.0.x/elements/content_boxes/nothing_found.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/content_boxes/nothing_found.elm.tpl (revision 0) +++ branches/1.0.x/elements/content_boxes/nothing_found.elm.tpl (revision 13320) @@ -0,0 +1,25 @@ + + + + + + + + + + +
    + + +
    +
    +
    + + + ! + + ! + +
    + + \ No newline at end of file Index: branches/1.0.x/img/arrow_white.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/button_left.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/home_baner.jpg =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/cart_indicator.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/cart_indicator.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/cart_indicator.elm.tpl (revision 13320) @@ -0,0 +1,26 @@ + + + + + + + + + + + + +
    +
    + :
    + + :
    +
    + + "> + in-commerce/checkout/shippingin-commerce/checkout/billing" /> + "> + + +
    +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/img/menu_products.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/forms.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/forms.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/forms.elm.tpl (revision 13320) @@ -0,0 +1,76 @@ + + " style=""> + *: + + + + + "> + + + + +
    +
    + " value="" tabindex=""/> + + + +
    + + + "> + + + + + + + + + + + + + " id="_" value="" checked/> + + + + + + + + + "> + + + + + +
    + + + +
    + + + "> + +   + + + +
    +
    + + + + + + +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/products/top_seller_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/top_seller_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/top_seller_products.tpl (revision 13320) @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + +
    + + +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/menu_my_account.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/manufacturer_dropdown.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/manufacturer_dropdown.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/manufacturer_dropdown.elm.tpl (revision 13320) @@ -0,0 +1,15 @@ + + 1 + + + + + + + +
    + +
    \ No newline at end of file Index: branches/1.0.x/inc/lbox/lightbox.css =================================================================== diff -u -N --- branches/1.0.x/inc/lbox/lightbox.css (revision 0) +++ branches/1.0.x/inc/lbox/lightbox.css (revision 13320) @@ -0,0 +1,79 @@ +#lightbox{ + position: absolute; + left: 0; + width: 100%; + z-index: 100; + text-align: center; + line-height: 0; + } + +#lightbox a img{ border: none; } + +#outerImageContainer{ + position: relative; + background-color: #fff; + width: 250px; + height: 250px; + margin: 0 auto; + } + +#imageContainer{ + padding: 10px; + } + +#loading{ + position: absolute; + top: 40%; + left: 0%; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; + } +#hoverNav{ + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; + } +#imageContainer>#hoverNav{ left: 0;} +#hoverNav a{ outline: none;} + +#prevLink, #nextLink{ + width: 49%; + height: 100%; + background: transparent url(../../img/s.gif) no-repeat; /* Trick IE into showing hover */ + display: block; + } +#prevLink { left: 0; float: left;} +#nextLink { right: 0; float: right;} +#prevLink:hover, #prevLink:visited:hover { background: url(../../img/lbox/prevlabel.gif) left 15% no-repeat; } +#nextLink:hover, #nextLink:visited:hover { background: url(../../img/lbox/nextlabel.gif) right 15% no-repeat; } + + +#imageDataContainer{ + font: 10px Verdana, Helvetica, sans-serif; + background-color: #fff; + margin: 0 auto; + line-height: 1.4em; + overflow: auto; + width: 100% + } + +#imageData{ padding:0 10px; color: #666; } +#imageData #imageDetails{ width: 70%; float: left; text-align: left; } +#imageData #caption{ font-weight: bold; } +#imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em; } +#imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; } + +#overlay{ + position: absolute; + top: 0; + left: 0; + z-index: 90; + width: 100%; + height: 500px; + background-color: #000; + } \ No newline at end of file Index: branches/1.0.x/in-commerce/designs/.smsignore =================================================================== diff -u -N --- branches/1.0.x/in-commerce/designs/.smsignore (revision 0) +++ branches/1.0.x/in-commerce/designs/.smsignore (revision 13320) @@ -0,0 +1 @@ +.*\.tpl \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/side_boxes/pick_products.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/pick_products.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/pick_products.elm.tpl (revision 13320) @@ -0,0 +1,18 @@ + + + + + "> () + + + + + + +
    + + + "> + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/my_account/edit_address.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/edit_address.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/edit_address.tpl (revision 13320) @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + +
    + *

    + + + + + + + + +

    + + + + + + + + + + + + + + + + + + "/> + + +
    +
    + +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/affiliate_date_filter.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/affiliate_date_filter.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/affiliate_date_filter.elm.tpl (revision 13320) @@ -0,0 +1,46 @@ +
    +
    + + + + + + + + + + + + + + +
    + + + +
    +
    + " id="" value="" size="" datepickerIcon="img/calendar_icon.gif"/> + () + +
    + + + +
    +
    + " id="" value="" size="" datepickerIcon="img/calendar_icon.gif"/> + () + +
    + ][OnSearch]" value=""> + ][OnSearchReset]" value=""> +
    +
    +" /> +
    +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/img/menu_shopping_cart.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/error_notfound.tpl =================================================================== diff -u -N --- branches/1.0.x/error_notfound.tpl (revision 0) +++ branches/1.0.x/error_notfound.tpl (revision 13320) @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + +

    + +

    +
    + + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/img/shopping_cart_item.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/icon_hot.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/menu-li-2-level.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/my_account/my_favorites.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/my_account/my_favorites.elm.tpl (revision 0) +++ branches/1.0.x/my_account/my_favorites.elm.tpl (revision 13320) @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/side_boxes/action_box.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/action_box.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/action_box.elm.tpl (revision 13320) @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + +
    - + + + + + + "> + + + +
    - + "> +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/my_account/new_address.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/new_address.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/new_address.tpl (revision 13320) @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + +
    + *

    + + + + + + + + +

    + + + + + + + + + + + + + + + + + + "/> + + +
    +
    + +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/index.tpl =================================================================== diff -u -N --- branches/1.0.x/index.tpl (revision 0) +++ branches/1.0.x/index.tpl (revision 13320) @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/inc/lbox/prototype.js =================================================================== diff -u -N --- branches/1.0.x/inc/lbox/prototype.js (revision 0) +++ branches/1.0.x/inc/lbox/prototype.js (revision 13320) @@ -0,0 +1,1785 @@ +/* Prototype JavaScript framework, version 1.4.0 + * (c) 2005 Sam Stephenson + * + * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff + * against the source tree, available from the Prototype darcs repository. + * + * Prototype is freely distributable under the terms of an MIT-style license. + * + * For details, see the Prototype web site: http://prototype.conio.net/ + * +/*--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.4.0', + ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', + + emptyFunction: function() {}, + K: function(x) {return x} +} + +var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } +} + +var Abstract = new Object(); + +Object.extend = function(destination, source) { + for (property in source) { + destination[property] = source[property]; + } + return destination; +} + +Object.inspect = function(object) { + try { + if (object == undefined) return 'undefined'; + if (object == null) return 'null'; + return object.inspect ? object.inspect() : object.toString(); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } +} + +Function.prototype.bind = function() { + var __method = this, args = $A(arguments), object = args.shift(); + return function() { + return __method.apply(object, args.concat($A(arguments))); + } +} + +Function.prototype.bindAsEventListener = function(object) { + var __method = this; + return function(event) { + return __method.call(object, event || window.event); + } +} + +Object.extend(Number.prototype, { + toColorPart: function() { + var digits = this.toString(16); + if (this < 16) return '0' + digits; + return digits; + }, + + succ: function() { + return this + 1; + }, + + times: function(iterator) { + $R(0, this, true).each(iterator); + return this; + } +}); + +var Try = { + these: function() { + var returnValue; + + for (var i = 0; i < arguments.length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) {} + } + + return returnValue; + } +} + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create(); +PeriodicalExecuter.prototype = { + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.callback(); + } finally { + this.currentlyExecuting = false; + } + } + } +} + +/*--------------------------------------------------------------------------*/ + +function $() { + var elements = new Array(); + + for (var i = 0; i < arguments.length; i++) { + var element = arguments[i]; + if (typeof element == 'string') + element = document.getElementById(element); + + if (arguments.length == 1) + return element; + + elements.push(element); + } + + return elements; +} +Object.extend(String.prototype, { + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + stripScripts: function() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + }, + + extractScripts: function() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + }, + + evalScripts: function() { + return this.extractScripts().map(eval); + }, + + escapeHTML: function() { + var div = document.createElement('div'); + var text = document.createTextNode(this); + div.appendChild(text); + return div.innerHTML; + }, + + unescapeHTML: function() { + var div = document.createElement('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; + }, + + toQueryParams: function() { + var pairs = this.match(/^\??(.*)$/)[1].split('&'); + return pairs.inject({}, function(params, pairString) { + var pair = pairString.split('='); + params[pair[0]] = pair[1]; + return params; + }); + }, + + toArray: function() { + return this.split(''); + }, + + camelize: function() { + var oStringList = this.split('-'); + if (oStringList.length == 1) return oStringList[0]; + + var camelizedString = this.indexOf('-') == 0 + ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) + : oStringList[0]; + + for (var i = 1, len = oStringList.length; i < len; i++) { + var s = oStringList[i]; + camelizedString += s.charAt(0).toUpperCase() + s.substring(1); + } + + return camelizedString; + }, + + inspect: function() { + return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'"; + } +}); + +String.prototype.parseQuery = String.prototype.toQueryParams; + +var $break = new Object(); +var $continue = new Object(); + +var Enumerable = { + each: function(iterator) { + var index = 0; + try { + this._each(function(value) { + try { + iterator(value, index++); + } catch (e) { + if (e != $continue) throw e; + } + }); + } catch (e) { + if (e != $break) throw e; + } + }, + + all: function(iterator) { + var result = true; + this.each(function(value, index) { + result = result && !!(iterator || Prototype.K)(value, index); + if (!result) throw $break; + }); + return result; + }, + + any: function(iterator) { + var result = true; + this.each(function(value, index) { + if (result = !!(iterator || Prototype.K)(value, index)) + throw $break; + }); + return result; + }, + + collect: function(iterator) { + var results = []; + this.each(function(value, index) { + results.push(iterator(value, index)); + }); + return results; + }, + + detect: function (iterator) { + var result; + this.each(function(value, index) { + if (iterator(value, index)) { + result = value; + throw $break; + } + }); + return result; + }, + + findAll: function(iterator) { + var results = []; + this.each(function(value, index) { + if (iterator(value, index)) + results.push(value); + }); + return results; + }, + + grep: function(pattern, iterator) { + var results = []; + this.each(function(value, index) { + var stringValue = value.toString(); + if (stringValue.match(pattern)) + results.push((iterator || Prototype.K)(value, index)); + }) + return results; + }, + + include: function(object) { + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + }, + + inject: function(memo, iterator) { + this.each(function(value, index) { + memo = iterator(memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.collect(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value >= (result || value)) + result = value; + }); + return result; + }, + + min: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value <= (result || value)) + result = value; + }); + return result; + }, + + partition: function(iterator) { + var trues = [], falses = []; + this.each(function(value, index) { + ((iterator || Prototype.K)(value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value, index) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator) { + var results = []; + this.each(function(value, index) { + if (!iterator(value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator) { + return this.collect(function(value, index) { + return {value: value, criteria: iterator(value, index)}; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.collect(Prototype.K); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (typeof args.last() == 'function') + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + iterator(value = collections.pluck(index)); + return value; + }); + }, + + inspect: function() { + return '#'; + } +} + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray +}); +var $A = Array.from = function(iterable) { + if (!iterable) return []; + if (iterable.toArray) { + return iterable.toArray(); + } else { + var results = []; + for (var i = 0; i < iterable.length; i++) + results.push(iterable[i]); + return results; + } +} + +Object.extend(Array.prototype, Enumerable); + +Array.prototype._reverse = Array.prototype.reverse; + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0; i < this.length; i++) + iterator(this[i]); + }, + + clear: function() { + this.length = 0; + return this; + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + }, + + compact: function() { + return this.select(function(value) { + return value != undefined || value != null; + }); + }, + + flatten: function() { + return this.inject([], function(array, value) { + return array.concat(value.constructor == Array ? + value.flatten() : [value]); + }); + }, + + without: function() { + var values = $A(arguments); + return this.select(function(value) { + return !values.include(value); + }); + }, + + indexOf: function(object) { + for (var i = 0; i < this.length; i++) + if (this[i] == object) return i; + return -1; + }, + + reverse: function(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + }, + + shift: function() { + var result = this[0]; + for (var i = 0; i < this.length - 1; i++) + this[i] = this[i + 1]; + this.length--; + return result; + }, + + inspect: function() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + } +}); +var Hash = { + _each: function(iterator) { + for (key in this) { + var value = this[key]; + if (typeof value == 'function') continue; + + var pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + }, + + keys: function() { + return this.pluck('key'); + }, + + values: function() { + return this.pluck('value'); + }, + + merge: function(hash) { + return $H(hash).inject($H(this), function(mergedHash, pair) { + mergedHash[pair.key] = pair.value; + return mergedHash; + }); + }, + + toQueryString: function() { + return this.map(function(pair) { + return pair.map(encodeURIComponent).join('='); + }).join('&'); + }, + + inspect: function() { + return '#'; + } +} + +function $H(object) { + var hash = Object.extend({}, object || {}); + Object.extend(hash, Enumerable); + Object.extend(hash, Hash); + return hash; +} +ObjectRange = Class.create(); +Object.extend(ObjectRange.prototype, Enumerable); +Object.extend(ObjectRange.prototype, { + initialize: function(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + }, + + _each: function(iterator) { + var value = this.start; + do { + iterator(value); + value = value.succ(); + } while (this.include(value)); + }, + + include: function(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } +}); + +var $R = function(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +} + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')}, + function() {return new XMLHttpRequest()} + ) || false; + }, + + activeRequestCount: 0 +} + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responderToAdd) { + if (!this.include(responderToAdd)) + this.responders.push(responderToAdd); + }, + + unregister: function(responderToRemove) { + this.responders = this.responders.without(responderToRemove); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (responder[callback] && typeof responder[callback] == 'function') { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) {} + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { + Ajax.activeRequestCount++; + }, + + onComplete: function() { + Ajax.activeRequestCount--; + } +}); + +Ajax.Base = function() {}; +Ajax.Base.prototype = { + setOptions: function(options) { + this.options = { + method: 'post', + asynchronous: true, + parameters: '' + } + Object.extend(this.options, options || {}); + }, + + responseIsSuccess: function() { + return this.transport.status == undefined + || this.transport.status == 0 + || (this.transport.status >= 200 && this.transport.status < 300); + }, + + responseIsFailure: function() { + return !this.responseIsSuccess(); + } +} + +Ajax.Request = Class.create(); +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Request.prototype = Object.extend(new Ajax.Base(), { + initialize: function(url, options) { + this.transport = Ajax.getTransport(); + this.setOptions(options); + this.request(url); + }, + + request: function(url) { + var parameters = this.options.parameters || ''; + if (parameters.length > 0) parameters += '&_='; + + try { + this.url = url; + if (this.options.method == 'get' && parameters.length > 0) + this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; + + Ajax.Responders.dispatch('onCreate', this, this.transport); + + this.transport.open(this.options.method, this.url, + this.options.asynchronous); + + if (this.options.asynchronous) { + this.transport.onreadystatechange = this.onStateChange.bind(this); + setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); + } + + this.setRequestHeaders(); + + var body = this.options.postBody ? this.options.postBody : parameters; + this.transport.send(this.options.method == 'post' ? body : null); + + } catch (e) { + this.dispatchException(e); + } + }, + + setRequestHeaders: function() { + var requestHeaders = + ['X-Requested-With', 'XMLHttpRequest', + 'X-Prototype-Version', Prototype.Version]; + + if (this.options.method == 'post') { + requestHeaders.push('Content-type', + 'application/x-www-form-urlencoded'); + + /* Force "Connection: close" for Mozilla browsers to work around + * a bug where XMLHttpReqeuest sends an incorrect Content-length + * header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType) + requestHeaders.push('Connection', 'close'); + } + + if (this.options.requestHeaders) + requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); + + for (var i = 0; i < requestHeaders.length; i += 2) + this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState != 1) + this.respondToReadyState(this.transport.readyState); + }, + + header: function(name) { + try { + return this.transport.getResponseHeader(name); + } catch (e) {} + }, + + evalJSON: function() { + try { + return eval(this.header('X-JSON')); + } catch (e) {} + }, + + evalResponse: function() { + try { + return eval(this.transport.responseText); + } catch (e) { + this.dispatchException(e); + } + }, + + respondToReadyState: function(readyState) { + var event = Ajax.Request.Events[readyState]; + var transport = this.transport, json = this.evalJSON(); + + if (event == 'Complete') { + try { + (this.options['on' + this.transport.status] + || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(transport, json); + } catch (e) { + this.dispatchException(e); + } + + if ((this.header('Content-type') || '').match(/^text\/javascript/i)) + this.evalResponse(); + } + + try { + (this.options['on' + event] || Prototype.emptyFunction)(transport, json); + Ajax.Responders.dispatch('on' + event, this, transport, json); + } catch (e) { + this.dispatchException(e); + } + + /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ + if (event == 'Complete') + this.transport.onreadystatechange = Prototype.emptyFunction; + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Updater = Class.create(); + +Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { + initialize: function(container, url, options) { + this.containers = { + success: container.success ? $(container.success) : $(container), + failure: container.failure ? $(container.failure) : + (container.success ? null : $(container)) + } + + this.transport = Ajax.getTransport(); + this.setOptions(options); + + var onComplete = this.options.onComplete || Prototype.emptyFunction; + this.options.onComplete = (function(transport, object) { + this.updateContent(); + onComplete(transport, object); + }).bind(this); + + this.request(url); + }, + + updateContent: function() { + var receiver = this.responseIsSuccess() ? + this.containers.success : this.containers.failure; + var response = this.transport.responseText; + + if (!this.options.evalScripts) + response = response.stripScripts(); + + if (receiver) { + if (this.options.insertion) { + new this.options.insertion(receiver, response); + } else { + Element.update(receiver, response); + } + } + + if (this.responseIsSuccess()) { + if (this.onComplete) + setTimeout(this.onComplete.bind(this), 10); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(); +Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { + initialize: function(container, url, options) { + this.setOptions(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = {}; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(request) { + if (this.options.decay) { + this.decay = (request.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = request.responseText; + } + this.timer = setTimeout(this.onTimerEvent.bind(this), + this.decay * this.frequency * 1000); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); +document.getElementsByClassName = function(className, parentElement) { + var children = ($(parentElement) || document.body).getElementsByTagName('*'); + return $A(children).inject([], function(elements, child) { + if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) + elements.push(child); + return elements; + }); +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Element) { + var Element = new Object(); +} + +Object.extend(Element, { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + Element[Element.visible(element) ? 'hide' : 'show'](element); + } + }, + + hide: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = 'none'; + } + }, + + show: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = ''; + } + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + }, + + update: function(element, html) { + $(element).innerHTML = html.stripScripts(); + setTimeout(function() {html.evalScripts()}, 10); + }, + + getHeight: function(element) { + element = $(element); + return element.offsetHeight; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).include(className); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).add(className); + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + return Element.classNames(element).remove(className); + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + for (var i = 0; i < element.childNodes.length; i++) { + var node = element.childNodes[i]; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + Element.remove(node); + } + }, + + empty: function(element) { + return $(element).innerHTML.match(/^\s*$/); + }, + + scrollTo: function(element) { + element = $(element); + var x = element.x ? element.x : element.offsetLeft, + y = element.y ? element.y : element.offsetTop; + window.scrollTo(x, y); + }, + + getStyle: function(element, style) { + element = $(element); + var value = element.style[style.camelize()]; + if (!value) { + if (document.defaultView && document.defaultView.getComputedStyle) { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css.getPropertyValue(style) : null; + } else if (element.currentStyle) { + value = element.currentStyle[style.camelize()]; + } + } + + if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) + if (Element.getStyle(element, 'position') == 'static') value = 'auto'; + + return value == 'auto' ? null : value; + }, + + setStyle: function(element, style) { + element = $(element); + for (name in style) + element.style[name.camelize()] = style[name]; + }, + + getDimensions: function(element) { + element = $(element); + if (Element.getStyle(element, 'display') != 'none') + return {width: element.offsetWidth, height: element.offsetHeight}; + + // All *Width and *Height properties give 0 on elements with display none, + // so enable the element temporarily + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = ''; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = 'none'; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + // Opera returns the offset relative to the positioning context, when an + // element is position relative but top and left have not been defined + if (window.opera) { + element.style.top = 0; + element.style.left = 0; + } + } + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return; + element._overflow = element.style.overflow; + if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') + element.style.overflow = 'hidden'; + }, + + undoClipping: function(element) { + element = $(element); + if (element._overflow) return; + element.style.overflow = element._overflow; + element._overflow = undefined; + } +}); + +var Toggle = new Object(); +Toggle.display = Element.toggle; + +/*--------------------------------------------------------------------------*/ + +Abstract.Insertion = function(adjacency) { + this.adjacency = adjacency; +} + +Abstract.Insertion.prototype = { + initialize: function(element, content) { + this.element = $(element); + this.content = content.stripScripts(); + + if (this.adjacency && this.element.insertAdjacentHTML) { + try { + this.element.insertAdjacentHTML(this.adjacency, this.content); + } catch (e) { + if (this.element.tagName.toLowerCase() == 'tbody') { + this.insertContent(this.contentFromAnonymousTable()); + } else { + throw e; + } + } + } else { + this.range = this.element.ownerDocument.createRange(); + if (this.initializeRange) this.initializeRange(); + this.insertContent([this.range.createContextualFragment(this.content)]); + } + + setTimeout(function() {content.evalScripts()}, 10); + }, + + contentFromAnonymousTable: function() { + var div = document.createElement('div'); + div.innerHTML = '' + this.content + '
    '; + return $A(div.childNodes[0].childNodes[0].childNodes); + } +} + +var Insertion = new Object(); + +Insertion.Before = Class.create(); +Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { + initializeRange: function() { + this.range.setStartBefore(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.parentNode.insertBefore(fragment, this.element); + }).bind(this)); + } +}); + +Insertion.Top = Class.create(); +Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(true); + }, + + insertContent: function(fragments) { + fragments.reverse(false).each((function(fragment) { + this.element.insertBefore(fragment, this.element.firstChild); + }).bind(this)); + } +}); + +Insertion.Bottom = Class.create(); +Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.appendChild(fragment); + }).bind(this)); + } +}); + +Insertion.After = Class.create(); +Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { + initializeRange: function() { + this.range.setStartAfter(this.element); + }, + + insertContent: function(fragments) { + fragments.each((function(fragment) { + this.element.parentNode.insertBefore(fragment, + this.element.nextSibling); + }).bind(this)); + } +}); + +/*--------------------------------------------------------------------------*/ + +Element.ClassNames = Class.create(); +Element.ClassNames.prototype = { + initialize: function(element) { + this.element = $(element); + }, + + _each: function(iterator) { + this.element.className.split(/\s+/).select(function(name) { + return name.length > 0; + })._each(iterator); + }, + + set: function(className) { + this.element.className = className; + }, + + add: function(classNameToAdd) { + if (this.include(classNameToAdd)) return; + this.set(this.toArray().concat(classNameToAdd).join(' ')); + }, + + remove: function(classNameToRemove) { + if (!this.include(classNameToRemove)) return; + this.set(this.select(function(className) { + return className != classNameToRemove; + }).join(' ')); + }, + + toString: function() { + return this.toArray().join(' '); + } +} + +Object.extend(Element.ClassNames.prototype, Enumerable); +var Field = { + clear: function() { + for (var i = 0; i < arguments.length; i++) + $(arguments[i]).value = ''; + }, + + focus: function(element) { + $(element).focus(); + }, + + present: function() { + for (var i = 0; i < arguments.length; i++) + if ($(arguments[i]).value == '') return false; + return true; + }, + + select: function(element) { + $(element).select(); + }, + + activate: function(element) { + element = $(element); + element.focus(); + if (element.select) + element.select(); + } +} + +/*--------------------------------------------------------------------------*/ + +var Form = { + serialize: function(form) { + var elements = Form.getElements($(form)); + var queryComponents = new Array(); + + for (var i = 0; i < elements.length; i++) { + var queryComponent = Form.Element.serialize(elements[i]); + if (queryComponent) + queryComponents.push(queryComponent); + } + + return queryComponents.join('&'); + }, + + getElements: function(form) { + form = $(form); + var elements = new Array(); + + for (tagName in Form.Element.Serializers) { + var tagElements = form.getElementsByTagName(tagName); + for (var j = 0; j < tagElements.length; j++) + elements.push(tagElements[j]); + } + return elements; + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) + return inputs; + + var matchingInputs = new Array(); + for (var i = 0; i < inputs.length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || + (name && input.name != name)) + continue; + matchingInputs.push(input); + } + + return matchingInputs; + }, + + disable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.blur(); + element.disabled = 'true'; + } + }, + + enable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.disabled = ''; + } + }, + + findFirstElement: function(form) { + return Form.getElements(form).find(function(element) { + return element.type != 'hidden' && !element.disabled && + ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); + }); + }, + + focusFirstElement: function(form) { + Field.activate(Form.findFirstElement(form)); + }, + + reset: function(form) { + $(form).reset(); + } +} + +Form.Element = { + serialize: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) { + var key = encodeURIComponent(parameter[0]); + if (key.length == 0) return; + + if (parameter[1].constructor != Array) + parameter[1] = [parameter[1]]; + + return parameter[1].map(function(value) { + return key + '=' + encodeURIComponent(value); + }).join('&'); + } + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) + return parameter[1]; + } +} + +Form.Element.Serializers = { + input: function(element) { + switch (element.type.toLowerCase()) { + case 'submit': + case 'hidden': + case 'password': + case 'text': + return Form.Element.Serializers.textarea(element); + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element); + } + return false; + }, + + inputSelector: function(element) { + if (element.checked) + return [element.name, element.value]; + }, + + textarea: function(element) { + return [element.name, element.value]; + }, + + select: function(element) { + return Form.Element.Serializers[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + }, + + selectOne: function(element) { + var value = '', opt, index = element.selectedIndex; + if (index >= 0) { + opt = element.options[index]; + value = opt.value; + if (!value && !('value' in opt)) + value = opt.text; + } + return [element.name, value]; + }, + + selectMany: function(element) { + var value = new Array(); + for (var i = 0; i < element.length; i++) { + var opt = element.options[i]; + if (opt.selected) { + var optValue = opt.value; + if (!optValue && !('value' in opt)) + optValue = opt.text; + value.push(optValue); + } + } + return [element.name, value]; + } +} + +/*--------------------------------------------------------------------------*/ + +var $F = Form.Element.getValue; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = function() {} +Abstract.TimedObserver.prototype = { + initialize: function(element, frequency, callback) { + this.frequency = frequency; + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + } +} + +Form.Element.Observer = Class.create(); +Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(); +Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = function() {} +Abstract.EventObserver.prototype = { + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + var elements = Form.getElements(this.element); + for (var i = 0; i < elements.length; i++) + this.registerCallback(elements[i]); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + case 'password': + case 'text': + case 'textarea': + case 'select-one': + case 'select-multiple': + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +} + +Form.Element.EventObserver = Class.create(); +Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(); +Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); +if (!window.Event) { + var Event = new Object(); +} + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + + element: function(event) { + return event.target || event.srcElement; + }, + + isLeftClick: function(event) { + return (((event.which) && (event.which == 1)) || + ((event.button) && (event.button == 1))); + }, + + pointerX: function(event) { + return event.pageX || (event.clientX + + (document.documentElement.scrollLeft || document.body.scrollLeft)); + }, + + pointerY: function(event) { + return event.pageY || (event.clientY + + (document.documentElement.scrollTop || document.body.scrollTop)); + }, + + stop: function(event) { + if (event.preventDefault) { + event.preventDefault(); + event.stopPropagation(); + } else { + event.returnValue = false; + event.cancelBubble = true; + } + }, + + // find the first node with the given tagName, starting from the + // node the event was triggered on; traverses the DOM upwards + findElement: function(event, tagName) { + var element = Event.element(event); + while (element.parentNode && (!element.tagName || + (element.tagName.toUpperCase() != tagName.toUpperCase()))) + element = element.parentNode; + return element; + }, + + observers: false, + + _observeAndCache: function(element, name, observer, useCapture) { + if (!this.observers) this.observers = []; + if (element.addEventListener) { + this.observers.push([element, name, observer, useCapture]); + element.addEventListener(name, observer, useCapture); + } else if (element.attachEvent) { + this.observers.push([element, name, observer, useCapture]); + element.attachEvent('on' + name, observer); + } + }, + + unloadCache: function() { + if (!Event.observers) return; + for (var i = 0; i < Event.observers.length; i++) { + Event.stopObserving.apply(this, Event.observers[i]); + Event.observers[i][0] = null; + } + Event.observers = false; + }, + + observe: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + (navigator.appVersion.match(/Konqueror|Safari|KHTML/) + || element.attachEvent)) + name = 'keydown'; + + this._observeAndCache(element, name, observer, useCapture); + }, + + stopObserving: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + (navigator.appVersion.match(/Konqueror|Safari|KHTML/) + || element.detachEvent)) + name = 'keydown'; + + if (element.removeEventListener) { + element.removeEventListener(name, observer, useCapture); + } else if (element.detachEvent) { + element.detachEvent('on' + name, observer); + } + } +}); + +/* prevent memory leaks in IE */ +Event.observe(window, 'unload', Event.unloadCache, false); +var Position = { + // set to true if needed, warning: firefox performance problems + // NOT neeeded for page scrolling, only if draggable contained in + // scrollable elements + includeScrollOffsets: false, + + // must be called before calling withinIncludingScrolloffset, every time the + // page is scrolled + prepare: function() { + this.deltaX = window.pageXOffset + || document.documentElement.scrollLeft + || document.body.scrollLeft + || 0; + this.deltaY = window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop + || 0; + }, + + realOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return [valueL, valueT]; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return [valueL, valueT]; + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + p = Element.getStyle(element, 'position'); + if (p == 'relative' || p == 'absolute') break; + } + } while (element); + return [valueL, valueT]; + }, + + offsetParent: function(element) { + if (element.offsetParent) return element.offsetParent; + if (element == document.body) return element; + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return element; + + return document.body; + }, + + // caches x/y coordinate pair to use with overlap + within: function(element, x, y) { + if (this.includeScrollOffsets) + return this.withinIncludingScrolloffsets(element, x, y); + this.xcomp = x; + this.ycomp = y; + this.offset = this.cumulativeOffset(element); + + return (y >= this.offset[1] && + y < this.offset[1] + element.offsetHeight && + x >= this.offset[0] && + x < this.offset[0] + element.offsetWidth); + }, + + withinIncludingScrolloffsets: function(element, x, y) { + var offsetcache = this.realOffset(element); + + this.xcomp = x + offsetcache[0] - this.deltaX; + this.ycomp = y + offsetcache[1] - this.deltaY; + this.offset = this.cumulativeOffset(element); + + return (this.ycomp >= this.offset[1] && + this.ycomp < this.offset[1] + element.offsetHeight && + this.xcomp >= this.offset[0] && + this.xcomp < this.offset[0] + element.offsetWidth); + }, + + // within must be called directly before + overlap: function(mode, element) { + if (!mode) return 0; + if (mode == 'vertical') + return ((this.offset[1] + element.offsetHeight) - this.ycomp) / + element.offsetHeight; + if (mode == 'horizontal') + return ((this.offset[0] + element.offsetWidth) - this.xcomp) / + element.offsetWidth; + }, + + clone: function(source, target) { + source = $(source); + target = $(target); + target.style.position = 'absolute'; + var offsets = this.cumulativeOffset(source); + target.style.top = offsets[1] + 'px'; + target.style.left = offsets[0] + 'px'; + target.style.width = source.offsetWidth + 'px'; + target.style.height = source.offsetHeight + 'px'; + }, + + page: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + // Safari fix + if (element.offsetParent==document.body) + if (Element.getStyle(element,'position')=='absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } while (element = element.parentNode); + + return [valueL, valueT]; + }, + + clone: function(source, target) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || {}) + + // find page position of source + source = $(source); + var p = Position.page(source); + + // find coordinate system to use + target = $(target); + var delta = [0, 0]; + var parent = null; + // delta [0,0] will do fine with position: fixed elements, + // position:absolute needs offsetParent deltas + if (Element.getStyle(target,'position') == 'absolute') { + parent = Position.offsetParent(target); + delta = Position.page(parent); + } + + // correct by body offsets (fixes Safari) + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + // set position + if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if(options.setWidth) target.style.width = source.offsetWidth + 'px'; + if(options.setHeight) target.style.height = source.offsetHeight + 'px'; + }, + + absolutize: function(element) { + element = $(element); + if (element.style.position == 'absolute') return; + Position.prepare(); + + var offsets = Position.positionedOffset(element); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px';; + element.style.left = left + 'px';; + element.style.width = width + 'px';; + element.style.height = height + 'px';; + }, + + relativize: function(element) { + element = $(element); + if (element.style.position == 'relative') return; + Position.prepare(); + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + } +} + +// Safari returns margins on body which is incorrect if the child is absolutely +// positioned. For performance reasons, redefine Position.cumulativeOffset for +// KHTML/WebKit only. +if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { + Position.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return [valueL, valueT]; + } +} \ No newline at end of file Index: branches/1.0.x/img/tab_left_select.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/gradient_background_gr.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/customer_login.tpl =================================================================== diff -u -N --- branches/1.0.x/login/customer_login.tpl (revision 0) +++ branches/1.0.x/login/customer_login.tpl (revision 13320) @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + +
    + +
    +
    +

    + + *

    + + + + + + +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + "> + + + + + + + + + " /> + + + + "/> + "/> + +
    + +
    +
    + " alt=""/>
    +
    + " value="" tabindex="" style="width: 170px;"> +
    +
    +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/ic_edit.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/ic_rateit.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/my_account/my_addresses.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/my_addresses.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/my_addresses.tpl (revision 13320) @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + "> +

    +
    + + + + + + + + + + + + + +
    +
    +
     
    + + + + +
    +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/icon_popular.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/side_link_str.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/top_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/star_small.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/forgot_password_reset.tpl =================================================================== diff -u -N --- branches/1.0.x/login/forgot_password_reset.tpl (revision 0) +++ branches/1.0.x/login/forgot_password_reset.tpl (revision 13320) @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + +

    + + +
    + " class="button" /> + + " class="button" onclick="redirect('');" /> + + "/> + + + + +

    + "> +
    +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/my_account/cancel_recurring.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/my_account/cancel_recurring.tpl (revision 0) +++ branches/1.0.x/in-commerce/my_account/cancel_recurring.tpl (revision 13320) @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    + " />  + " onClick="window.location.href=''" />  + + +
    +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/products/new_products.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/new_products.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/new_products.tpl (revision 13320) @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + () + + + + + + + + +
    + + +
    + + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/login/forgot_password_reset_confirm.tpl =================================================================== diff -u -N --- branches/1.0.x/login/forgot_password_reset_confirm.tpl (revision 0) +++ branches/1.0.x/login/forgot_password_reset_confirm.tpl (revision 13320) @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + +
    + + +

    + + " class="button" onclick="redirect('');"/> + +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/side_boxes/popular_manufacturers.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/popular_manufacturers.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/popular_manufacturers.elm.tpl (revision 13320) @@ -0,0 +1,18 @@ + + + + + + + + + +
    + ">" border="0" alt=""> +
    + +
    + + + +
    \ No newline at end of file Index: branches/1.0.x/inc/jquery/thickbox/loadingAnimation.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/reviews.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/button_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/order_details.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/order_details.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/order_details.elm.tpl (revision 13320) @@ -0,0 +1,351 @@ + + + + + " title="" alt="" border="0" />
    +
    + + + + + + + + + + + + + + + + "> + + + + + + + +
    + + + + + + + +
    +
    + +
    + :
    + : - +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    :
    :
    :
    :
    :
    : + +
    +
    + + +
    +
    + +
    :
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    :
    :
    :
    :
    :
    : + +
    +
    + + +
    +
    + +
    :
    :
    :
    :
    :
    +
    + + + + + + +
    +   () +
    + + + + + + +
    +
    + "> +
    +
    + +
    + + + + + + + + + +
    + +   + +
    + + + + + +
    + +
    +
    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    54"> +
    +
    .
    54"> +
    +
    54"> +
    +
    +
    + + :
    +
      +
    54" align="right"> +
    :
    +
    + + +

    + + + + + + + + + + +
    :
    + +
    +
    + + + + (): + + + + + + + : + + + + + + + : + + + + + + + %: + + + + + + + : + + + + + + + + \ No newline at end of file Index: branches/1.0.x/img/banners/home/banner2.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/side_boxes_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/gradient_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/banners/home/banner4.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/content_boxes/sub_categories.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/content_boxes/sub_categories.elm.tpl (revision 0) +++ branches/1.0.x/elements/content_boxes/sub_categories.elm.tpl (revision 13320) @@ -0,0 +1,32 @@ + + + + + + () + + + + + + + +
    + :  |  : + + : +
    + +
    +
    +
    + + + + + +
    +
    + +
    + \ No newline at end of file Index: branches/1.0.x/img/banners/home/banner6.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/orders.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/orders.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/orders.elm.tpl (revision 13320) @@ -0,0 +1,23 @@ + + + + + + + + + + +
    + + + + "> () + + + + + + +
    + \ No newline at end of file Index: branches/1.0.x/img/banners/home/banner8.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_options.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_options.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/content_boxes/checkout/shipping_options.elm.tpl (revision 13320) @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + : + + +
    + + + name="" + id="_" value=""> +  
    +
    + +
    +
    + + + : + +
    + " id="" value="" /> + ').value = this.checked ? 1:0; document.getElementById('events[ord][OnUpdate]').click();" type="checkbox" + + name="cb_" + id="cb_" value="1" /> +  
    + +
    + " value="1" /> +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + "/>
    +
      + : + + +
       + : + + +
       + : + + +
       + : + + +
       + %: + + +
       + : + + +
        + + " class="button"> +
    +
    + + + + +
    + +
    + + + + + + + + ">
    +
    +
    +
    +
    + + + +
    + :
    + + + + + + + + + + +
    + + +
    + + + (">). + + + + . + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/side_boxes/credit_cards.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/credit_cards.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/credit_cards.elm.tpl (revision 13320) @@ -0,0 +1,26 @@ + + + + +
    +
    + + + + + + + + + + + +
    + img/credit_cards/visa.gif" />
    +
    + img/credit_cards/american_express.gif" />
    +
    + img/credit_cards/master_card.gif" />
    +
    + img/credit_cards/novus.gif" />
    +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/img/credit_cards/visa.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/register.tpl =================================================================== diff -u -N --- branches/1.0.x/login/register.tpl (revision 0) +++ branches/1.0.x/login/register.tpl (revision 13320) @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + *

    + + + + + + +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " /> + + + + "/> + "/> + +
    +
    +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/login/register_confirm.tpl =================================================================== diff -u -N --- branches/1.0.x/login/register_confirm.tpl (revision 0) +++ branches/1.0.x/login/register_confirm.tpl (revision 13320) @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/inc/lbox/effects.js =================================================================== diff -u -N --- branches/1.0.x/inc/lbox/effects.js (revision 0) +++ branches/1.0.x/inc/lbox/effects.js (revision 13320) @@ -0,0 +1,903 @@ +// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// Contributors: +// Justin Palmer (http://encytemedia.com/) +// Mark Pilgrim (http://diveintomark.org/) +// Martin Bialasinki +// +// See scriptaculous.js for full license. + +/* ------------- element ext -------------- */ + +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { + var color = '#'; + if(this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if(this.slice(0,1) == '#') { + if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if(this.length==7) color = this.toLowerCase(); + } + } + return(color.length==7 ? color : (arguments[0] || this)); +} + +Element.collectTextNodes = function(element) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); + }).flatten().join(''); +} + +Element.collectTextNodesIgnoreClass = function(element, className) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + Element.collectTextNodes(node) : '')); + }).flatten().join(''); +} + +Element.setStyle = function(element, style) { + element = $(element); + for(k in style) element.style[k.camelize()] = style[k]; +} + +Element.setContentZoom = function(element, percent) { + Element.setStyle(element, {fontSize: (percent/100) + 'em'}); + if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); +} + +Element.getOpacity = function(element){ + var opacity; + if (opacity = Element.getStyle(element, 'opacity')) + return parseFloat(opacity); + if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) + if(opacity[1]) return parseFloat(opacity[1]) / 100; + return 1.0; +} + +Element.setOpacity = function(element, value){ + element= $(element); + if (value == 1){ + Element.setStyle(element, { opacity: + (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? + 0.999999 : null }); + if(/MSIE/.test(navigator.userAgent)) + Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')}); + } else { + if(value < 0.00001) value = 0; + Element.setStyle(element, {opacity: value}); + if(/MSIE/.test(navigator.userAgent)) + Element.setStyle(element, + { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') + + 'alpha(opacity='+value*100+')' }); + } +} + +Element.getInlineOpacity = function(element){ + return $(element).style.opacity || ''; +} + +Element.childrenWithClassName = function(element, className) { + return $A($(element).getElementsByTagName('*')).select( + function(c) { return Element.hasClassName(c, className) }); +} + +Array.prototype.call = function() { + var args = arguments; + this.each(function(f){ f.apply(this, args) }); +} + +/*--------------------------------------------------------------------------*/ + +var Effect = { + tagifyText: function(element) { + var tagifyStyle = 'position:relative'; + if(/MSIE/.test(navigator.userAgent)) tagifyStyle += ';zoom:1'; + element = $(element); + $A(element.childNodes).each( function(child) { + if(child.nodeType==3) { + child.nodeValue.toArray().each( function(character) { + element.insertBefore( + Builder.node('span',{style: tagifyStyle}, + character == ' ' ? String.fromCharCode(160) : character), + child); + }); + Element.remove(child); + } + }); + }, + multiple: function(element, effect) { + var elements; + if(((typeof element == 'object') || + (typeof element == 'function')) && + (element.length)) + elements = element; + else + elements = $(element).childNodes; + + var options = Object.extend({ + speed: 0.1, + delay: 0.0 + }, arguments[2] || {}); + var masterDelay = options.delay; + + $A(elements).each( function(element, index) { + new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); + }); + }, + PAIRS: { + 'slide': ['SlideDown','SlideUp'], + 'blind': ['BlindDown','BlindUp'], + 'appear': ['Appear','Fade'] + }, + toggle: function(element, effect) { + element = $(element); + effect = (effect || 'appear').toLowerCase(); + var options = Object.extend({ + queue: { position:'end', scope:(element.id || 'global') } + }, arguments[2] || {}); + Effect[Element.visible(element) ? + Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); + } +}; + +var Effect2 = Effect; // deprecated + +/* ------------- transitions ------------- */ + +Effect.Transitions = {} + +Effect.Transitions.linear = function(pos) { + return pos; +} +Effect.Transitions.sinoidal = function(pos) { + return (-Math.cos(pos*Math.PI)/2) + 0.5; +} +Effect.Transitions.reverse = function(pos) { + return 1-pos; +} +Effect.Transitions.flicker = function(pos) { + return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; +} +Effect.Transitions.wobble = function(pos) { + return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; +} +Effect.Transitions.pulse = function(pos) { + return (Math.floor(pos*10) % 2 == 0 ? + (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10))); +} +Effect.Transitions.none = function(pos) { + return 0; +} +Effect.Transitions.full = function(pos) { + return 1; +} + +/* ------------- core effects ------------- */ + +Effect.ScopedQueue = Class.create(); +Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { + initialize: function() { + this.effects = []; + this.interval = null; + }, + _each: function(iterator) { + this.effects._each(iterator); + }, + add: function(effect) { + var timestamp = new Date().getTime(); + + var position = (typeof effect.options.queue == 'string') ? + effect.options.queue : effect.options.queue.position; + + switch(position) { + case 'front': + // move unstarted effects after this effect + this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { + e.startOn += effect.finishOn; + e.finishOn += effect.finishOn; + }); + break; + case 'end': + // start effect after last queued effect has finished + timestamp = this.effects.pluck('finishOn').max() || timestamp; + break; + } + + effect.startOn += timestamp; + effect.finishOn += timestamp; + this.effects.push(effect); + if(!this.interval) + this.interval = setInterval(this.loop.bind(this), 40); + }, + remove: function(effect) { + this.effects = this.effects.reject(function(e) { return e==effect }); + if(this.effects.length == 0) { + clearInterval(this.interval); + this.interval = null; + } + }, + loop: function() { + var timePos = new Date().getTime(); + this.effects.invoke('loop', timePos); + } +}); + +Effect.Queues = { + instances: $H(), + get: function(queueName) { + if(typeof queueName != 'string') return queueName; + + if(!this.instances[queueName]) + this.instances[queueName] = new Effect.ScopedQueue(); + + return this.instances[queueName]; + } +} +Effect.Queue = Effect.Queues.get('global'); + +Effect.DefaultOptions = { + transition: Effect.Transitions.sinoidal, + duration: 1.0, // seconds + fps: 25.0, // max. 25fps due to Effect.Queue implementation + sync: false, // true for combining + from: 0.0, + to: 1.0, + delay: 0.0, + queue: 'parallel' +} + +Effect.Base = function() {}; +Effect.Base.prototype = { + position: null, + start: function(options) { + this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); + this.currentFrame = 0; + this.state = 'idle'; + this.startOn = this.options.delay*1000; + this.finishOn = this.startOn + (this.options.duration*1000); + this.event('beforeStart'); + if(!this.options.sync) + Effect.Queues.get(typeof this.options.queue == 'string' ? + 'global' : this.options.queue.scope).add(this); + }, + loop: function(timePos) { + if(timePos >= this.startOn) { + if(timePos >= this.finishOn) { + this.render(1.0); + this.cancel(); + this.event('beforeFinish'); + if(this.finish) this.finish(); + this.event('afterFinish'); + return; + } + var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); + var frame = Math.round(pos * this.options.fps * this.options.duration); + if(frame > this.currentFrame) { + this.render(pos); + this.currentFrame = frame; + } + } + }, + render: function(pos) { + if(this.state == 'idle') { + this.state = 'running'; + this.event('beforeSetup'); + if(this.setup) this.setup(); + this.event('afterSetup'); + } + if(this.state == 'running') { + if(this.options.transition) pos = this.options.transition(pos); + pos *= (this.options.to-this.options.from); + pos += this.options.from; + this.position = pos; + this.event('beforeUpdate'); + if(this.update) this.update(pos); + this.event('afterUpdate'); + } + }, + cancel: function() { + if(!this.options.sync) + Effect.Queues.get(typeof this.options.queue == 'string' ? + 'global' : this.options.queue.scope).remove(this); + this.state = 'finished'; + }, + event: function(eventName) { + if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); + if(this.options[eventName]) this.options[eventName](this); + }, + inspect: function() { + return '#'; + } +} + +Effect.Parallel = Class.create(); +Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { + initialize: function(effects) { + this.effects = effects || []; + this.start(arguments[1]); + }, + update: function(position) { + this.effects.invoke('render', position); + }, + finish: function(position) { + this.effects.each( function(effect) { + effect.render(1.0); + effect.cancel(); + effect.event('beforeFinish'); + if(effect.finish) effect.finish(position); + effect.event('afterFinish'); + }); + } +}); + +Effect.Opacity = Class.create(); +Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { + initialize: function(element) { + this.element = $(element); + // make this work on IE on elements without 'layout' + if(/MSIE/.test(navigator.userAgent) && (!this.element.hasLayout)) + Element.setStyle(this.element, {zoom: 1}); + var options = Object.extend({ + from: Element.getOpacity(this.element) || 0.0, + to: 1.0 + }, arguments[1] || {}); + this.start(options); + }, + update: function(position) { + Element.setOpacity(this.element, position); + } +}); + +Effect.Move = Class.create(); +Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { + initialize: function(element) { + this.element = $(element); + var options = Object.extend({ + x: 0, + y: 0, + mode: 'relative' + }, arguments[1] || {}); + this.start(options); + }, + setup: function() { + // Bug in Opera: Opera returns the "real" position of a static element or + // relative element that does not have top/left explicitly set. + // ==> Always set top and left for position relative elements in your stylesheets + // (to 0 if you do not need them) + Element.makePositioned(this.element); + this.originalLeft = parseFloat(Element.getStyle(this.element,'left') || '0'); + this.originalTop = parseFloat(Element.getStyle(this.element,'top') || '0'); + if(this.options.mode == 'absolute') { + // absolute movement, so we need to calc deltaX and deltaY + this.options.x = this.options.x - this.originalLeft; + this.options.y = this.options.y - this.originalTop; + } + }, + update: function(position) { + Element.setStyle(this.element, { + left: this.options.x * position + this.originalLeft + 'px', + top: this.options.y * position + this.originalTop + 'px' + }); + } +}); + +// for backwards compatibility +Effect.MoveBy = function(element, toTop, toLeft) { + return new Effect.Move(element, + Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); +}; + +Effect.Scale = Class.create(); +Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { + initialize: function(element, percent) { + this.element = $(element) + var options = Object.extend({ + scaleX: true, + scaleY: true, + scaleContent: true, + scaleFromCenter: false, + scaleMode: 'box', // 'box' or 'contents' or {} with provided values + scaleFrom: 100.0, + scaleTo: percent + }, arguments[2] || {}); + this.start(options); + }, + setup: function() { + this.restoreAfterFinish = this.options.restoreAfterFinish || false; + this.elementPositioning = Element.getStyle(this.element,'position'); + + this.originalStyle = {}; + ['top','left','width','height','fontSize'].each( function(k) { + this.originalStyle[k] = this.element.style[k]; + }.bind(this)); + + this.originalTop = this.element.offsetTop; + this.originalLeft = this.element.offsetLeft; + + var fontSize = Element.getStyle(this.element,'font-size') || '100%'; + ['em','px','%'].each( function(fontSizeType) { + if(fontSize.indexOf(fontSizeType)>0) { + this.fontSize = parseFloat(fontSize); + this.fontSizeType = fontSizeType; + } + }.bind(this)); + + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; + + this.dims = null; + if(this.options.scaleMode=='box') + this.dims = [this.element.offsetHeight, this.element.offsetWidth]; + if(/^content/.test(this.options.scaleMode)) + this.dims = [this.element.scrollHeight, this.element.scrollWidth]; + if(!this.dims) + this.dims = [this.options.scaleMode.originalHeight, + this.options.scaleMode.originalWidth]; + }, + update: function(position) { + var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); + if(this.options.scaleContent && this.fontSize) + Element.setStyle(this.element, {fontSize: this.fontSize * currentScale + this.fontSizeType }); + this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); + }, + finish: function(position) { + if (this.restoreAfterFinish) Element.setStyle(this.element, this.originalStyle); + }, + setDimensions: function(height, width) { + var d = {}; + if(this.options.scaleX) d.width = width + 'px'; + if(this.options.scaleY) d.height = height + 'px'; + if(this.options.scaleFromCenter) { + var topd = (height - this.dims[0])/2; + var leftd = (width - this.dims[1])/2; + if(this.elementPositioning == 'absolute') { + if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; + if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; + } else { + if(this.options.scaleY) d.top = -topd + 'px'; + if(this.options.scaleX) d.left = -leftd + 'px'; + } + } + Element.setStyle(this.element, d); + } +}); + +Effect.Highlight = Class.create(); +Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { + initialize: function(element) { + this.element = $(element); + var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); + this.start(options); + }, + setup: function() { + // Prevent executing on elements not in the layout flow + if(Element.getStyle(this.element, 'display')=='none') { this.cancel(); return; } + // Disable background image during the effect + this.oldStyle = { + backgroundImage: Element.getStyle(this.element, 'background-image') }; + Element.setStyle(this.element, {backgroundImage: 'none'}); + if(!this.options.endcolor) + this.options.endcolor = Element.getStyle(this.element, 'background-color').parseColor('#ffffff'); + if(!this.options.restorecolor) + this.options.restorecolor = Element.getStyle(this.element, 'background-color'); + // init color calculations + this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); + this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); + }, + update: function(position) { + Element.setStyle(this.element,{backgroundColor: $R(0,2).inject('#',function(m,v,i){ + return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); + }, + finish: function() { + Element.setStyle(this.element, Object.extend(this.oldStyle, { + backgroundColor: this.options.restorecolor + })); + } +}); + +Effect.ScrollTo = Class.create(); +Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { + initialize: function(element) { + this.element = $(element); + this.start(arguments[1] || {}); + }, + setup: function() { + Position.prepare(); + var offsets = Position.cumulativeOffset(this.element); + if(this.options.offset) offsets[1] += this.options.offset; + var max = window.innerHeight ? + window.height - window.innerHeight : + document.body.scrollHeight - + (document.documentElement.clientHeight ? + document.documentElement.clientHeight : document.body.clientHeight); + this.scrollStart = Position.deltaY; + this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; + }, + update: function(position) { + Position.prepare(); + window.scrollTo(Position.deltaX, + this.scrollStart + (position*this.delta)); + } +}); + +/* ------------- combination effects ------------- */ + +Effect.Fade = function(element) { + var oldOpacity = Element.getInlineOpacity(element); + var options = Object.extend({ + from: Element.getOpacity(element) || 1.0, + to: 0.0, + afterFinishInternal: function(effect) { with(Element) { + if(effect.options.to!=0) return; + hide(effect.element); + setStyle(effect.element, {opacity: oldOpacity}); }} + }, arguments[1] || {}); + return new Effect.Opacity(element,options); +} + +Effect.Appear = function(element) { + var options = Object.extend({ + from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), + to: 1.0, + beforeSetup: function(effect) { with(Element) { + setOpacity(effect.element, effect.options.from); + show(effect.element); }} + }, arguments[1] || {}); + return new Effect.Opacity(element,options); +} + +Effect.Puff = function(element) { + element = $(element); + var oldStyle = { opacity: Element.getInlineOpacity(element), position: Element.getStyle(element, 'position') }; + return new Effect.Parallel( + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, + beforeSetupInternal: function(effect) { with(Element) { + setStyle(effect.effects[0].element, {position: 'absolute'}); }}, + afterFinishInternal: function(effect) { with(Element) { + hide(effect.effects[0].element); + setStyle(effect.effects[0].element, oldStyle); }} + }, arguments[1] || {}) + ); +} + +Effect.BlindUp = function(element) { + element = $(element); + Element.makeClipping(element); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + restoreAfterFinish: true, + afterFinishInternal: function(effect) { with(Element) { + [hide, undoClipping].call(effect.element); }} + }, arguments[1] || {}) + ); +} + +Effect.BlindDown = function(element) { + element = $(element); + var oldHeight = Element.getStyle(element, 'height'); + var elementDimensions = Element.getDimensions(element); + return new Effect.Scale(element, 100, + Object.extend({ scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { with(Element) { + makeClipping(effect.element); + setStyle(effect.element, {height: '0px'}); + show(effect.element); + }}, + afterFinishInternal: function(effect) { with(Element) { + undoClipping(effect.element); + setStyle(effect.element, {height: oldHeight}); + }} + }, arguments[1] || {}) + ); +} + +Effect.SwitchOff = function(element) { + element = $(element); + var oldOpacity = Element.getInlineOpacity(element); + return new Effect.Appear(element, { + duration: 0.4, + from: 0, + transition: Effect.Transitions.flicker, + afterFinishInternal: function(effect) { + new Effect.Scale(effect.element, 1, { + duration: 0.3, scaleFromCenter: true, + scaleX: false, scaleContent: false, restoreAfterFinish: true, + beforeSetup: function(effect) { with(Element) { + [makePositioned,makeClipping].call(effect.element); + }}, + afterFinishInternal: function(effect) { with(Element) { + [hide,undoClipping,undoPositioned].call(effect.element); + setStyle(effect.element, {opacity: oldOpacity}); + }} + }) + } + }); +} + +Effect.DropOut = function(element) { + element = $(element); + var oldStyle = { + top: Element.getStyle(element, 'top'), + left: Element.getStyle(element, 'left'), + opacity: Element.getInlineOpacity(element) }; + return new Effect.Parallel( + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 }) ], + Object.extend( + { duration: 0.5, + beforeSetup: function(effect) { with(Element) { + makePositioned(effect.effects[0].element); }}, + afterFinishInternal: function(effect) { with(Element) { + [hide, undoPositioned].call(effect.effects[0].element); + setStyle(effect.effects[0].element, oldStyle); }} + }, arguments[1] || {})); +} + +Effect.Shake = function(element) { + element = $(element); + var oldStyle = { + top: Element.getStyle(element, 'top'), + left: Element.getStyle(element, 'left') }; + return new Effect.Move(element, + { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { with(Element) { + undoPositioned(effect.element); + setStyle(effect.element, oldStyle); + }}}) }}) }}) }}) }}) }}); +} + +Effect.SlideDown = function(element) { + element = $(element); + Element.cleanWhitespace(element); + // SlideDown need to have the content of the element wrapped in a container element with fixed height! + var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); + var elementDimensions = Element.getDimensions(element); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { with(Element) { + makePositioned(effect.element); + makePositioned(effect.element.firstChild); + if(window.opera) setStyle(effect.element, {top: ''}); + makeClipping(effect.element); + setStyle(effect.element, {height: '0px'}); + show(element); }}, + afterUpdateInternal: function(effect) { with(Element) { + setStyle(effect.element.firstChild, {bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, + afterFinishInternal: function(effect) { with(Element) { + undoClipping(effect.element); + undoPositioned(effect.element.firstChild); + undoPositioned(effect.element); + setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} + }, arguments[1] || {}) + ); +} + +Effect.SlideUp = function(element) { + element = $(element); + Element.cleanWhitespace(element); + var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + scaleMode: 'box', + scaleFrom: 100, + restoreAfterFinish: true, + beforeStartInternal: function(effect) { with(Element) { + makePositioned(effect.element); + makePositioned(effect.element.firstChild); + if(window.opera) setStyle(effect.element, {top: ''}); + makeClipping(effect.element); + show(element); }}, + afterUpdateInternal: function(effect) { with(Element) { + setStyle(effect.element.firstChild, {bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, + afterFinishInternal: function(effect) { with(Element) { + [hide, undoClipping].call(effect.element); + undoPositioned(effect.element.firstChild); + undoPositioned(effect.element); + setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} + }, arguments[1] || {}) + ); +} + +// Bug in opera makes the TD containing this element expand for a instance after finish +Effect.Squish = function(element) { + return new Effect.Scale(element, window.opera ? 1 : 0, + { restoreAfterFinish: true, + beforeSetup: function(effect) { with(Element) { + makeClipping(effect.element); }}, + afterFinishInternal: function(effect) { with(Element) { + hide(effect.element); + undoClipping(effect.element); }} + }); +} + +Effect.Grow = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransistion: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.full + }, arguments[1] || {}); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: Element.getInlineOpacity(element) }; + + var dims = Element.getDimensions(element); + var initialMoveX, initialMoveY; + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + initialMoveX = initialMoveY = moveX = moveY = 0; + break; + case 'top-right': + initialMoveX = dims.width; + initialMoveY = moveY = 0; + moveX = -dims.width; + break; + case 'bottom-left': + initialMoveX = moveX = 0; + initialMoveY = dims.height; + moveY = -dims.height; + break; + case 'bottom-right': + initialMoveX = dims.width; + initialMoveY = dims.height; + moveX = -dims.width; + moveY = -dims.height; + break; + case 'center': + initialMoveX = dims.width / 2; + initialMoveY = dims.height / 2; + moveX = -dims.width / 2; + moveY = -dims.height / 2; + break; + } + + return new Effect.Move(element, { + x: initialMoveX, + y: initialMoveY, + duration: 0.01, + beforeSetup: function(effect) { with(Element) { + hide(effect.element); + makeClipping(effect.element); + makePositioned(effect.element); + }}, + afterFinishInternal: function(effect) { + new Effect.Parallel( + [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), + new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), + new Effect.Scale(effect.element, 100, { + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) + ], Object.extend({ + beforeSetup: function(effect) { with(Element) { + setStyle(effect.effects[0].element, {height: '0px'}); + show(effect.effects[0].element); }}, + afterFinishInternal: function(effect) { with(Element) { + [undoClipping, undoPositioned].call(effect.effects[0].element); + setStyle(effect.effects[0].element, oldStyle); }} + }, options) + ) + } + }); +} + +Effect.Shrink = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransistion: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.none + }, arguments[1] || {}); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: Element.getInlineOpacity(element) }; + + var dims = Element.getDimensions(element); + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + moveX = moveY = 0; + break; + case 'top-right': + moveX = dims.width; + moveY = 0; + break; + case 'bottom-left': + moveX = 0; + moveY = dims.height; + break; + case 'bottom-right': + moveX = dims.width; + moveY = dims.height; + break; + case 'center': + moveX = dims.width / 2; + moveY = dims.height / 2; + break; + } + + return new Effect.Parallel( + [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), + new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), + new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) + ], Object.extend({ + beforeStartInternal: function(effect) { with(Element) { + [makePositioned, makeClipping].call(effect.effects[0].element) }}, + afterFinishInternal: function(effect) { with(Element) { + [hide, undoClipping, undoPositioned].call(effect.effects[0].element); + setStyle(effect.effects[0].element, oldStyle); }} + }, options) + ); +} + +Effect.Pulsate = function(element) { + element = $(element); + var options = arguments[1] || {}; + var oldOpacity = Element.getInlineOpacity(element); + var transition = options.transition || Effect.Transitions.sinoidal; + var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) }; + reverser.bind(transition); + return new Effect.Opacity(element, + Object.extend(Object.extend({ duration: 3.0, from: 0, + afterFinishInternal: function(effect) { Element.setStyle(effect.element, {opacity: oldOpacity}); } + }, options), {transition: reverser})); +} + +Effect.Fold = function(element) { + element = $(element); + var oldStyle = { + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height }; + Element.makeClipping(element); + return new Effect.Scale(element, 5, Object.extend({ + scaleContent: false, + scaleX: false, + afterFinishInternal: function(effect) { + new Effect.Scale(element, 1, { + scaleContent: false, + scaleY: false, + afterFinishInternal: function(effect) { with(Element) { + [hide, undoClipping].call(effect.element); + setStyle(effect.element, oldStyle); + }} }); + }}, arguments[1] || {})); +} Index: branches/1.0.x/in-commerce/products/add_review.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/add_review.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/add_review.tpl (revision 13320) @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + +
    + + img/shopping_cart_item.gif" alt=""/> + "> + + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + <inp2:m_phrase name="/> + + + +
    +
    + + + + + + +
    + + + " rel="lightbox" target="_blank"> +
    +
    + + +
    +
    +
    +
    + :
    + :
    + : + + : (: ) + +
    + + + : ( "> )
    +
    + + + :
    +
    + + :
    + + + : (%)
    +
    +
    + + + :
    +
    + + +
    +
    +
    + + + + + + + + +

    + + +
    + + + + *

    + + + + + +

    + +
    + + + + + + + + " /> + +
    +
    +
    + + +
    +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/starrating.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/products/add_review_confirm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/add_review_confirm.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/add_review_confirm.tpl (revision 13320) @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + +

    + "> +
    +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/pixel_blue.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/s.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/checkout_steps.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/checkout_steps.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/checkout_steps.elm.tpl (revision 13320) @@ -0,0 +1,44 @@ + + + + + + + + +
    + + . ">
    +
    + + + .
    +
    + + + .
    +
    + + + + + + + + + + +
    \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/side_boxes/top_seller_products.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/top_seller_products.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/top_seller_products.elm.tpl (revision 13320) @@ -0,0 +1,17 @@ + + + + "> () + + + + + + +
    + + + ">... + + + Index: branches/1.0.x/img/manufactures_logo.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/searchbox_background_2.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/tab_center_select.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/elements/content_boxes/no_favorites.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/elements/content_boxes/no_favorites.elm.tpl (revision 0) +++ branches/1.0.x/elements/content_boxes/no_favorites.elm.tpl (revision 13320) @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/elements/html_head.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/html_head.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/html_head.elm.tpl (revision 13320) @@ -0,0 +1,6 @@ + + +inc/styles.css" type="text/css" /> + + + Index: branches/1.0.x/img/languages_separator.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/ic_addtofav.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/delete_button_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/menu-li-1-level.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/side_boxes/recent_products.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/side_boxes/recent_products.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/side_boxes/recent_products.elm.tpl (revision 13320) @@ -0,0 +1,30 @@ + + + + "> () + + + + + + ">...
    +
    + + + + + + + + +
    +
    + "/> +
    +
    + + + + + + Index: branches/1.0.x/img/searchbox_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/login/forgot_password.tpl =================================================================== diff -u -N --- branches/1.0.x/login/forgot_password.tpl (revision 0) +++ branches/1.0.x/login/forgot_password.tpl (revision 13320) @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + +
    + +
    + + + "> + + + + + + "> + + + + + + + "> + + + + + + + + + " /> + ');" value=""> + +
    + +
    +
    + " tabindex="" style="width: 155px;"> +
    + +
    + +
    +
    + " tabindex="" style="width: 155px;"> +
    +
    +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/img/directory_icon.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/img/input_text_background.gif =================================================================== diff -u -N Binary files differ Index: branches/1.0.x/in-commerce/elements/content_boxes/checkout/form_register.elm.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/elements/content_boxes/checkout/form_register.elm.tpl (revision 0) +++ branches/1.0.x/in-commerce/elements/content_boxes/checkout/form_register.elm.tpl (revision 13320) @@ -0,0 +1,54 @@ + + + + + + *

    + + + + + + +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + "> + + + + + + "/> + + "/> + +
    +
    +
    \ No newline at end of file Index: branches/1.0.x/login/forgot_password_reset_notice.tpl =================================================================== diff -u -N --- branches/1.0.x/login/forgot_password_reset_notice.tpl (revision 0) +++ branches/1.0.x/login/forgot_password_reset_notice.tpl (revision 13320) @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + +
    + +

    + + " class="button" onclick="redirect('');"/> + +
    + +
    + + + + + \ No newline at end of file Index: branches/1.0.x/in-commerce/products/search_results.tpl =================================================================== diff -u -N --- branches/1.0.x/in-commerce/products/search_results.tpl (revision 0) +++ branches/1.0.x/in-commerce/products/search_results.tpl (revision 13320) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + () + + + + + + + + + +
    + + +
    +
    + + + + + \ No newline at end of file