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'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
 				} else {
 					TB_PrevCaption = TB_TempArray[TB_Counter].title;
 					TB_PrevURL = TB_TempArray[TB_Counter].href;
 					TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; 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" />&nbsp;&nbsp;&nbsp;
 			<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