	function format_number(p,d) {
		var r;
		if (p < 0) {
			p = -p;
			r = format_number2 (p, d);
			r = "-"+r;
		} else {
			r = format_number2 (p, d);
		}
		
		return r;
	}
	
	function format_number2(pnumber,decimals) {
		var strNumber = new String (pnumber);
		var arrParts = strNumber.split ('.');
		var intWholePart = parseInt (arrParts[0],10);
		var strResult = '';
		if (isNaN (intWholePart))
			intWholePart = '0';
		if (arrParts.length > 1) {
			var decDecimalPart = new String (arrParts[1]);
			var i = 0;
			var intZeroCount = 0;
			while (i < String (arrParts[1]).length) {
		   		if (parseInt (String (arrParts[1]).charAt(i),10) == 0) {
			    	intZeroCount += 1;
	         		i += 1;
	       		} else
	         		break;
	    	}
	
		    decDecimalPart = parseInt (decDecimalPart,10)/Math.pow(10,parseInt(decDecimalPart.length-decimals-1)); 
		    Math.round (decDecimalPart); 
		    decDecimalPart = parseInt (decDecimalPart)/10; 
		    decDecimalPart = Math.round (decDecimalPart); 
	
		    //If the number was rounded up from 9 to 10, and it was for 1 'decimal' 
		    //then we need to add 1 to the 'intWholePart' and set the decDecimalPart to 0. 
	
		    if (decDecimalPart==Math.pow(10, parseInt (decimals))) { 
				intWholePart+=1; 
	      		decDecimalPart="0"; 
		    } 
	
		    var stringOfZeros = new String ('');
		    i=0;
		    if (decDecimalPart > 0 ) {
		    	while (i < intZeroCount) {
	        		stringOfZeros += '0';
	        		i += 1;
	      		}
	    	}
	
	    	decDecimalPart = String (intWholePart) + "." + stringOfZeros + String (decDecimalPart); 
		    var dot = decDecimalPart.indexOf ('.');
		    if (dot == -1) {
	      		decDecimalPart += '.'; 
	      		dot = decDecimalPart.indexOf ('.'); 
	    	} 
	    	
			var l = parseInt (dot)+parseInt (decimals); 
	    	while (decDecimalPart.length <= l) {
	      		decDecimalPart += '0'; 
	    	}
	    	
			strResult = decDecimalPart;
		} else {
	    	var dot; 
	    	var decDecimalPart = new String (intWholePart);
	
	    	decDecimalPart += '.'; 
	    	dot = decDecimalPart.indexOf ('.'); 
	    	var l = parseInt (dot)+parseInt (decimals); 
	    	while (decDecimalPart.length <= l) {
	      		decDecimalPart += '0'; 
	    	}
	    
			strResult = decDecimalPart;
	  	}
	  
		return strResult;
	}


	function compareNames(a, b) {
		if (a[0]<b[0]) return -1;
		if (a[0]>b[0]) return 1;
		return 0;
	}

	function comparePrices(a, b) {
		if ((a[1] != "") && (b[1] != ""))
			return a[1]-b[1];
		else
			return a[2]-b[2];
	}

	function changeMechanism(method) {
		if (method == "name")
			item.sort(compareNames);
		if (method == "price")
			item.sort(comparePrices);

		replaceData(1);
	}

	function viewAll() {
		items_view_all = "true";
		showdivs (item.length);
		replaceData(1);
	}

	function replaceData(page) {
		var control_counter_end;
		control_counter_end = item.length / items_per_page;
		control_counter_end = Math.ceil(control_counter_end) + 1;
		
		var control_counter = 1;
		var control_panel = "";

		if ((page > 1) && (items_view_all != "true")) {
			var prevpage = page - 1;
				control_panel = "<font color=blue face='Verdana' size=1 onclick='javascript: showdivs(items_per_page); replaceData("+prevpage+");' style='cursor: pointer;'><u>Prev</u></font>&nbsp;";
		} else {
			control_panel = "<font face='Verdana' size=1><b>Prev</b></font>&nbsp;";
		}

		while (control_counter < control_counter_end) {
			if ((control_counter == page) && (items_view_all != "true"))
					control_panel = control_panel + "<font face='Verdana' size=1><b> "+control_counter+"</b></font>";
			else
					control_panel = control_panel + " <font color=blue face='Verdana' size=1 onclick='javascript: showdivs(items_per_page); replaceData("+control_counter+");' style='cursor: pointer;'><u>"+control_counter+"</u></font>";

			control_counter = control_counter + 1;
		}

		if (items_view_all != "true")
				control_panel = control_panel + "&nbsp;<font color=blue face='Verdana' size=1 onclick='javascript: viewAll();' style='cursor: pointer;'><u>View All</u></font>";
		else
			control_panel = control_panel + "&nbsp;<font face='Verdana' size=1><b>View All</b></font>";

		if ((page < (control_counter_end - 1)) && (items_view_all != "true")) {
			var nextpage = page + 1;
				control_panel = control_panel + "&nbsp;&nbsp;<font color=blue face='Verdana' size=1 onclick='javascript: showdivs(items_per_page); replaceData("+nextpage+");' style='cursor: pointer;'><u>Next</u></font>";
		} else {
			control_panel = control_panel + "&nbsp;&nbsp;<font face='Verdana' size=1><b>Next</b></font>";
		}

		document.getElementById('control').innerHTML = control_panel;

		var x;
		if ((page == 1) || (page == 0))
			x = 0;
		else
			x = (page * items_per_page) - items_per_page;
		
		i = 0;
		var max_to_show;
		if (items_view_all == "true")
			max_to_show = item.length;
		else
			max_to_show = items_per_page;

		var color_checker;
		color_checker = "true";

		var xx = x;
		var count_rows = 0;
		while ((item[xx]) && (count_rows < items_per_page)) {
			count_rows = count_rows + 1;
			xx = xx + 1;		
		}
		
		if (items_view_all != "true")
			showdivs (count_rows);

		while (i < max_to_show) {
			if (item[x]) {
				var tempform;
				tempform = document.getElementById('form'+i+'').action;
				document.getElementById('form'+i+'').action = tempform + "+" + item[x][4];

				if (item[x][1]) {
					var tmp_price = format_number(item[x][1], 2);
					document.getElementById('prod'+i+'_price_title').innerHTML = prod_price_title;
					document.getElementById('prod'+i+'_price').innerHTML = "$" + tmp_price;
				}

				if (item[x][2]) {
					var tmp_saleprice = format_number(item[x][2], 2);
					document.getElementById('prod'+i+'_saleprice_title').innerHTML = prod_saleprice_title;
					document.getElementById('prod'+i+'_saleprice').innerHTML = "$" + tmp_saleprice;
				}

				document.getElementById('prod'+i+'_html').innerHTML = item[x][3];
				document.getElementById('prod'+i+'_image').innerHTML = item[x][5];
				document.getElementById('prod'+i+'_link').innerHTML = item[x][6];
			}
			
			x = x + 1;
			i = i + 1;
		}

		if (items_view_all == "true") {
			max_to_show = items_per_page;
			items_view_all = "false";
		}
	}