/**
 * @author user
 */
function generateCompare(SortIndex){
	return function Compare(a1,a2){
		var good1 = a1.innerHTML.split(' ');
		var good2 = a2.innerHTML.split(' ');
		var n = good1[SortIndex].indexOf('<');
		if (n!=-1){
			var reg = /(<b>)|(<\/b>)|(<B>)|(<\/B>)/;
			good1[SortIndex] = good1[SortIndex].replace(reg,'');
		}
		var n = good2[SortIndex].indexOf('<');
		if (n!=-1){
			var reg = /(<b>)|(<\/b>)|(<B>)|(<\/B>)/;
			good2[SortIndex] = good2[SortIndex].replace(reg,'');
		}
		var val1 = good1[SortIndex];
		var val2 = good2[SortIndex];
		return val1.localeCompare(val2);
	}
}

function Sort_goods(parent_el,content,tagname,SortIndex){
	/*************Getting sort arguments*************/
	var a= new Array;
	var cont_div = document.getElementById(content);
	a = cont_div.getElementsByTagName(tagname);
	//alert(a);
	var a_new = new Array;
	for (var i=0;i<a.length;i++) a_new[i] = a[i];
	var goods = new Array;
	for (var i=0;i<a_new.length;i++){
		goods[i] = a_new[i].innerHTML.split(' ');
		if (tagname=='a'){
			goods[i].splice(goods[i].length-2,2); 
		} 
	} 
	/********Sorting goods by SortIndex************/
	var a_by_len = new Array;
	a_by_len[0] = new Array;
	a_by_len[1] = new Array;
	a_by_len[2] = new Array;
	a_by_len[3] = new Array;
	a_by_len[4] = new Array;
	a_by_len[5] = new Array;
	a_by_len[6] = new Array;
	var imax = -1;
	var imin =  7;
	for (var i=0;i<goods.length;i++){
		imax = goods[i].length > imax ? goods[i].length-1 :imax;
		imin = goods[i].length < imin ? goods[i].length :imin;  
		switch (goods[i].length){
			case 7 :{
					a_by_len[6].push(a_new[i]);
					break;
					}
			case 6 :{
					a_by_len[5].push(a_new[i]);
					break;
					}
			case 5 :{
					a_by_len[4].push(a_new[i]);
					break;
					}							
			case 4 :{
					a_by_len[3].push(a_new[i]);
					break;
					}
			case 3 :{
					a_by_len[2].push(a_new[i]);
					break;
					}
			case 2 :{
					a_by_len[1].push(a_new[i]);
					break;
					}
			case 1 :{
					a_by_len[0].push(a_new[i]);
					break;
					}																				
		}
}
/************************************/
/***Creating array to be sorted by SortIndex***/
	var a_sort = new Array(); 
	for (var i=imax; i >= SortIndex; i--){
		a_sort = a_sort.concat(a_by_len[i]);	
	}
	/***Creating array to be sorted by first word***/
	var a_sort1 = new Array();
	for (var i=SortIndex; i >= imin; i--){
		
		a_sort1 = a_sort1.concat(a_by_len[i-1]);	
	}
/***********************************/
	a_sort.sort(generateCompare(SortIndex));
	a_sort1.sort(generateCompare(0));
	
	var oFragment = document.createDocumentFragment();
	
	for (var i=0;i < a_sort.length;i++){
		oFragment.appendChild(a_sort[i]);
	}
	for (var i=0;i < a_sort1.length;i++){
		oFragment.appendChild(a_sort1[i]);
	}
	//alert(oFragment);
	document.getElementById(content).appendChild(oFragment);
}
