function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}

// Submit form with checks
function submitForm(form) {
	if(document.forms["CartRow_"+form+"_Form"].elements["color_"+form].value=="") {alert("Please select a color.")}
	else if(document.forms["CartRow_"+form+"_Form"].elements["size_"+form].value=="") {alert("Please select a size.")}
	else if(document.forms["CartRow_"+form+"_Form"].elements["quantity_"+form].value=="") {alert("Please select a quantity.")}
	else {document.forms["CartRow_"+form+"_Form"].submit();}
}


function ClickColorGroup(buttonID,showID,caption,url_main,url_large,color_name)
{
	//	Click the main image
	ClickImageType(caption,url_main,url_large);
	
	//	Grab the Div we'll be showing, and show it
	oShow=document.getElementById(showID);
	oColor=document.getElementById("selectedColor");
	oColor.innerHTML=color_name;
	if(!oShow){
		alert('Unable to show color group images');
		return false;
	}
	oShow.style.display='block';
	
	//	Hide all other groups
	for(var a=0;a<colorGroupDivs.length;a++){
		if(colorGroupDivs[a]!=showID){
			oHide=document.getElementById(colorGroupDivs[a]);
			if(!oHide){
				alert('Unable to grab color group: '+colorGroupDivs[a]);
				return false;
			}
			oHide.style.display='none';
		}
	}
	
	//	Change all color buttons
	for(var a=0;a<colorGroupButtons.length;a++){
		if(colorGroupButtons[a]!=buttonID){
			oChangeButton=document.getElementById(colorGroupButtons[a]);
			if(!oChangeButton){
				alert('Unable to grab color group button: '+colorGroupButtons[a]);
				return false;
			}
			oChangeButton.className="colorButton box";
		}
	}
	
	return true;
}

function ClickImageType(caption,url_main,url_large)
{
	//	Grab and set caption
	oCaption=document.getElementById('mainImageLink');
	if(!oCaption){
		alert("Unable to grab large image's caption");
		return false;
	}
	oCaption.title=caption;
	
	//	Grab and set main image
	oMainImage=document.getElementById('mainImage');
	if(!oMainImage){
		alert('Unable to grab main image');
		return false;
	}
	oMainImage.src=url_main;
	
	//	Grab and set larger image
	oLargeImage=document.getElementById('mainImageLink');
	if(!oLargeImage){
		alert('Unable to grab large image');
		return false;
	}
	oLargeImage.href=url_large;
	
	return true;
}

function Cart_ClickColor(showID)
{
	//	Grab the size-span we'll be showing, and show it
	oShow=document.getElementById(showID);
	if(!oShow){
		alert('Unable to show cart color group sizes: '+showID);
		return false;
	}
	oShow.style.display='block';
	
	//	Hide all other groups
	for(var a=0;a<cartColorGroupSizeSpans.length;a++){
		if(cartColorGroupSizeSpans[a]!=showID){
			oHide=document.getElementById(cartColorGroupSizeSpans[a]);
			if(!oHide){
				alert('Unable to grab cart color group size span: '+cartColorGroupSizeSpans[a]);
				return false;
			}
			oHide.style.display='none';
		}
	}
	
	return true;
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}