	var totalCounter = 0;
	var baseZIndex = 11;
	var currentPageCounter = 1;

	function elevateToFront(id) {
		var ob = document.getElementById(id);
		if(ob) {
			ob.style.zIndex = baseZIndex;
			baseZIndex++;	
		}
	}
	
	function changeClass(id,newClass) {
		var ele = document.getElementById(id);
		if(ele) {
			ele.className = newClass;	
		}
	}
	
	function changeColorName(selectedIndex) {
		
		colorArray = document.getElementById('color');
		colorName = document.getElementById('colorname');
		if(colorArray) {
			color = colorArray[selectedIndex];
			colorName.innerHTML = '( '+color.text+' ) ';
		}
	}
	
	function moveOptions(sourceID,destinationID) {
		var sourceBox = document.getElementById(sourceID);
		var destinationBox = document.getElementById(destinationID);
		var selectedList = new Array();
		var removeList = new Array();
		var y=0;
		var z=0;
		for(x=0;x<=sourceBox.length;x++) {
			if(sourceBox.options[x]) {
				if(sourceBox.options[x].selected == true) {
					selectedList[y] = new Array();
					selectedList[y]["text"] = sourceBox.options[x].text;
					selectedList[y]["value"] = sourceBox.options[x].value;
					removeList[y] = x;
					y++;
				}	
			}
		}
		
		for(x=y;x>=0;x--) {
			if(sourceBox.options[removeList[x]]) {
				sourceBox.options[removeList[x]] = null;
			}
		}
		var startingPosition = destinationBox.length;
	
		for(z=0;z<=y;z++) {
			sla = z;
			optID = (z+startingPosition);
			if(selectedList[sla]) {
				destinationBox.options[optID] = new Option(selectedList[sla]["text"],selectedList[sla]["value"]);
			}
		}
	}
	
	function markOptionSelected(id,targetVal) {
		var selectBox = document.getElementById(id);
		var x=0;
		if(selectBox) {
			for(x=0;x<selectBox.length;x++) {
				if(selectBox[x].value == targetVal) {
					selectBox[x].selected = true;
				}
			}
		}
	}
		
	
	function dumpSelectToHidden(sourceID,formID) {
		var formElement = document.getElementById(formID);
		var sourceBox = document.getElementById(sourceID);
		for(x=0;x<=sourceBox.length;x++){
			if(sourceBox.options[x]){
				sourceBox.options[x].selected = false;
				newField = document.createElement("input");
				newField.type = "hidden";
				newField.name = sourceBox.name+"[]";
				newField.value = sourceBox.options[x].value;
				newField.id = sourceBox.name+"_"+x;
				formElement.appendChild(newField);
			}
		}	
	}
	
	function enableIfValueExists(value,targetID) {
		var target = document.getElementById(targetID);
		if(value) {
			target.disabled = false;
			target.bgColor='#FFFFFF';	
		}	
		else {
			target.disabled = true;	
		}
	}
	
	function conditionalChange(id,firstClass,secondClass) {
		idName=document.getElementById(id);
					  	
		
		if(idName.className==firstClass) {
			idName.className=secondClass;
		}
		else {
			idName.className=firstClass;
		}
	}
	
	function enableIfValueEquals(equalsValue,sourceValue,targetID) {
		var target = document.getElementById(targetID);
		
		if(target) {
			if(equalsValue == sourceValue) {	
				target.disabled = false;	
			}
			else {
				target.disabled = true;	
			}
			
		}
	}	
	
	function moreFields(where,from) {
		var newFields = document.getElementById(from).cloneNode(true);
		newFields.id = '';
		newFields.style.display = 'block';
		var newField = newFields.childNodes;
		for (var i=0;i<newField.length;i++) {
			var theName = newField[i].name;
			if (theName)
				newField[i].name = theName;
			var theId = newField[i].id;
			if (theId)
				newField[i].id = theId + totalCounter;
		}
		var insertHere = document.getElementById(where);
		insertHere.parentNode.insertBefore(newFields,insertHere);
		return totalCounter;
	}
	
	function setInputToValue(targetID,newValue) {
		var target = document.getElementById(targetID);
		if(target) {	
			target.value=newValue;	
		}
	}

	function showOneHideOtherDivs(hideMin,hideMax,showID,boxClass,prefix) {
		var x;
		var idName;
		for(x=hideMin;x<=hideMax;x++) {
			idName=document.getElementById(prefix+"_"+x);
			if(idName) {
				idName.className='hide';
			}
		}document.getElementById(prefix+showID).className=boxClass;
	}
	
	function checkCanSubmitStylePage() {
		var color = document.getElementById('color');
		var item = document.getElementById('item');
		
		var sb = document.getElementById('style_submit');
		var sb2 = document.getElementById('style_checkout');
		if(!color.value || color.value == '') {	
			if(sb) {
				sb.disabled = true;
				sb2.disabled = true;	
			}
			return false;
		}
		
		if(!item.value || item.value == '') {
			if(sb) {	
				sb.disabled = true;
				sb2.disabled = true;					
			}
			return false;
		}
		
		if(sb) {
			sb.disabled = false;	
			sb2.disabled = false;	
		}
	}
	
	function flipOpacity(id) {
		var baseOpac = .4;
		var fullOpac = 1;	
		var eleToFlip = document.getElementById(id);
		
		if(eleToFlip) {
			
			if(!eleToFlip.style.opacity || eleToFlip.style.opacity == '') {
				eleToFlip.style.opacity = baseOpac;	
			}
			if(eleToFlip.style.opacity > baseOpac) {
				eleToFlip.style.opacity = baseOpac;		
			}
			else {
				eleToFlip.style.opacity = fullOpac;
			}	
		}
	}
	
	function showOneHideAll(toShow,hideLike,elementType) {
		var eToShow = document.getElementById(toShow);
		if(!elementType) {
			elementType = 'div';
		}
		if(eToShow) {
			Elements.addClassToTagsWithIDLike('hide',elementType,hideLike);
			eToShow.className = 'show';
		}
	}

	function changePage(pageID,incrementDirection,maxPage,linkToChange) {
		var doIncrement = false;
		var previousCounter = currentPageCounter;
		switch(incrementDirection) {
			case 'up':
				if(currentPageCounter < maxPage) {
					doIncrement = true;
					currentPageCounter++;
				}
				break;
			
			case 'down':
				if(currentPageCounter > 1) {
					doIncrement = true;
					currentPageCounter--;
				}
				break;
		}
		
		if(doIncrement) {
			var toShow = pageID+''+currentPageCounter;
			showOneHideAll(toShow,pageID,'div');
			var oldHighlight = document.getElementById(pageID+''+previousCounter);
			oldHighlight.style.color = '#003399';
			
			var newHighlight = document.getElementById(pageID+''+currentPageCounter);
			newHighlight.style.color = '#CCCCCC';
		}
	}

	function updateStateDropdown_old(value,id) {
		var targetState = false;
		if(id == 'billing_country') { 
			targetState = document.getElementById('billing_state');
		}
		else {
			targetState = document.getElementById('shipping_state');
		}
		
		if(value != 184) {
			targetState.value = 66;
		}
		else {
			targetState.value = 0;
		}
	}

	function updateStateDropdown(value,id) {
		var targetState = false;
		var targetdiv_us = false;
		var targetdiv_nonus = false;

		if(id == 'billing_country') { 
			targetState = document.getElementById('billing_state');
                        targetdiv_us = document.getElementById('div_billing_state_us');
                        targetdiv_nonus = document.getElementById('div_billing_state_nonus');
		}
		else {
			targetState = document.getElementById('shipping_state');
                        targetdiv_us = document.getElementById('div_shipping_state_us');
                        targetdiv_nonus = document.getElementById('div_shipping_state_nonus');
		}
		
		if(value != 184) {
			targetState.value = 66;
            targetdiv_us.style.display  = "none";
            targetdiv_nonus.style.display  = "";
		}
		else {
			targetState.value = "";
            targetdiv_us.style.display  = "";
            targetdiv_nonus.style.display  = "none";
		}
	}

	function payPalShippingMethodUpdate(value,id) {
		var targetMethod = document.getElementById(id);
		if(targetMethod) {
			if(value == 184) {
				
			}
			else if (value == 31) {
				targetMethod.value = 6;
			}
			else {
				targetMethod.value = 5;
			}
		}
	}
function Elements() {}

Elements.get = function(id) {
   return document.getElementById(id);
}
Elements.applyFunctionToTagsPassingTest = function(applyFunc, tagName, testFunc, rootNode) {
   if (! rootNode) {
      rootNode = document;
   }
   elements = rootNode.getElementsByTagName(tagName);
   affected = new Array();
   for (var i=0; i<elements.length; i++) {
      if (testFunc(elements[i])) {
         applyFunc(elements[i]);
         affected[affected.length] = elements[i];
      }
   }
   return affected;
}

Elements.addClassToTagsWithIDLike = function(className, tagName, idLike, rootNode) {
   return Elements.applyFunctionToTagsPassingTest(
      function(elt)
         {
            Css.addClass(elt, className);
         }
      , tagName
      , function(elt)
         {
            return (elt.id.indexOf(idLike) != -1);
         }
      , rootNode
   );
}

Elements.addClassToTagsWithClass = function(newClass, tagName, oldClass, rootNode) {
   return Elements.applyFunctionToTagsPassingTest(
      function(elt)
         {
            Css.addClass(elt, newClass);
         }
      , tagName
      , function(elt)
         {
            return (elt.className && Css.hasClass(elt, oldClass));
         }
      , rootNode
   );
}

Elements.removeClassFromTagsWithIDLike = function(className, tagName, idLike, rootNode) {
   return Elements.applyFunctionToTagsPassingTest(
      function(elt)
         {
            Css.removeClass(elt, className);
         }
      , tagName
      , function(elt)
         {
            return (elt.id.indexOf(idLike) != -1);
         }
      , rootNode
   );
}

Elements.removeClassFromTagsWithClass = function(newClass, tagName, oldClass, rootNode) {
   return Elements.applyFunctionToTagsPassingTest(
      function(elt)
         {
            Css.removeClass(elt, newClass);
         }
      , tagName
      , function(elt)
         {
            return (elt.className && Css.hasClass(elt, oldClass));
         }
      , rootNode
   );
}

Elements.applyEventFunctionToTagsWithIDLike = function(eventName, func, tagName, idLike, cancelDefault, rootNode) {
   return Elements.applyFunctionToTagsPassingTest(
      function(elt)
         {
            Event.add(elt, eventName, func);
            if (cancelDefault) {
               eval('elt.on' + eventName + ' = Event.cancelDefaultAction;');
            }
         }
      , tagName
      , function(elt)
         {
            return (elt.id.indexOf(idLike) != -1);
         }
      , rootNode
   );
}

function Css() {}

Css.addClass = function(elt, className) {
   Css.removeClass(elt, className);
   if (elt.className != '') {
      elt.className = className + ' ' + elt.className;
   } else {
      elt.className = className;
   }
}

Css.removeClass = function(elt, className) {
   if (Css.hasClass(elt, className)) {
      newClassName = ' ' + elt.className + ' ';
      newClassName = newClassName.replace(' ' + className + ' ', ' ');
      if (newClassName.charAt(0) == ' ') {
         newClassName = newClassName.substr(1);
      }
      if (newClassName.charAt(newClassName.length - 1) == ' ') {
         newClassName = newClassName.substr(0, newClassName.length - 1);
      }
      elt.className = newClassName;
   }
}

Css.hasClass = function(elt, className) {
   if (elt.className) {
      if ((' ' + elt.className + ' ').indexOf(' ' + className + ' ') != -1) {
         return true;
      }
   }
   return false;
}



//  *************************************************************************************
//                 Added functions -  for Authorize.Net checkout
//  *************************************************************************************


function isNumeric(e)
		{
			//With FireFox Support
			var KeyID = (window.event) ? event.keyCode : e.which;
			
			
			if((KeyID >= 65 && KeyID <= 90) || (KeyID >= 97 && KeyID <= 122) || (KeyID >= 33 && KeyID <= 47) ||
			   (KeyID >= 58 && KeyID <= 64) || (KeyID >= 91 && KeyID <= 96) || (KeyID >= 123 && KeyID <= 126))
			{
				return false;
			}
                        return true;
}



	function showdivIfValueEquals(equalsValue,sourceValue,target_div_equal,target_div_notequal) {
		var target_equal = document.getElementById(target_div_equal);
		var target_notequal = document.getElementById(target_div_notequal);
		if(equalsValue == sourceValue) {	
			target_equal.style.display = '';	
			target_notequal.style.display = 'none';	
		}
		else {
			target_equal.style.display = 'none';	
			target_notequal.style.display = '';	
		}
			
	}	


function $(id) {
	if(document.getElementById(id)) {
		return document.getElementById(id);
	}
	return false;
}
	
function checkGCOrPromoCode() {
	var gcCode = $('gift_certificate').value;
	var promoCode = $('promo_code').value;
	
	if(promoCode) {
		if(promoCode.toLowerCase().substr(0,2) == 'gc') {
			$('gift_certificate').value = promoCode;
			$('promo_code').value = '' ;
		}
	}
	
}

function intlTermsCheck(checked) {
	if(checked) {
		$('order_button').style.display = '';
		$('order_button_2').style.display = '';
	} 
	else { 
		$('order_button').style.display = 'none';
		$('order_button_2').style.display = 'none';
	}
	
}

