
var hasResults = true;

window.addEvent('domready', function(){

	var moveSort = new Fx.Morph('productTitle', { transition: Fx.Transitions.Sine.easeOut});
	
	if (!hasResults) {return;}
	
	var mySlide = new Fx.Slide('bSort', {
		mode: "horizontal"
	}).hide();
	
    $('togSearch').addEvent('click', function(e){
		if (e != undefined) {
			e.stop();
		}
		mySlide.toggle();
		if ($('bSort') != null && $('bSort').getStyle('margin-left') == '0px') {
			$('vSearchShowHide').setProperty('src', '/img/webparts/sort_rt.png');
			moveSort.start({
			    'margin-top': [10,-50] 
			});

		}
		else {
			$('vSearchShowHide').setProperty('src', '/img/webparts/sort_lt.png');
			moveSort.start({
			   'margin-top': [-50,10]
			});
		}
	});
	$$('.sortCommands').addEvent('click', function(e){
				//$('CatalogSpinner').setStyle('visibility','visible');
		e.preventDefault(); 
		SortProduct(this.name,this.id);
				//$('CatalogSpinner').setStyle('visibility','hidden');
		$('togSearch').fireEvent('click');
	});
});	

function ProductText(_id, _pText, _sortText){
	this.id = _id;
	this.pText = _pText;
	this.sortText = _sortText;
}

function SortProduct(sortItem, sortName){

	//get all vehicles on page
	var productArr = [];
	var  c = 0;
	$$('.pContainer').each(function(el){
		el.getElements('td').each(function(e){
			e.removeProperty('style');
		});
		var id = GetID(el.id);
		var elSort = el.getElement('td[id="' + sortItem + '"]');

		//change the item title that we are sorting on to yellow
		elSort.getPrevious().setStyle("color","#E7D606");
		productArr[c] = new ProductText(id, el.innerHTML, elSort.get('text').replace(/[\$,\.\s]/gi,'' ));
		c++;
	});
	productArr.sort(SortProductsAsc);
	// clean out all listed products
	$('AllProducts').empty();
	
	//Now add the sorted products back
	var i=0;
	for (i = 0; i < productArr.length; i++) {
		$('AllProducts').adopt(new Element('div', {
			id: 'product_' + productArr[i].id,
			'class' : 'pContainer',
			html: productArr[i].pText
		}));
	}
	productArr.length=0;

	// add descriptional text to h6 #productTitle
	$('productTitle').getElement('em').set('text','Sorted on ' + sortName);
 
};

var GetID = function(elemID) {
	var ex = "[0-9]*$";
	return elemID.match(ex);
};

function SortProductsAsc(a, b){
	if (! isNaN(a.sortText) && ! isNaN(b.sortText))  {
		return a.sortText-b.sortText;
	}
	else {
		var x = a.sortText.toLowerCase();
		var y = b.sortText.toLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	}
}


function Cleanup(){
hasResults = false;

}
