/*
	Main Class.
	Reprents the products grid.

*/
var SearchProductsGrid = new Class({
	/* Initialize the grid, set the product and the view mode regarding PRODUCT_VISUALIZATION and SEARCH_PARAMETERS Cookies */
	initialize: function(options){
		boxObjects.each(function(boxObject, index){
			if($$('div.productPreviewBox')[index].getStyle('visibility')=="hidden")
				$$('div.productPreviewBox')[index].shadow.setStyle('visibility', 'hidden');
		});
		if (!options) options = '';
		this.viewSide = 'front';
		this.viewMode = !options.viewMode ? 'onmodel': options.viewMode;
		this.displayViewButtons = ($('view-mode').getStyle('display')=='none')?false:true;
		if (Cookie.read('PRODUCT_VISUALIZATION')) {
			this.viewMode = Cookie.read('PRODUCT_VISUALIZATION');
		}
		var serviceUrl = this.getServiceUrl();
		this.activeTopbottom = ($('display-mode').getStyle('display')=='none') ? false : true;
		this.currentPage = !options.currentPage ? 1: options.currentPage;
		this.itemPerPage = 16;
		this.filterActive = false;
		this.setFilters();
		this.setPagingActions();
		this.paginationDone = true;
		if (Cookie.read('SEARCH_PARAMETERS')) {
			this.newSearch = false;
			var reg = new RegExp("rangeStart=([^&]+)&", "g");
			var rangeStart = reg.exec(Cookie.read('SEARCH_PARAMETERS'))[1];
			this.currentPage = (rangeStart - 1) / this.itemPerPage + 1;
			this.callService("/"+ locale +"/shop/services/SearchProductsGrid?"+ Cookie.read('SEARCH_PARAMETERS'));
		} else {
			if (Cookie.read('PRODUCT_VISUALIZATION')) {
				$('productfinder-center').getElements('div.productImage').each(function(image, index) {
					if (this.viewMode == 'onmodel' && image.getElement('img.front.onmodel').get('src')) {
						image.getElements('img.productonly').setStyle('display', 'none');
					} else if (this.viewMode == 'productonly' && image.getElement('img.front.productonly').get('src')) {
						image.getElements('img.onmodel').setStyle('display', 'none');
					}
				}.bind(this));
			}
			this.setButtonsOnOff();
			this.newSearch = true;
			if ($('productfinder-top').getElement('a.filters')) {
				$('productfinder-top').getElement('a.filters').fireEvent('click');
				this.filterActive = false;
				(function() {
					if (!this.filterActive) {
						$('productfinder-top').getElement('a.filters').fireEvent('click');
					}
				}.bind(this)).delay(3000);
			}
			var serviceUrl = this.getServiceUrl();
			var gridCookie = Cookie.write('SEARCH_PARAMETERS', serviceUrl.substring(serviceUrl.indexOf('?') + 1),{path:'/'});
			this.setFiltersSelected();
			this.setPageTag();
		}
	},
	/* Retrieve products datas by calling the webservice */
	callService: function(serviceUrl){
		this.paginationDone = false;
		if (!serviceUrl) { 
			var serviceUrl = this.getServiceUrl();
			var gridCookie = Cookie.write('SEARCH_PARAMETERS', serviceUrl.substring(serviceUrl.indexOf('?') + 1),{path:'/'});
		}
		var jsonRequest = new Request.JSON({url: serviceUrl, onComplete: function(search){
			this.total_items = search.METADATA.TOTAL_ITEMS;
			this.total_pages = Math.ceil(this.total_items / this.itemPerPage);
			this.products = search.PRODUCTS;
			this.filters = search.METADATA.FILTERS;
			/*this.filters['collection_all'] = 'enabled';
			this.filters['category_all'] = 'enabled';
			this.filters['color_all'] = 'enabled';
			this.filters['size_all'] = 'enabled';
			this.filters['fit_all'] = 'enabled';*/
			this.activeTopbottom = search.METADATA.TOP_BOTTOM_ACTIVE;
			this.setProducts();
			if($('filters') && $('filters').getElement('ul#size')) this.setFiltersSizes();
			this.setFiltersSelected();
			this.setFiltersDisabled();
			this.setPaging();
			if(search.METADATA.PRODUCTONLY_VIEW_ACTIVE && search.METADATA.ONMODEL_VIEW_ACTIVE && this.newSearch)
				this.displayViewButtons = true;
			else
				if(this.newSearch)	this.displayViewButtons = false;
			this.setButtonsOnOff();
			(function(){this.paginationDone = true;}).bind(this).delay(2000);
			$('productfinder-top').getElement('span.number-items').set('text', this.total_items);
		}.bind(this)}).get();
	},
	getRangeStart: function(){
		return (this.currentPage * this.itemPerPage) - this.itemPerPage + 1;
	},
	getServiceUrl: function(){
		var filterParam = '';
		var filterArray = new Array();
		if ($('filters')) {
			$('filters').getElements('a.filter').each(function(filter, index){
				if (filter.hasClass('selected')) {
					var className = filter.getParent('li').get('class');
					if (className.indexOf('ie7') != -1) {
						var reg = new RegExp("([^ ]+) ie7", "g");
						className = reg.exec(className)[1];
					}
					var keyvalue = className.split('_');
					if (!filterArray.contains(keyvalue[0])) {
						filterArray.push(keyvalue[0]);
						filterParam += '&'+ keyvalue[0];
						for (var i = 1; i < keyvalue.length; i++) {
							if (i == 1) filterParam += '=';
							else filterParam += '_';
							filterParam += keyvalue[i];
						}
					} else {
						filterParam += ',';
						for (var i = 1; i < keyvalue.length; i++) {
							if (i > 1) filterParam += '_';
							filterParam += keyvalue[i];
						}
					}
				}
			});
		}
		var url = window.location.href;
		var reg = new RegExp("products/([^/;?]+)", "g");
		try {
			var parse_url=false;
			var keyword = reg.exec(url)[1];
			switch(keyword){
				case 'men':
				case 'women':
					filterParam += '&gender='+ keyword;
					parse_url=true;	
				break;
				case 'kids':
					filterParam += '&category=kidswear';
					parse_url=true;	
				break;
				case 'accessories':
					parse_url=true;
				break;
				case 'sales':;
				case 'special-offers':;
				case 'seasonal-previews':;
				case 'new':
					filterParam += '&'+keyword+'=true';
					parse_url=true;	
				break;
				default:
					filterParam += '&limitedEdition='+keyword;
					parse_url=true;	
				break;
			}
		} catch (e) {}
		var reg2 = new RegExp("products([^?]+)([?])([^=]+)=(.+)", "g");
		if(parse_url){ 
			try {
				var querystring = reg2.exec(url);
				if (filterParam.indexOf('&'+ querystring[3] +'=') == -1) {
				filterParam += '&'+ querystring[3] +'='+ querystring[4];
		}
			} catch (e) {}
	}	
	if (this.newSearch) {
			var rangeStart = 1; 
			var newSearch = 'true';
		} else {
			var rangeStart = this.getRangeStart();
			var newSearch = 'false'; 
		}
		return "/"+ locale +"/shop/services/SearchProductsGrid?newSearch="+ newSearch +"&rangeStart="+ rangeStart +"&rangeLength="+ this.itemPerPage + filterParam;
	},
	getGender: function(){
		var url = window.location.href;
		var reg = new RegExp("products/([^/?]+)", "g");
		try {
			var category = reg.exec(url)[1];
			if (category == 'men' || category == 'women' || category == 'kids') {
				return category;
			}
		} catch (e) {}
		if (url.indexOf('gender=men') != -1) {
			return 'men';
		} else if (url.indexOf('gender=women') != -1) {
			return 'women';
		} else if (url.indexOf('category=kidswear') != -1) {
			return 'kids';
		}
	},
	/* Set all the boxes with retrieved datas */
	setProducts: function(){
		boxObjects.each(function(boxObject, index){
			
			var boxElement = $$('div.productPreviewBox')[index];
			if (!this.products[index]) {
				boxElement.setStyle('display', 'none');
				boxElement.shadow.setStyle('visibility', 'hidden');
			} else {
				var interval = (50 - index) * Math.random() * 20;
				boxElement.setStyle('display', '');
				var timer = setTimeout(function() {
					boxObject.hide(function () {
						boxObject.viewSide = this.viewSide;
						boxObject.viewMode = this.viewMode;
						boxObject.update(this.products[index]);
						boxElement.getElements('.typeface-js').each(function(item){
							reintinilazeTypeFace(item);
						});
						//boxElement.getParent('td').setStyle('display','table-cell'); make some JS errors on IE
						window.fireEvent('paginationDone', boxObject.box.getElement('h2.productNameLabel a'));
					}.bind(this));
				}.bind(this), interval);
			}
		}.bind(this));
		this.setPageTag();
	},
	/* set the pagination */
	setPaging: function(){
		var pagingHtml = '';
		var pagingLength = 4;
		if (this.total_items > this.itemPerPage) {
			if (this.total_pages <= pagingLength) {
				var startPage = 1;
				var endPage = this.total_pages;
			} else if (this.total_pages <= this.currentPage) {
				var startPage = this.total_pages - pagingLength + 1;
				var endPage = this.total_pages;
			} else {
				var startPage = (this.currentPage%pagingLength == 0) ? this.currentPage - pagingLength + 1 : this.currentPage - this.currentPage%pagingLength + 1;
				var endPage = Math.min(startPage + pagingLength - 1,this.total_pages);
			}
			if (this.currentPage > 1) {
				pagingHtml += '<a href="#" class="prev"><img src="/common/images/shop/arrows/arrow-search-previous-page.gif" alt="" /></a>';
			}
			for (var i = startPage; i <= endPage; i++) {
				if (i == this.currentPage) {
					pagingHtml += '<span class="pages-number">'+ i +'</span>';
				} else {
					pagingHtml += '<a href="#" class="pages-number">'+ i +'</a>';
				}
			}
			if (this.currentPage < this.total_pages) {
				pagingHtml += '<a href="#" class="next"><img src="/common/images/shop/arrows/arrow-search-next-page.gif" alt="" /></a>';
			}
		}
		$('productfinder-content').getElements('span.pages-block').set('html', pagingHtml);
		this.setPagingActions();
	},
	setPagingActions: function(){
		if ($('productfinder-content').getElements('span.pages-block a.prev')) {
			$('productfinder-content').getElements('span.pages-block a.prev').addEvent('click', function(){
				if(this.paginationDone == true){
					this.currentPage--;
					this.newSearch = false;
					this.callService();
				}
				return false;
			}.bind(this));
		}
		if ($('productfinder-content').getElements('span.pages-block a.pages-number')) {
			$('productfinder-content').getElements('span.pages-block a.pages-number').addEvent('click', function(e){
				if(this.paginationDone == true){
					this.currentPage = parseInt(e.target.get('text'));
					this.newSearch = false;
					this.callService();
				}
				return false;
			}.bind(this));
		}
		if ($('productfinder-content').getElements('span.pages-block a.next')) {
			$('productfinder-content').getElements('span.pages-block a.next').addEvent('click', function(){
				if(this.paginationDone == true){
					this.currentPage++;
					this.newSearch = false;
					this.callService();
				}
				return false;
			}.bind(this));
		}
		$('productfinder-bottom').getElements('span.pages-block a').addEvent('click', function(){
			var myFx = new Fx.Scroll($(document.body)).start(0, $('eshop-content').getPosition().y);
		});
	},
	/* set the filter criterias*/
	setFilters: function(){
		if ($('productfinder-top').getElement('a.filters')) {
			$('productfinder-top').getElement('a.filters').addEvent('click', function(){
				this.filterActive = true;
				$('filters').addEvent('mouseover', function(){
					this.filterActive = true;
				}.bind(this));
				if ($('filters').getStyle('display') == 'none') {
					var height = $('filters').getElements('li.product li').length * 15 + 5 * 23 + 100;
					var showFX = new Fx.Morph('filters', {duration: 'normal', transition: Fx.Transitions.Sine.easeOut});
					showFX.start({
						//'height': 363
						'height': height
					});
					$('filters').setStyle('display', 'block');
					$('productfinder-top').getElement('a.filters').addClass('filters-open');
				} else {
					var hideFX = new Fx.Morph('filters', {duration: 'normal', transition: Fx.Transitions.Sine.easeOut, onComplete: function() {
						$('filters').setStyle('display', 'none');
						$('productfinder-top').getElement('a.filters').removeClass('filters-open');
					}});
					hideFX.start({
						'height': 0
					});
				}
				var myAccordion = new Accordion($('filters'), 'a.button', 'ul.filters-level1', {'display': -1, 'alwaysHide': true, 'opacity':false,
					'onActive': function(toggler, element) {
						toggler.getParent('li').morph({paddingTop:5, paddingBottom:10}).addClass('opened');
						element.setStyle('opacity','1');
						if(IE6) element.getElements('a').setStyle('visibility','visible');
					},
					'onBackground': function(toggler, element){
						toggler.getParent('li').morph({paddingTop:0, paddingBottom:0}).removeClass('opened');
						element.setStyle('opacity','0');
						if(IE6) element.getElements('a').setStyle('visibility','hidden');
					}
				});
				$('filters').getElements('div.breadcrumb a').each(function(breadcrumb, index){
					breadcrumb.addEvent('click', function() {
						var category = (breadcrumb.get('class') == 'products') ? 'subcategory1' : breadcrumb.get('class');
						$('filters').getElements('li.'+ category +' a.button').fireEvent('click');
						return false;
					});
				});
				$('filters').getElements('a.filter').each(function(filter, index){
					filter.addEvent('click', function(){
						if (!filter.hasClass('disabled') && !filter.hasClass('selected')) {
							this.selectFilter(filter);
							this.newSearch = true;
							this.currentPage = 1;
							this.callService();
							this.setFilterTag(filter);
						} else if (filter.hasClass('selected') && this.getFilterCategory(filter) == 'color') {
							this.unselectFilter(filter);
							this.newSearch = true;
							this.currentPage = 1;
							this.callService();
						}
						return false;
					}.bind(this));
				}.bind(this));
				$('filters').getElements('a.filterall').each(function(filterall, index){
					filterall.addEvent('click', function(){
						if (!filterall.hasClass('disabled') && !filterall.hasClass('selected')) {
							filterall.addClass('selected');
							var className = filterall.getParent('li').get('class');
							var splitedClassName = className.split('_');
							if(splitedClassName[0] == "category" || splitedClassName[0] == "subcategory") splitedClassName[0] = "product";
							$('filters').getElements('#'+ splitedClassName[0] +' li a').each(function(filter, index){
								if (!filter.hasClass('filterall')) {
									filter.removeClass('selected');
									this.setFiltersSelection();
								}
							}.bind(this));
							if (splitedClassName[0] == 'color') {
								$('filters').getElements('li.color a.filter img').each(function(img, index){
									var src = img.get('src');
									img.set('src', src.replace('_selected.gif', '_unselected.gif'));
								}.bind(this));
							}
							this.newSearch = true;
							this.currentPage = 1;
							this.callService();
							this.setFilterTag(filterall);
						}
						return false;
					}.bind(this));
				}.bind(this));
				return false;
			}.bind(this));
		}
	},
	setFiltersSizes: function() {
		$('filters').getElement('ul#size').empty();
		var sizeElement = new Element('li', {'class': 'size_all', 'html': '<a href="#" class="filterall">/&nbsp;All</a>'});
		sizeElement.inject($('filters').getElement('ul#size'));
		var sizeElement = new Element('li', {'class': 'clear', 'html': ''});
		sizeElement.inject($('filters').getElement('ul#size'));
		for(key in this.filters){
			if (key.indexOf('size_') != -1 && key != 'size_all') {
				var keyArray = key.split('_');
				var sizeElement = new Element('li', {'class': key, 'html': '<a href="#" class="filter">'+ keyArray[1] +'</a>'});
				sizeElement.inject($('filters').getElement('ul#size'));
			}
		}
		$('filters').getElements('ul#size a.filter').each(function(filter, index){
			filter.addEvent('click', function(){
				if (!filter.hasClass('disabled') && !filter.hasClass('selected')) {
					this.selectFilter(filter);
					this.newSearch = true;
					this.currentPage = 1;
					this.callService();
				}
				return false;
			}.bind(this));
		}.bind(this));
		$('filters').getElements('ul#size a.filterall').each(function(filterall, index){
			filterall.addEvent('click', function(){
				if (!filterall.hasClass('selected')) {
					filterall.addClass('selected');
					var className = filterall.getParent('li').get('class');
					var splitedClassName = className.split('_');
					$('filters').getElements('#size li a').each(function(filter, index){
						if (!filter.hasClass('filterall')) {
							filter.removeClass('selected');
							this.setFiltersSelection();
						}
					}.bind(this));
					this.newSearch = true;
					this.currentPage = 1;
					this.callService();
				}
				return false;
			}.bind(this));
		}.bind(this));
	},
	setFiltersSelected: function() {
		if ($('filters')) {
			$('filters').getElements('a.filterall').each(function(filterall, index){
				filterall.addClass('selected');
			});
			var gridCookie = Cookie.read('SEARCH_PARAMETERS');
			if (gridCookie) {
				$('filters').getElements('a.filter').each(function(filter, index){
					filter.removeClass('selected');
				});
				var keysArray = new Array();
				var valuesArray = new Array();
				var params = gridCookie.split('&');
				for (var i = 0; i < params.length; i++) {
					var keyvalue = params[i].split('=');
					keysArray.push(keyvalue[0]);
					valuesArray.push(keyvalue[1]);
				}
				keysArray.each(function(key, index){
					var id = (key == 'category' || key == 'subcategory') ? 'product' : key;
					if (key == 'color') {
						var colors = valuesArray[index].split(',');
						colors.each(function(color, index){
							$('filters').getElement('ul#'+ id +' li.'+ key +'_'+ color +' a.filter').addClass('selected');
							$('filters').getElement('ul#'+ id +' a.filterall').removeClass('selected');
							var img = $('filters').getElement('ul#'+ id +' li.'+ key +'_'+ color +' a.filter img');
							var src = img.get('src');
							img.set('src', src.replace('_unselected.gif', '_selected.gif'));
						});
					} else if ($('filters').getElement('ul#'+ id +' li.'+ key +'_'+ valuesArray[index] +' a.filter')) {
						$('filters').getElement('ul#'+ id +' li.'+ key +'_'+ valuesArray[index] +' a.filter').addClass('selected');
						if($chk($('filters').getElement('ul#'+ id +' a.filterall')))
							$('filters').getElement('ul#'+ id +' a.filterall').removeClass('selected');
					}
				});
				this.setFiltersSelection();
			}
		}
	},
	setFiltersDisabled: function() {
		if ($('filters')) {
			var size_enabled = 0;
			$('filters').getElements('ul.filters-level1 li').each(function(li, index){
				filter = li.get('class');
				if (this.filters[filter] && (this.filters[filter] == 'enabled' || this.filters[filter] == 'disabled')) {
					li.getElement('a').removeClass('enabled');
					li.getElement('a').removeClass('disabled');
					li.getElement('a').addClass(this.filters[filter]);
				}
				if (filter.indexOf('size_') != -1 && filter != 'size_all') size_enabled++;
			}.bind(this));
			if (!size_enabled) {
				if ($('filters').getElement('ul#size')) $('filters').getElement('li.size').addClass('button-disabled');
			} else {
				$('filters').getElement('li.size').removeClass('button-disabled');
			}
			$('filters').getElements('li.button-disabled').each(function(button, index){
				button.getElement('ul').setStyle('display','none');
				button.getElement('a.button').removeEvents('click');
			});
		}
	},
	selectFilter: function(filter) {
		if (this.getFilterCategory(filter) == 'category' || this.getFilterCategory(filter) == 'subcategory') {
			$('filters').getElements('ul#product a.filter').removeClass('selected');
			if($chk($('filters').getElement('ul#product a.filterall')))
				$('filters').getElement('ul#product a.filterall').removeClass('selected');
		} else if (this.getFilterCategory(filter) == 'color') {
			$('filters').getElement('ul#color a.filterall').removeClass('selected');
			var src = filter.getElement('img').get('src');
			filter.getElement('img').set('src', src.replace('_unselected.gif', '_selected.gif'));
		} else {
			$('filters').getElement('ul#'+ this.getFilterCategory(filter) +' a.filterall').removeClass('selected');
			filter.getParent('li').getParent('ul').getElements('a.filter').each(function(otherfilter, index){
				otherfilter.removeClass('selected');
			});
		}
		filter.addClass('selected');
		this.setFiltersSelection();
	},
	unselectFilter: function(filter) {
		if (this.getFilterCategory(filter) == 'color') {
			var src = filter.getElement('img').get('src');
			filter.getElement('img').set('src', src.replace('_selected.gif', '_unselected.gif'));
		}
		filter.removeClass('selected');
		this.setFiltersSelection();
	},
	setFiltersSelection: function(click) {
		$('filters').getElements('div.breadcrumb a').set('html', '');
		$('filters').getElements('a.filter').each(function(filter, index) {
			if (filter.hasClass('selected')) {
				var category = (this.getFilterCategory(filter) == 'category' || this.getFilterCategory(filter) == 'subcategory') ? 'product' : this.getFilterCategory(filter);
				if (category == 'color') {
					var breadcrumb = $('filters').getElements('div.breadcrumb a.color').get('html');
					var newBreadcrumb = (breadcrumb != '') ? breadcrumb + filter.get('html') +' ': '/&nbsp;'+ filter.get('html') +' ';
				} else if (category == 'size') {
					var newBreadcrumb = '/&nbsp;'+ filter.get('html') +' ';
				} else {
					var newBreadcrumb = filter.get('html') +' ';
				}
				$('filters').getElements('div.breadcrumb a.'+ category).set('html', newBreadcrumb);
			}
		}.bind(this));
		$('filters').getElements('a.uncheck').addEvent('click', function() {
			$('filters').getElements('.selected').removeClass('selected');
			$('filters').getElements('li.color a.filter img').each(function(img, index){
				var src = img.get('src');
				img.set('src', src.replace('_selected.gif', '_unselected.gif'));
			}.bind(this));
			$('filters').getElements('div.breadcrumb a').set('html', '');
			this.newSearch = true;
			this.currentPage = 1;
			this.callService();
			return false;
		}.bind(this));
	},
	getFilterCategory: function(filter) {
		var className = filter.getParent('li').get('class');
		var keyvalue = className.split('_');
		return keyvalue[0];
	},
	setButtonsOnOff: function () {
		if (this.activeTopbottom) {
			$('display-mode').setStyle('display', 'inline');
		} else {
			$('display-mode').setStyle('display', 'none');
		}
		if (this.displayViewButtons) {
			$('view-mode').setStyle('display', 'inline');
			if (this.viewMode == 'productonly') {
				$('productfinder-top').getElement('a.productonly img').set('src', '/common/images/shop/utils/picto-product-on.gif');
				$('productfinder-top').getElement('a.onmodel img').set('src', '/common/images/shop/utils/picto-model.gif');
			} else if (this.viewMode == 'onmodel') {
				$('productfinder-top').getElement('a.onmodel img').set('src', '/common/images/shop/utils/picto-model-on.gif');
				$('productfinder-top').getElement('a.productonly img').set('src', '/common/images/shop/utils/picto-product.gif');
			}
		} else {
			$('view-mode').setStyle('display', 'none');
		}
	},
	/* Analytics tags */
	setPageTag: function() {
		var tag = new Tag();
		var filterParam = '';
		if ($('filters')) {
			$('filters').getElements('li.product a.filter').each(function(filter, index){
				if (filter.hasClass('selected')) {
					var className = filter.getParent('li').get('class');
					var keyvalue = className.split('_');
					for (var i = 1; i < keyvalue.length; i++) {
						if (i > 1) filterParam += '_';
						filterParam += keyvalue[i];
					}
				}
			});
		}
		if (filterParam == '') {
			tag.set({'pageName': 'shop product finder '+ this.getGender() +' grid '+ this.currentPage, 'channel': 'shop', 'prop1': 'shop:product finder', 'prop2': 'shop:product finder:'+ this.getGender(), 'prop10': locale});
		} else {
			tag.set({'pageName': 'shop product finder '+ this.getGender() +' grid '+ this.currentPage, 'channel': 'shop', 'prop1': 'shop:product finder', 'prop2': 'shop:product finder:'+ this.getGender(), 'prop3': 'shop:product finder:'+ this.getGender() +':'+ filterParam, 'prop10': locale});
		}
		tag.send();
	},
	setFilterTag: function(filter) {
		var tag = new Tag();
		var className = filter.getParent('li').get('class');
		var keyvalue = className.split('_');
		var prop8 = '';
		for (var i = 0; i < keyvalue.length; i++) {
			if (i == 1) prop8 += ':';
			else if (i > 1) prop8 += '_';
			prop8 += keyvalue[i];
		}
		tag.set({'name': 'shop product finder filter','linkTrackVars': 'eVar1,prop8', 'prop8': prop8, 'eVar1': prop8});
		tag.sendClick();
	}
});

window.addEvent('domready', function(){
	$$('.productPreviewBox').addShadow();
	
	var search = new SearchProductsGrid({'viewMode': 'onmodel'});
	
	$('productfinder-top').getElement('a.productonly').addEvent('click', function(){
		search.viewMode = 'productonly';
		search.viewSide = 'locked';
		search.callService();
		var viewCookie = Cookie.write('PRODUCT_VISUALIZATION', 'productonly',{path:'/'});
		var tag = new Tag();
		//tag.set({'prop17': 'view:ProductOnly'});
		tag.set({'pageName': 'shop product finder view', 'linkTrackVars': 'eVar1,prop8', 'evar1': 'view:ProductOnly', 'prop8': 'view:ProductOnly','name':'eshop product finder view'});
		tag.sendClick();
		return false;
	});
	$('productfinder-top').getElement('a.onmodel').addEvent('click', function(){
		search.viewMode = 'onmodel';
		search.viewSide = 'locked';
		search.callService();
		var viewCookie = Cookie.write('PRODUCT_VISUALIZATION', 'onmodel',{path:'/'});
		var tag = new Tag();
		//tag.set({'prop17': 'view:OnModel'});
		tag.set({'pageName': 'shop product finder view', 'linkTrackVars': 'eVar1,prop8', 'evar1': 'view:OnModel', 'prop8': 'view:OnModel','name':'eshop product finder view'});
		tag.sendClick();
		return false;
	});
	$('display-mode').getElement('a').addEvent('click', function(){
		var tag = new Tag();
		tag.set({'pageName': 'shop product finder display','prop17': 'display:TopBottom'});
		tag.sendClick();
	});
});

Array.implement({
	shuffle: function() {
		for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
		return this;
	}
});

