$j(function () {
	var flashPropertyType = 0;

	// find property type id for brands
	for (var id in window.productData.propertyTypes) {
		var pt = window.productData.propertyTypes[id];
		if (pt.key == 'Flashfilm 2')
			flashPropertyType = id;
	}

	// find brand properties
	var flashNames = {};
	for (var id in window.productData.properties) {
		var prop = window.productData.properties[id];
		if (flashPropertyType == prop['type'])
			flashNames[id] = prop['val'];
	}

	var config = {
		sorting: $j('#sort-result'),
		properties: $j('#property-container li.property'),
		paging: {
			gui: {
				container: '.paging',
				prev: '.previous-page',
				next: '.next-page',
				currentPage: '.current',
				totalPages: '.total'
			},
			whitespaceAfterPage: true,
			totalPages: Panagora.filterJsData.totalPages,
			currentPage: Panagora.filterJsData.currentPage,
			urlTemplate: Panagora.filterJsData.urlTemplate,
			onFirstPage: function () { $j('.paging .previous-container').hide(); },
			onNotFirstPage: function () { $j('.paging .previous-container').show(); },
			onLastPage: function () { $j('.paging .next-container').hide(); },
			onNotLastPage: function () { $j('.paging .next-container').show(); },
			onPostNextPage: function (e) {
				if ($j('a.next-page').get(1) == e.originalTarget) {
					var firstItem = $j('#product-list .product:eq(0)');
					var newLeft = firstItem.offset().left - firstItem.css('margin-left').replace(/[^\d]/g,'');
					if ($j(window).scrollLeft() > newLeft)
						$j(window).scrollLeft(newLeft);
					$j(window).scrollTop($j('#page-container').offset().top);
				}
			}
		},
		onPreAppendItem: function (element, item) {
			// Don't do it if browser can't handle flash
			if(swfobject.hasFlashPlayerVersion("9")) {
				var flashName = '';
				for (var propertyId in item.props) {
					var p = window.productData.properties[propertyId];
					if (p && p.type == flashPropertyType) {
						flashName = p.val;
						break;
					}
				}

				$j('> a', element).attr('id', item.id);
				$j('img', element).attr('alt', item.name);
				
				if (flashName) {
					//$j('> a', element).attr('data-guid', '4e5dfaa6e426002c29000178');
					$j('> a', element).attr('data-guid', flashName);
				}
			}
			return element;
		},
		onPostRenderItems: function() {
			// Don't do it if browser can't handle flash
			if(swfobject.hasFlashPlayerVersion("9")) {
				var guids = [];
				$j('#product-list li > a').each(function () {
					var guid = this.getAttribute('data-guid');
					if (guid) {
						guids.push({g:guid,a:this});
					}
				});

				if (guids.length == 0) {
					return;
				}

				var randomGuid = guids[Math.floor(Math.random() * guids.length)];
				var anchor = randomGuid.a;
				var guid = randomGuid.g;
				$j('img', anchor).hide();

				$j(anchor).append('<strong><span id="myContent'+anchor.id+'"></span></strong>');
				swfobject.embedSWF("/static/flash/StyleinSearch.swf", "myContent"+anchor.id, "184", "276", "8.0.0","/static/js/expressInstall.swf", {elemid: anchor.getAttribute("id"), ProductURL: anchor.href, guid: anchor.getAttribute("data-guid")}, {wmode: "transparent"});
			}
		},
		productTemplate: {
			container: $j('#product-list'),
			element: '.product',
			link: '.plink',
			image: '.primary',
			imageSize: 'medium',
			name: '.name',
			description: '.description',
			price: '.price-container',
			priceTemplate: '<span class="price">{lowestPrice}</span>',
			varyingPriceTemplate: Panagora.filterJsData.varyingPriceTemplate,
			saleTemplate: Panagora.filterJsData.saleTemplate,
			varyingPriceSaleTemplate: Panagora.filterJsData.varyingPriceSaleTemplate
		},
		onPostApplyFilter: function (items) {
			// Update total items
			$j('.totalitems').text(items.length);
		}
	};
	
	Panagora.PropertyMachine.setSortFunction('b', function (a, b) {
		var p1 = window.productData.products[a];
		var p2 = window.productData.products[b];
		return Panagora.PropertyMachine.sortFunctions.a(a, b);
	});
	
	Panagora.PropertyMachine.init(config);

	$j('#property-container').show();
	
	if (location.hash.match('sort=([a-z])')) {
		$j('#sort-selector li').removeClass('selected');
		var sort = location.hash.match('sort=([a-z])')[1];
		$j('#sort-selector li').each( function() {
			if (this.getAttribute('panagora:sortvalue') == sort)
				$j(this).addClass('selected');
		});
	}

	$j('#sort-selector li').click( function () {
		$j('#sort-result').val(this.getAttribute('panagora:sortvalue'));
		$j('#sort-result').change();

		$j('#sort-selector li').removeClass('selected');
		$j(this).addClass('selected');
	});

});
