var sizelist=" ,.5 oz,1 oz.,2 oz,2oz.,3 oz,4 oz,4oz,8 oz,12 oz,16 oz,17 oz,24 oz,20 lb,30lb,50 lb,60lb,100 lb,10mm,18mm,1\2pt.,\"1/2\",1/2x4,1/2x5',1\2x6',5/8x4,5/8x5,5\8x5',5\8x6',3/4x4,3/4x5',3\4x6',\"1\",\"1\"x5'\",1x4,1x4',1x5',1x5,1x6',5'x1/2,5x5/8,\"5'x1\",25x18,35x24,47x35,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,26,28,30,3 Pk,90 ct.,90ct.,5'',6'',7'',8'',9'',\"10\",\"12\",14'',16'',18'',20'',24'',\"36\",\"40\",\"41\",\"60\",\"71\",Tiny,Tiny 1,Tiny 2,Tiny 3,Tiny 4,Mini,Junior,Extra Extra Small,Petite,Extra Small,Small,Medium,Med,REG,Regular,Medium/Large,Large,LG,Extra Large,Extra Extra Large,3XL,XXXL,4XL,Bigger,Jumbo,Apple,Aqua & Brown,Assorted,Asst,B/W,Bacon,Beef,Beige,Beige & Black,Bistro,Bites,Bits,Black,Black & Green,Black & White,Blk,Blue,Blue & White,Bright,Bristo,Bronze,Brown,Burgandy,Butter,Cactus,Camoflauge,Carob,Cashew,Cedar,Ched.,Chicken,Chocolate,Chrome,Citron,Clay,Cocoa,Coloss,Copper,Crystal,Dark Green,Denim,Espresso,Fawn,Firenz,Flames,Fushia,Glass,Glow,Gold,Gray,Green,Green & Pink,Grey,Honey,Hot Pink,Ice,Irrede,Jaguar,Jester,Jungle,Kelly,Khaki,Leopard,Light Blue,Light Pink,Lime,Mahogany,Milano,Mink,Mixed,Moss,Multi,Navy,Olive,Orange,Original,Parmesan,Pastel,Peach,Peanut,Pink,Pink & Black,Pink & Brown,Pink & Lime,Pink & Turquoise,Pizza,Plaid,Purple,Putty,Rainbow,Raspberry,Red,Red & Green,Red & White,Royal,Ruby,Salmon,Sand,Scent,Shadow,Silver,Souper,Soy,Spray,Spring,Table,Tan,Teacup,Teal,Turquoise,Turquoise & Brown,,VaMint,Veggie,White,Whtie,Wolf,Yellow,Cat,Dog,Horse,Hounds,Kitty,V3, ";

function sizechart(x){return sizelist.indexOf("," + String(x) + ",");}

function numsubstr(fs){
	var not_done = true;
	var i=1;
	var t=fs.charAt(0);
	while ((not_done) && (fs.length >= i)){
		if (isNaN(t+fs.charAt(i))){not_done = false;}else{t=t+fs.charAt(i);}
		i++;
	}
	if (isNaN(t)){t=0;}  //if, for some reason, there is no integer at all, make it a zero.
	return t;
}

function smart_sort(a,b){
	var inda=sizelist.indexOf(a);
	var indb=sizelist.indexOf(b);
	if ((inda >= 0) || (indb >= 0)){
		if((inda >= 0) && (indb >= 0)){
			if (sizechart(a)>=sizechart(b)){return 1;}else{return -1;}
		}else{
			if(inda >= 0){
				if(isNaN(b)){return -1;}else{return 1;}
			}else{
				if(isNaN(a)){return 1;}else{return -1;}
			}
		}
	}else{
		if (isNaN(a) || isNaN(b)){
			if (a>=b){return 1;}else{return -1;}
		}else{
			if (parseInt(a)>=parseInt(b)){return 1;}else{return -1;}
		}
	}
}

function sizechart_sort(r,s){if (parseInt(sizechart(r))>=parseInt(sizechart(s))){return 1;}else{return -1;}}

function float_sort(p,q){
	var flt1, flt2;
	if (isNaN(p)){flt1=numsubstr(p);}else{flt1=p;}
	if (isNaN(q)){flt2=numsubstr(q);}else{flt2=q;}
	if (parseFloat(flt1)>=parseFloat(flt2)){return 1;}else{return -1;}
}

function integer_sort(m,n){
	var int1, int2;
	if (isNaN(m)){int1=numsubstr(m);}else{int1=m;}
	if (isNaN(n)){int2=numsubstr(n);}else{int2=n;}
	if (parseInt(int1)>=parseInt(int2)){return 1;}else{return -1;}
}

function string_sort(j,k){if (j>=k){return 1;}else{return -1;}}

function double_sort(a1,b1,a2,b2){
	var intval = 1; //intval is the value to be returned.  It starts at 1 and is only changed if a is NOT greater than b.
	//If a1 equals b1 then look at a2 & b2.  Otherwise look at a1&b1.
	if(a1==b1){
		//a1=b1, so look at a2<>b2
		
		//SECOND TERM SORT:
		intval=	string_sort(a2,b2);
	}else{
		//a1&b1 are different, if b1>a1 then make intval=-1.
		
		//FIRST TERM SORT:3

		intval= sizechart_sort(a1,b1);
	}
	return intval;
}

function UUSort(a,b){return double_sort(a.attr_value1,b.attr_value1,a.attr_value2,b.attr_value2);}
//-->