// Things we need to do on page initialization
function ST_begin() {

  // Goes through each of the form elements marked as required and checks if they are completed (again on a reload)
    // if so, shows a smiley face. if not, shows a frown.
  var required=getElementsByAttribute('className','required');
  if (required.length>0) {
	  for (var i=0;i<required.length;i++) {
	    required[i].onchange=function(event) { ST_evalRequired(this); };
	    ST_evalRequired(required[i]);
	  }
	  required[i-1].form.onsubmit = function(event) { return ST_checkRequired(); };
  }
}

function ST_checkRequired() {
  var canWeSubmit=true;

  var required=getElementsByAttribute('className','required');
  for (var i=0;i<required.length;i++) {
    if (required[i].value.length == 0) {
	var myLabels=getElementsByAttribute('htmlFor',required[i].name);
	for (var j=0;j<myLabels.length;j++) {
		myLabels[j].style.color = "red";
		canWeSubmit=false;
	}
    }
  }
  return canWeSubmit;
}

function ST_evalRequired(obj) {
  if (obj.value.length>0) {
	var myLabels=getElementsByAttribute('htmlFor',obj.name);
	for (var i=0;i<myLabels.length;i++) {
		myLabels[i].innerHTML = myLabels[i].innerHTML.replace(/\*/g,'');
		myLabels[i].style.color = "black";
	}
  } else  {
	var myLabels=getElementsByAttribute('htmlFor',obj.name);
	for (var i=0;i<myLabels.length;i++) {
		if (myLabels[i].innerHTML.indexOf("*") == -1) myLabels[i].innerHTML += "*";
	}
  }
}

function ST_addItem() {
	var newCode=document.getElementById("itemgroup1").innerHTML;
	var ST_numberOfItems=parseInt(document.getElementById("numberofitems").value,10);
	ST_numberOfItems+=1;
	document.getElementById("numberofitems").value=ST_numberOfItems;
	newCode=newCode.replace("for=\"item1\"","for=\"item"+ST_numberOfItems+"\"");
	newCode=newCode.replace("name=\"item1\"","name=\"item"+ST_numberOfItems+"\"");
	newCode=newCode.replace("name=\"quantity1\"","name=\"quantity"+ST_numberOfItems+"\"");
	newCode=newCode.replace("name=\"inkcolors1\"","name=\"inkcolors"+ST_numberOfItems+"\"");

	var newItemGroup=document.createElement("div");
	newItemGroup.id="itemgroup"+ST_numberOfItems;
	newItemGroup.innerHTML=newCode;

	document.getElementById("items").appendChild(newItemGroup);	
	ST_begin();
	return false;
}

function ST_removeNode(nodeToRemove) {
	if (nodeToRemove.id!="itemgroup1") { nodeToRemove.parentNode.removeChild(nodeToRemove); }
}

function getElementsByAttribute(attr,val,container)
{
  container = container||document;
  var all = container.all || container.getElementsByTagName('*');
  var arr = [];
  for(var k=0;k<all.length;k++) {
    if(eval("all[k]."+attr) == val) arr[arr.length] = all[k];
  }
  return arr;
}
