var tremorRandomizer = 
{

	GetChildrenByClass : function(children,parent,className)
	{
		for(var i=0;i<parent.childNodes.length;i++)
		{
			var n = parent.childNodes[i];
			if (n.tagName == "TR" && n.className == className)
			{
				children[children.length] = n;
			}
			else if (n.tagName == "TBODY")
			{
				this.GetChildrenByClass(children,n,className);
			}
		}
		return children;
	},
	RandomizeRows : function(table,questions)
	{
		var parent = questions[0].parentNode;
		for(var i=0;i<questions.length;i++)
		{
			parent.removeChild(questions[i]);
		}
		function Order() { return Math.round(Math.random())-0.5;}
		questions.sort(Order);
		for(var i=0;i<questions.length;i++)
		{
			if ((i%2)==0) 
			{
				questions[i].className='Item';
			}
			else 
			{
				questions[i].className='AlternatingItem';
			}
			
			parent.appendChild(questions[i]);
		}
	},
	HasError: function(parent)
	{
		var e = parent.getElementsByTagName("span");
		for(var i=0;i<e.length;i++)
		{
			if (e[i].className == 'Error' && e[i].innerHTML != '*')
			{
				return true;
			}
		}
		return false;
	},
	
	Run : function() 
	{
		var tables = document.getElementsByTagName("table");
		for(var i=0;i<tables.length;i++)
		{
			if (!this.HasError(tables[i])) {
				var questions = [];
				this.GetChildrenByClass(questions,tables[i],"Item");
				this.GetChildrenByClass(questions,tables[i],"AlternatingItem");
				if (questions.length > 0) { 
						this.RandomizeRows(tables[i],questions);
				}
			}
		}
	}
};

tremorRandomizer.Run.call(tremorRandomizer);