Index: branches/1.0.x/inc/js/jquery.scripts.js =================================================================== diff -u -N -r14822 -r14890 --- branches/1.0.x/inc/js/jquery.scripts.js (.../jquery.scripts.js) (revision 14822) +++ branches/1.0.x/inc/js/jquery.scripts.js (.../jquery.scripts.js) (revision 14890) @@ -1,6 +1,6 @@ /* === General usage functions === */ -function jq($selector) { - return $selector.replace(/(\[|\]|\.)/g, '\\$1'); +function jq($selector, $delimiter) { + return ($selector + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + ($delimiter || '') + '-]', 'g'), '\\$&'); } function in_array(needle, haystack) @@ -32,10 +32,10 @@ return document.getElementById( $prepend + $mask.replace('#FIELD_NAME#', $field) + $append ); } -function update_checkbox_options($cb_mask, $hidden_id, $form_id) +function update_checkbox_options($cb_mask, $hidden_id, $form_selector) { var $tmp = '', - $kf = document.getElementById($form_id !== undefined ? $form_id : $form_name); + $kf = $($form_selector !== undefined ? $form_selector : '#' + $form_name).get(0); for (var i = 0; i < $kf.elements.length; i++) { if ( $kf.elements[i].id.match($cb_mask) ) { @@ -52,6 +52,40 @@ document.getElementById($hidden_id).value = $tmp.replace(/,$/, ''); } +function watch_anchor () { + var $last_anchor = ''; + + setInterval( + function () { + if (window.location.hash != $last_anchor) { + $last_anchor = window.location.hash; + var $new_anchor = $last_anchor ? $last_anchor.substring(1) : ''; + + $('body').trigger('anchorchanged', [$new_anchor]); + } + }, 100 + ); +} + +function sort_object($object) { + // Setup Arrays + var $sorted_keys = [], $sorted_object = {}; + + for (var $property_name in $object) { + $sorted_keys.push($property_name); + } + + $sorted_keys.sort(); + + $($sorted_keys).each( + function () { + $sorted_object[this] = $object[this]; + } + ); + + return $sorted_object; +} + /* === DBlocks class === */ function DBlocks() { var $me = this; @@ -137,59 +171,63 @@ ) } -$(document).ready(function() -{ - $('#change-password').click( - function($e) { - $('#password-show').hide(); - $('#password-block').fadeIn(); +/* === Startup === */ +$(document).ready( + function() { + watch_anchor(); - return false; - } - ); + $('#change-password').click( + function($e) { + $('#password-show').hide(); + $('#password-block').fadeIn(); + return false; + } + ); - $('.addtocart, .button-addtocart').click( - function () { - var $me = $(this), - $qty = $me.attr('qty_id') !== undefined ? parseInt($('#' + $me.attr('qty_id')).val()) : 1; + $('.addtocart, .button-addtocart').click( + function () { + var $me = $(this), + $qty = $me.attr('qty_id') !== undefined ? parseInt($('#' + $me.attr('qty_id')).val()) : 1; - if ( $me.hasClass('addedtocart') ) { - // disabled button - return false; - } - if ( isNaN($qty) ) { - $qty = 1; - } + if ( $me.hasClass('addedtocart') ) { + // disabled button + return false; + } - var $bubble = $('.basketStatus'), - $timer_id = $bubble.data('hide_timer'); + if ( isNaN($qty) ) { + $qty = 1; + } - clearTimeout($timer_id); + var $bubble = $('.basketStatus'), + $timer_id = $bubble.data('hide_timer'); - $.get( - $me.attr('href') + '&qty=' + $qty, - function ($bubble_content) { - $('.basketContent', $bubble).html( $bubble_content.replace(/#QTY#/g, $qty) ); - $bubble - .stop(true, true) - .fadeIn( - 'slow', - function () { - var $timer = setTimeout(function(){ $bubble.fadeOut('slow'); }, 2000); - $bubble.data('hide_timer', $timer); - } - ); + clearTimeout($timer_id); - if ( $me.hasClass('addtocart') ) { - $me.removeClass('addtocart').addClass('addedtocart').html('Added to Cart'); + $.get( + $me.attr('href') + '&qty=' + $qty, + function ($bubble_content) { + $('.basketContent', $bubble).html( $bubble_content.replace(/#QTY#/g, $qty) ); + $bubble + .stop(true, true) + .fadeIn( + 'slow', + function () { + var $timer = setTimeout(function(){ $bubble.fadeOut('slow'); }, 2000); + $bubble.data('hide_timer', $timer); + } + ); + + if ( $me.hasClass('addtocart') ) { + $me.removeClass('addtocart').addClass('addedtocart').html('Added to Cart'); + } } - } - ); + ); - return false; - } - ); -}); \ No newline at end of file + return false; + } + ); + } +); \ No newline at end of file