	function usort (inputArr, sorter) {
	    var valArr = [],
	        k = '',
	        i = 0,
	        strictForIn = false,
	        populateArr = {};
	 
	    if (typeof sorter === 'string') {
	        sorter = this[sorter];
	    } else if (sorter instanceof Array) {
	        sorter = this[sorter[0]][sorter[1]];
	    }
		this.php_js = this.php_js || {};
		this.php_js.ini = this.php_js.ini || {};
	    strictForIn = this.php_js.ini['phpjs.strictForIn'] && this.php_js.ini['phpjs.strictForIn'].local_value && this.php_js.ini['phpjs.strictForIn'].local_value !== 'off';
	    populateArr = strictForIn ? inputArr : populateArr;
	 
	 
	    for (k in inputArr) { // Get key and value arrays
	        if (inputArr.hasOwnProperty(k)) {
	            valArr.push(inputArr[k]);
	            if (strictForIn) {
	                delete inputArr[k];
	            }
	        }
	    }
	    try {
	        valArr.sort(sorter);
	    } catch (e) {
	        return false;
	    }
	    for (i = 0; i < valArr.length; i++) { // Repopulate the old array
	        populateArr[i] = valArr[i];
	    }
	    return strictForIn || populateArr;
	}
	
	
	
	
	function updateOrder(fBlocks) {
		var rowI = 0;
		var tempTrs = {};
		var table = false;
		for (var i in fBlocks) {
			var elem = document.getElementById(fBlocks[i].id);
			if (elem.nodeName=="TR") {
				if (!table) table = elem.parentNode;
				tempTrs[i] = elem.cloneNode(true);
				elem.parentNode.removeChild(elem)
			}
		}
		

		
		if (table) {
			for (var i in fBlocks) {
				var newRow = table.insertRow(-1);			
				newRow.attributes = tempTrs[i].attributes
				newRow.innerHTML = tempTrs[i].innerHTML
				
				for (var c=0; c<tempTrs[i].attributes.length; c++) {
					var attr=tempTrs[i].attributes[c];
					if (attr.name!="style")
						newRow.setAttribute(attr.name,attr.value)
				}
			}
		
		}
		else {
			for (var i in fBlocks) {
				var div = document.getElementById(fBlocks[i].id)
				if (!div) {
					continue;
				}
				
				container2 = div.parentNode;
				container2.removeChild(div);
				container2.appendChild(div);
			}		
		}
		

	
	}
	
	function sortBlocks(type, fBlocks) {
		if (!fBlocks) fBlocks = blocks;
		
		for (var i in fBlocks) {
			//alert(fBlocks[i].id)
			if (document.getElementById(fBlocks[i].id))
				document.getElementById(fBlocks[i].id).style.display = "block";
		}
		switch (type) {
			case 'price':
				fBlocks = usort(fBlocks, function(a, b){ return(a.price-b.price);})
				break;
			case 'sales':
				fBlocks = usort(fBlocks, function(a, b){ return(b.sales-a.sales);})
				break;
			case 'time':
				fBlocks = usort(fBlocks, function(a, b){ return(a.nextupdate-b.nextupdate);})
				break;
			case 'belgium':
				for (var i in fBlocks) {
					if (fBlocks[i].belgium==0)
						document.getElementById(fBlocks[i].id).style.display = "none";
				}
				break;
			case 'holland':
				for (var i in fBlocks) {
					if (fBlocks[i].holland==0)
						document.getElementById(fBlocks[i].id).style.display = "none";
				}
				break;
			default:
				fBlocks = usort(fBlocks, function(a, b){ return(a.order-b.order);})
				break;	
		}		
		updateOrder(fBlocks)
	}
