Index: branches/1.0.x/inc/js/list_manager.js =================================================================== --- branches/1.0.x/inc/js/list_manager.js (revision 15859) +++ branches/1.0.x/inc/js/list_manager.js (revision 15860) @@ -1,346 +1,346 @@ function ListManager() {} ListManager.containerSelector = ''; // selector id of container ListManager.url = ''; // url to template with list contents ListManager.urlParams = {layout: 'list'}; ListManager.filters = {}; ListManager.xhrRequests = []; ListManager.reloadTimer = null; ListManager.reloadTimeout = 1000; ListManager.firstLoad = true; ListManager.getUrl = function () { var $url = this.url; } ListManager.cancelXHRRequests = function () { while ( this.xhrRequests.length > 0 ) { this.xhrRequests.shift().abort(); } } ListManager.reload = function ($now) { this.cancelXHRRequests(); if ( $now === undefined || $now === false ) { this.updateAnchor(); return; } var $container = $(this.containerSelector); $container.fadeTo('fast', 0.7); var $request = $.post( this.url, this.urlParams, function ($data) { $container.html($data).fadeTo('fast', 1.0); } ); this.xhrRequests.push($request); } ListManager.scheduleReload = function () { var $me = this; clearTimeout(this.reloadTimer); this.reloadTimer = setTimeout(function() { $me.reload(); }, this.reloadTimeout); } ListManager.setParam = function ($name, $value, $reload) { if ( $value === undefined || $value === '' ) { // don't pass empty parameters delete this.urlParams[$name]; } else { this.urlParams[$name] = $value; } if ( $reload === true ) { this.reload(); } } ListManager.getParam = function ($name) { return this.urlParams[$name] !== undefined ? this.urlParams[$name] : false; } ListManager.updateAnchor = function () { var $query_string = [], $url_params = sort_object(this.urlParams); for (var $param_name in $url_params) { $query_string.push( $param_name + '=' + encodeURIComponent(this.urlParams[$param_name]) ); } window.location.hash = '#' + $query_string.join('&'); } ListManager.parseAnchor = function ($anchor) { var $query_string = {}; $anchor.replace( new RegExp('([^?=&]+)(=([^&]*))?', 'g'), function($0, $1, $2, $3) { $query_string[$1] = decodeURIComponent($3); } ); this.urlParams = $query_string; // sync values from url params into empty filters on first page with anchor load this.initFilters(); this.reload(true); } ListManager.replaceFilter = function ($form_id, $form_html) { $('#' + $form_id).replaceWith($form_html); } ListManager.replaceCounters = function ($field, $counters) { // reset all counters in case if we got less, then are displayed right now $('.filter-counter', '#filter-form-' + $field).text('0'); for (var $option_value in $counters) { $('#' + jq('filter-counter[' + $field + '][' + $option_value + ']')).text($counters[$option_value]); } } ListManager.registerFilter = function ($field) { var $manager = this, $form = $('#filter-form-' + $field); $manager.filters[$field] = {'type': $form.attr('filter_type')}; /*$('h2:first a', $form).click( function ($e) { var $header = $(this).parent(), $active = $header.hasClass('active'); $header.toggleClass('active', !$active); $header.next().toggleClass('noactive', $active); return false; } );*/ $('h2:first .reset-filter', $form).click( function ($e) { $manager.resetFilter($field); return false; } ); switch( $manager.filters[$field].type ) { case 'radio': $("input[type='radio']", $form).click( function ($e) { $manager.updateFilterParams($field); } ); break; case 'checkbox': $("input[type='checkbox']", $form).click( function ($e) { var $checkbox = $(this), $hidden_id = $checkbox.attr('id').replace(/_([\d\w-=]|)+$/, ''), $regexp = new RegExp(jq($hidden_id) + '_([\\d\\w-=]+)'); if ( $checkbox.val() == '' ) { // "All" checkbox - $("input[type='checkbox']", $form).not($checkbox).attr('checked', false); + $("input[type='checkbox']", $form).not($checkbox).prop('checked', false); } else if ( $checkbox.is(':checked') ) { - $("input[type='checkbox'][value='']", $form).attr('checked', false); + $("input[type='checkbox'][value='']", $form).prop('checked', false); } update_checkbox_options($regexp, $hidden_id, $form); $manager.updateFilterParams($field); } ); break; } } ListManager.setFilterParams = function ($field, $params) { for (var $param_name in $params) { this.setParam('filter_params[' + $field + '][' + $param_name + ']', $params[$param_name]); } } ListManager.resetFilters = function ($reload) { for (var $filter_field in this.filters) { this.resetFilter($filter_field, $reload); } this.setParam('exclude_filters', ''); } ListManager.resetFilter = function ($field, $reload) { var $manager = this, $form = $('#filter-form-' + $field); switch( $manager.filters[$field].type ) { case 'radio': - $("input[type='radio'][value='']", $form).attr('checked', true); + $("input[type='radio'][value='']", $form).prop('checked', true); break; case 'checkbox': var $checkbox = $("input[type='checkbox'][value='']", $form), $hidden_id = $checkbox.attr('id').replace(/_([\d\w-=]|)+$/, ''), $regexp = new RegExp(jq($hidden_id) + '_([\\d\\w-=]+)'); - $checkbox.attr('checked', true); - $("input[type='checkbox']", $form).not($checkbox).attr('checked', false); + $checkbox.prop('checked', true); + $("input[type='checkbox']", $form).not($checkbox).prop('checked', false); update_checkbox_options($regexp, $hidden_id, $form); break; case 'range': var $param_name = 'filters[' + $field + ']', $slider = $('#' + jq($param_name + '_slider') ); $slider.slider('option', 'values', [$slider.slider('option', 'min'), $slider.slider('option', 'max')]); $('#' + jq($param_name) ).val(''); break; } $manager.updateFilterParams($field, $reload); } ListManager.initFilters = function () { if ( !this.firstLoad ) { return; } for (var $filter_field in this.filters) { this.initFilter($filter_field); } this.firstLoad = false; } ListManager.toggleFilter = function ($field, $toggle) { var $form = $('#filter-form-' + $field), $param_value = this.getParam('filters[' + $field + ']'); if ( $toggle === undefined ) { $toggle = $param_value !== false && $param_value !== ''; } $('h2:first', $form).toggleClass('active', $toggle); $('h2:first .reset-filter', $form).toggle($toggle); } ListManager.initFilter = function ($field) { var $values = '', $form = $('#filter-form-' + $field), $param_name = 'filters[' + $field + ']', $param_value = this.getParam($param_name); if ( $param_value === false || $param_value === '' ) { return; } this.toggleFilter($field); switch( this.filters[$field].type ) { case 'radio': - $('#' + jq($param_name + '_' + $param_value) ).attr('checked', true); + $('#' + jq($param_name + '_' + $param_value) ).prop('checked', true); break; case 'checkbox': $values = $param_value.substring(1, $param_value.length - 1).split('|'); for (var $i = 0; $i < $values.length; $i++) { - $('#' + jq($param_name + '_' + $values[$i]) ).attr('checked', true); + $('#' + jq($param_name + '_' + $values[$i]) ).prop('checked', true); } - $('#' + jq($param_name + '_') ).attr('checked', false); + $('#' + jq($param_name + '_') ).prop('checked', false); $('#' + jq($param_name) ).val($param_value); break; case 'range': var $slider = $('#' + jq($param_name + '_slider') ), $slider_options = { min: $slider.slider('option', 'min'), max: $slider.slider('option', 'max'), step: $slider.slider('option', 'step') }; $values = $param_value.split('-'); $values = this.invertRange($slider_options, $values[0], $values[1]); $slider.slider('option', 'values', $values); $('#' + jq($param_name) ).val($param_value); break; } this.syncChecked( $("input[type=checkbox], input[type=radio]", '#filter-form-' + $field) ); } ListManager.invertRange = function ($options, $min, $max) { var $min_value = $options.min + (($options.max - $max) / $options.step) * $options.step, $max_value = $options.max - (($min - $options.min) / $options.step) * $options.step; return [$min_value, $max_value]; } ListManager.syncChecked = function ($checkboxes) { $checkboxes.each( function () { var $me = $(this), $checked = $me.is(':checked'), $dt = $me.parent(), $dd = $dt.next(); $dt.toggleClass('active', $checked); $dd.toggleClass('active', $checked); } ); } ListManager.updateFilterParams = function ($current_field, $reload) { var $form_fields; for (var $field in this.filters) { $form_fields = $('#filter-form-' + $field).serializeArray(); for (var $i = 0; $i < $form_fields.length; $i++) { this.setParam($form_fields[$i].name, $form_fields[$i].value); } this.syncChecked( $("input[type=checkbox], input[type=radio]", '#filter-form-' + $field) ); } if ( $current_field !== undefined ) { this.toggleFilter($current_field); this.setParam('exclude_filters', $current_field); } if ( $reload === undefined || $reload === true ) { this.scheduleReload(); } } ListManager.init = function () { var $manager = this; this.firstLoad = window.location.hash.length > 1; $('body').bind( 'anchorchanged', function ($e, $anchor) { $manager.parseAnchor($anchor); } ); } \ No newline at end of file Index: branches/1.0.x/inc/js/thickbox/thickbox.js =================================================================== --- branches/1.0.x/inc/js/thickbox/thickbox.js (revision 15859) +++ branches/1.0.x/inc/js/thickbox/thickbox.js (revision 15860) @@ -1,459 +1,455 @@ /* * 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 = $base_url + 'inc/js/thickbox/images/loadingAnimation.gif'; } ); function TB () { this.imgLoader = null; this.pathToImage = $base_url + 'inc/js/thickbox/images/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("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>"); $('#TB_overlay').click(TB.remove); } } else { // all others if (document.getElementById('TB_overlay') === null) { $('body').append("<div id='TB_overlay'></div><div id='TB_window'></div>"); $('#TB_overlay').click(TB.remove); } } $('#TB_overlay').addClass('TB_overlayBG'); // use background and opacity if (params.caption === null) { params.caption = ''; } $('body').append("<div id='TB_load'><img src='" + TB.imgLoader.src + "' /></div>"); // 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 = "<span id='TB_next'> <a href='#'>Next ></a></span>"; } else { TB_PrevCaption = TB_TempArray[TB_Counter].title; TB_PrevURL = TB_TempArray[TB_Counter].href; TB_PrevHTML = "<span id='TB_prev'> <a href='#'>< Prev</a></span>"; } } 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("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='" + params.url + "' width='" + $image_size.width + "' height='" + $image_size.height + "' alt='" + params.caption + "'/></a>" + "<div id='TB_caption'>" + params.caption + "<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>"); $('#TB_closeWindowButton').click(TB.remove); if (TB_PrevHTML !== '') { function goPrev() { $('#TB_window').remove(); $('body').append("<div id='TB_window'></div>"); 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("<div id='TB_window'></div>"); 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) || 630; // 17 - #TB_Window left&right padding TB.Height = (url_params['height'] * 1) || 440; // 14 - #TB_Window top&bottom padding var ajaxContentW = TB.Width /*+ 17*2*/ - (50*2 + 9*2); // #TB_ajaxContent left&right padding - left&right border var ajaxContentH = TB.Height /*+ 14*2*/ - (40*2 /*+ 9*2*/); // #TB_ajaxContent top&bottom padding var $window_title = ''; 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 $window_title = "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + params.caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div>"; $('#TB_window').append($window_title + "<iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='TB.showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;' > </iframe>"); }else{ // iframe modal $('#TB_overlay').unbind(); $('#TB_window').append("<iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='TB.showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;'> </iframe>"); } } else { // not an iframe, ajax if ($('#TB_window').css('display') != 'block') { if (url_params['modal'] != 'true') { // ajax no modal // $window_title = "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + params.caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div>"; $window_title = "<div id='TB_closeAjaxWindow'><span id='TB_closeWindowButton'>close [Esc]</span></div>"; $('#TB_window').append($window_title + "<div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px'></div>"); } else { // ajax modal $('#TB_overlay').unbind(); $('#TB_window').append("<div id='TB_ajaxContent' class='TB_modal' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px;'></div>"); } } 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) { + /*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#(.*?)($|\\s.*)').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) + 'px', width: TB.Width + 'px'} ); - - if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { - // take away IE6 - $('#TB_window').css( {marginTop: '-' + parseInt(TB.Height / 2) + 'px'} ); - } + $('#TB_window').css( {marginTop: '-' + parseInt(TB.Height / 2) + '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]; } \ No newline at end of file Index: branches/1.0.x/elements/side_boxes/compare.elm.tpl =================================================================== --- branches/1.0.x/elements/side_boxes/compare.elm.tpl (revision 15859) +++ branches/1.0.x/elements/side_boxes/compare.elm.tpl (revision 15860) @@ -1,80 +1,80 @@ <inp2:m_if check="m_Get" name="ajax" equals_to="yes"> <inp2:m_NoDebug/> </inp2:m_if> <inp2:m_Include template="elements/content_boxes.elm" strip_nl="2"/> <inp2:m_Include template="elements/product_elements.elm" strip_nl="2"/> <inp2:p_InitList list_name="compare_products" types="compare" parent_cat_id="any"/> <div class="block no-border-bottom" id="compare-products-sidebox"<inp2:m_ifnot check="p_TotalRecords" list_name="compare_products"> style="display: none;"</inp2:m_ifnot>> <h2> <em>Comparing Products (<inp2:p_TotalRecords list_name="compare_products"/>)</em> <span class="bullet"></span> </h2> <div class="good-item border-radius-bottom comparing-items"> <inp2:p_ListProducts list_name="compare_products" render_as="compare_product_element" no_table="1"/> <p class="form buttons"> <input type="button" value="Compare" id="compare-products-btn" class="green-button" /> <input type="button" value="Clear" id="cancel-compare-btn" class="grey-button" /> </p> </div> </div> <script type="text/javascript"> $(document).ready( function () { $('.addtocart', '#compare-products-sidebox').click(add_to_cart_handler); $('#compare-products-btn').click( function () { redirect('<inp2:p_CompareLink template="products/compare" js_escape="1"/>'); } ); $('#cancel-compare-btn').click( function () { compare_product(0, 'OnCancelCompare'); } ); $('.button-delete', '#compare-products-sidebox').click( function ($e) { compare_product($(this).attr('product_id'), false); return false; } ); <inp2:m_if check="m_Get" name="result"> var $compare_checkbox = $(".compare-checkbox[value='<inp2:m_Get name="p_id"/>']", '#products'); <inp2:m_if check="m_Get" name="result" equals_to="added"> create_tooltip($compare_checkbox, 'Added to Comparison', 'formSuccess'); </inp2:m_if> <inp2:m_if check="m_Get" name="result" equals_to="removed"> create_tooltip($compare_checkbox, 'Removed from Comparison', 'formNeutral'); - $compare_checkbox.attr('checked', false); + $compare_checkbox.prop('checked', false); </inp2:m_if> <inp2:m_if check="m_Get" name="result" equals_to="error"> create_tooltip($compare_checkbox, 'Up to <inp2:m_GetConfig name="MaxCompareProducts"/> products can be compared', 'formError'); - $compare_checkbox.attr('checked', false); + $compare_checkbox.prop('checked', false); </inp2:m_if> <inp2:m_if check="m_Get" name="result" equals_to="all_removed"> $(".compare-checkbox:checked", '#products') .each( function () { var $me = $(this); create_tooltip($me, 'Removed from Comparison', 'formNeutral'); - $me.attr('checked', false); + $me.prop('checked', false); } ); </inp2:m_if> </inp2:m_if> } ); </script> \ No newline at end of file Index: branches/1.0.x/elements/html_head.elm.tpl =================================================================== --- branches/1.0.x/elements/html_head.elm.tpl (revision 15859) +++ branches/1.0.x/elements/html_head.elm.tpl (revision 15860) @@ -1,82 +1,82 @@ <inp2:m_if check="c.current_Field" name="MetaKeywords"> <meta name="Keywords" content="<inp2:c.current_Field name='MetaKeywords'/>"/> <inp2:m_else/> <meta name="Keywords" content="<inp2:m_GetConfig name='Category_MetaKey'/>"/> </inp2:m_if> <inp2:m_if check="c.current_Field" name="MetaDescription"> <meta name="Description" content="<inp2:c.current_Field name='MetaDescription'/>"/> <inp2:m_else/> <meta name="Description" content="<inp2:m_GetConfig name='Category_MetaDesc'/>"/> </inp2:m_if> <meta name="author" content="<inp2:m_GetConfig name='Site_Name' html_escape='1'/>"/> <meta http-equiv="content-type" content="text/html; charset=<inp2:m_GetConst name='CHARSET'/>" /> <link rel="icon" href="<inp2:m_BaseURL/>favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="<inp2:m_BaseURL/>favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/reset.css|inc/styles.css|inc/flexslider.css|inc/modal.css|inc/jquery.gzoom.css|inc/pikachoose.css|inc/qtip.css'/>" media="all" charset="<inp2:m_GetConst name='CHARSET'/>"/> <!-- including "inc/profile.css" will break logged-in user's menu --> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/ui/jquery.ui.all.css" charset="utf-8" /> <!--## <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/reset.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/styles.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/category.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/flexslider.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/modal.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/details.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/jquery.gzoom.css" charset="utf-8" /> <link type="text/css" rel="stylesheet" href="<inp2:m_TemplatesBase />inc/pikachoose.css" charset="utf-8" /> ##--> <!--## JS FOR ADMIN ##--> <inp2:st_EditingScripts/> <script type="text/javascript"> var $base_url = '<inp2:m_TemplatesBase/>'; </script> <!--## JS FOR FRONT ##--> <inp2:m_ifnot check="m_GetConst" name="EDITING_MODE"> <!--## EXCLUDE THIS JS WHEN IN ADMIN ##--> - <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> + <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/js/thickbox/thickbox.css'/>"/> <script src="<inp2:m_Compress files='inc/js/thickbox/thickbox.js'/>" type="text/javascript"></script> <!--<link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/js/colorbox/jquery.colorbox.css'/>"/>--> <!--<script src="<inp2:m_Compress files='inc/js/colorbox/jquery.colorbox.js'/>" type="text/javascript"></script>--> <!--<link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/js/fancybox/jquery.fancybox.css'/>"/>--> <!--<script src="<inp2:m_Compress files='inc/js/fancybox/jquery.fancybox.js'/>" type="text/javascript"></script>--> </inp2:m_ifnot> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/ui/jquery.ui.core.min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/ui/jquery.ui.widget.min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/ui/jquery.ui.accordion.min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/jquery.flexslider-min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/jquery.scripts.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/tinybox.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/jquery.qtip.min.js" type="text/javascript"></script> <script src="<inp2:m_TemplatesBase />inc/js/form_manager.js" type="text/javascript"></script> <script type="text/javascript"> var aRatingManager = new RatingManager('<inp2:m_Link template="index" events[#PREFIX#]="OnMakeVote" rating="#VOTE#" id="#ID#" no_amp="1" size="#SIZE#"/>'); FormManager.init({ url: '<inp2:m_Link template="#TEMPLATE#" js_escape="1" __NO_REWRITE__="1" no_amp="1"/>', windowManager: new FormManager_WindowManagerThickBox() // windowManager: new FormManager_WindowManagerColorBox() // windowManager: new FormManager_WindowManagerFancyBox() }); </script> <inp2:m_Comment> <!--[if lt IE 9]> <![endif]--> </inp2:m_Comment> \ No newline at end of file