			/**
			*
			*/
			function getObj(objId){
				if (document.getElementById && document.getElementById(objId) != null)
					 return document.getElementById(objId);
				else if (document.layers && document.layers[objId] != null)
					return document.layers[objId];
				else if (document.all)
					return document.all[objId];
				else
					return false;
			}

/*
    function addEvent( obj, type, fn ) {
      if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
      } else
        obj.addEventListener( type, fn, false );
   	}
   function removeEvent( obj, type, fn ) {
     if ( obj.detachEvent ) {
       obj.detachEvent( 'on'+type, obj[type+fn] );
       obj[type+fn] = null;
     } else
       obj.removeEventListener( type, fn, false );
  }
*/


			
			function addEvent(elm, evType, fn, useCapture)
			// addEvent and removeEvent
			// cross-browser event handling for IE5+,  NS6 and Mozilla
			// By Scott Andrew
			{
				  if (elm.addEventListener){
				    elm.addEventListener(evType, fn, useCapture);
				    return true;
				  } else if (elm.attachEvent){
				    var r = elm.attachEvent("on"+evType, fn);
				    return r;
				  } else {
				    alert("Handler could not be removed");
				  }
			} 			

			
			function disableForm(frm) {
				//TODO
			}


			
			/** used to mark if a form has been submitted */
			var submitted = false;


			/**
			*
			*/
			function validateAgentForm(form) {
				for(var i = 0; i < form.elements.length; i++){
				    if (form.elements[i].type.toLowerCase() == 'text') {
			   			form.elements[i].value = form.elements[i].value.toUpperCase();
				    }
			
					if (form.elements[i].value == '') {
						alert(form.elements[i].name + " cannot be empty.");
						return false;
				    }
				}
				form.submit();
			}
	

	
			/**
			*
			*/
			function validateShippingForm(frm) {
				if (submitted) {
					alert("Please only submit your order once.");
					return true;
				}

				if (getObj("form_address1").value == "") {
					alert("You must enter a valid address!");
					getObj("form_address1").focus();
					return false;
				}

				if (getObj("form_city").value == "") {
					alert("You must enter a city!");
					getObj("form_city").focus();
					return false;
				}

				if (getObj("form_state").value == "") {
					alert("You must enter a state!");
					getObj("form_state").focus();
					return false;
				}
				if (getObj("form_zip").value == "") {
					alert("You must enter a zipcode!");
					getObj("form_zip").focus();
					return false;
				}	
				if ( !isNumericString(getObj("form_zip").value) ) {
					alert("Your zipcode may only contain digits!");
					getObj("form_zip").focus();
					return false;
				}			
				if ( getObj("form_zip").value.length < 5) {
					alert("Your zipcode must be at least 5 digits!");
					getObj("form_zip").focus();					
					return false;
				} 
				submitted = true;
				return true;
			}


			/**
			*
			*/
			function isNumericString(str) {
				for (var i = 0; i < str.length; i++) {
					if ( isNaN(parseInt(str.charAt(i))) ) {
						return false;
					}
				}
				return true;
			}

			/**
			 * numeralsOnly, tie to an onkeypress event to make a field numeric only
			 * This script was derived from an example by Danny Goodman in his book
			 * Cooking with JavaScript & DHTML by O'Reilly press
			 */
			function numeralsOnly(evt) {
				evt = (evt) ? evt : event;
				var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
					((evt.which) ? evt.which : 0));
				if (charCode > 31 && (charCode < 48 || charCode > 57)) {
					return false;
				}
				return true;
			}	

		
			/**
			* Gets the next form elemnt after the one passed in.
			*
			*/
			function getNextFormElement(el) {
				var frm = el.form;
				for (var i=0; i<frm.length; i++) {
					if (frm[i] == el) {
						return (i+1 < frm.length) ? frm[i+1] : el;
					}
				}
				return el;
			}
		
			/**
			* Places the focus on the form element after the one passed in.
			*
			*/
			function focusAfter(el) {
				var nextEl = getNextFormElement(el);
				nextEl.focus();
				if (nextEl.getAttribute("type").indexOf("text") >= 0) {
					nextEl.select();
				}
			}
			
			/**
			* Places the focus on the form element after the one passed in
			* if the string in the field is at the max length
			*
			*/
			function focusAfterIfFull(el, evt) {
				evt = (evt) ? evt : event;
				var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
				var maximum = el.getAttribute("maxlength");
				var val = el.value;
				if ((charCode > 31) && (val.length == maximum)) {
					focusAfter(el);
				}
			}
			
		
			/**
			*
			*/
			function getFormElementByName(nm, frm) {

				var selects = frm.getElementsByTagName("SELECT");

				for (var i=0; i<selects.length; i++) {
					var el = selects[i];
					if (el.getAttribute("name") == nm) {
						return el;
					}
				}

				var inputs = frm.getElementsByTagName("INPUT");

				for (var i=0; i<inputs.length; i++) {
					var el = inputs[i];
					if (el.getAttribute("name") == nm) {
						return el;
					}
				}
				return null;
			}		
			
			
			
			/**
			*
			*/
			function getFormElementsByName(nm, frm) {
				var elements = new Array();
				var selects = frm.getElementsByTagName("SELECT");

				for (var i=0; i<selects.length; i++) {
					var el = selects[i];
					if (el.getAttribute("name") == nm) {
						elements.push(el);
					}
				}

				var inputs = frm.getElementsByTagName("INPUT");

				for (var i=0; i<inputs.length; i++) {
					var el = inputs[i];
					if (el.getAttribute("name") == nm) {
						elements.push(el);
					}
				}
				//return elements.reverse();
				return elements;
			}		
			
			
			
			function createQueryStringFromForm(frm, pg) {
				var selects = frm.getElementsByTagName("SELECT");
				var queryString = "";
				for (var i=0; i<selects.length; i++) {
					var el = selects[i];
					if (el.name != '' && el.value != '') {
						queryString += escape(el.name) + "=" + escape(el.value) + "&";
					}
				}

				var inputs = frm.getElementsByTagName("INPUT");
				for (var i=0; i<inputs.length; i++) {
					var el = inputs[i];
					if (el.name != '' && el.value != '') {
						queryString += escape(el.name) + "=" + escape(el.value) + "&";
					}
				}
				
				//clean page
				var page = pg + "";
				page = page.substr(0, page.indexOf("?"));
				queryString = queryString.substr(0, queryString.lastIndexOf("&"));
				return page + "?" + queryString;
			}
			
			
			/**
			*
			*/
			function checkAll(frm, inputName, val) {
				if (val == 'undefined') {
					val = true;
				}
				if (inputName == 'undefined') {
					inputName = "";
				}
				var inputs = frm.getElementsByTagName("INPUT");

				for (var i=0; i<inputs.length; i++) {
					var el = inputs[i];
					if (el.type=="checkbox") {
						if (inputName != "" && el.name == inputName) {
							el.checked = val;
						}
					}
				}
			}
			
			/**
			*
			*/
			function setInputValue(el, val) {
				if (val == null) {
					return;
				}
				if (el.tagName == "SELECT") {
					for (var i=0; i<el.options.length; i++) {
						if(el.options[i].value == val) {
							el.selectedIndex = i;
							return;
						}
					}
				}
				else if (el.tagName == "INPUT" && (el.type=="checkbox") ) {
					if (val == "on" || val == "true" || val == "1" || val == true || val == 1)
						el.checked = true;
				}
				else if (el.tagName == "INPUT") {
					valStr = val.toString();
					el.value = valStr.replace("+", " ");
				}
			}

			/**
			*
			*/
			function getInputValue(el) {
				if (el.tagName == "SELECT") {
					return el.options[el.selectedIndex].value;
				}
				else if (el.tagName == "INPUT" && (el.type=="checkbox") ) {
					return el.checked;
				}
				else if (el.tagName == "INPUT") {
					return el.value;
				}
				else {
					return null;
				}
			}
				


			/**
			* Returns the selected value from a SELECT object.
			*
			*/
			function getSelectedValue(sel) {
				return sel.options[sel.selectedIndex].value;
			}

				
			/**
			*
			*/
			function changeText(el, txt) {
				el.innerHTML = txt;
			}


			/**
			*
			*/
			function chopString(str, sz) {
				if (str.length > sz) {
					str = str.substr(0,sz);
					return str;
				}
			}							
			

			/**
			*
			*/			
			function changeImageSrc(el, src) {
				el.setAttribute("src", src);
			}

			
			
			/**
			* 
			*
			*/
			function setTextColor(el, clr) {
				el.style.color = clr;
			}

			/**
			* 
			*
			*/
			function setBackgroundColor(el, clr) {
				el.style.background = clr;
			}
			
			
			/**
			* Sets the font to 'val' for element 'el.'
			*
			*/
			function changeFont(el, val) {
				el.style.fontFamily = val;
			}


			/**
			* Makes the element passed in bolded, or unbolded.
			*
			*/
			function makeBold(el, bld) {
				var val = (eval(bld)) ? "bold" : "normal";
				el.style.fontWeight = val;
			}


			/**
			* Makes the element passed in italicized, or unitalicized.
			*
			*/
			function makeItalic(el, itl) {
				var val = (eval(itl)) ? "italic" : "normal";
				el.style.fontStyle = val;
			}
			
			/**
			*
			*/
			function hideElement(el, shim) {
				//el.style.display = 'none';
				el.style.visibility = 'hidden';
				//var shim = getObj('iframe_shim');
				if (shim != false && shim != null && shim != 'undefined') {
					if (shim != null) {
						shim.style.display = "none";
						shim.style.visibility = 'hidden';
					}
				}
			}
			
			/**
			*
			*/
			function showElement(el, shim) {
				//el.style.display = 'block';		
				el.style.visibility = 'visible';
				el.style.zIndex = 5;
				//var shim = getObj('iframe_shim');
				if (shim != false && shim != null && shim != 'undefined') {
					shim.style.width = el.offsetWidth;
					shim.style.height = el.offsetHeight;
					shim.style.top = findPosY(el); //el.style.top;
					shim.style.left = findPosX(el); //el.style.left;
					shim.style.zIndex = el.style.zIndex - 1;
					shim.style.visibility = 'visible';
					shim.style.display = "block";
				}
			}						
			
			/**
			 * 
			 */
			function toggleElementVisibility(id) {
				el = document.getElementById(id);
				if (el.style.visibility != 'hidden') {
					hideElement(el);
				} else {
					showElement(el);
				}
			}

                        /**
                         * Toggle the display property of an element between
                         * 'block' and 'none'.
                         */
                        function toggleElementDisplay(id) {
                            el = document.getElementById(id);
                            if (el.style.display != 'none') {
                                el.style.display = 'none';
                            } else {
                                el.style.display = 'block';
                            }
                        }


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}



			
			/*
			function showPopUp(popup, iFrame) {
				popup.style.display = "block";
				iFrame.style.width = popup.offsetWidth;
				iFrame.style.height = popup.offsetHeight;
				iFrame.style.top = popup.style.top;
				iFrame.style.left = popup.style.left;
				iFrame.style.zIndex = popup.style.zIndex - 1;
				iFrame.style.display = "block";
			}
			
			
			function hidePopup(popup, iFrame) {
					popup.style.display = "none";
					if (iFrame != null)
						iFrame.style.display = "none";
					}
			}
			*/



			/**
			* Copies all of the inputs from one form to another
			* as 'hidden' inputs.
			*/				
			function copyAllInputsAsHidden(fromForm, toForm) {
				
				var selects = fromForm.getElementsByTagName("SELECT");
				for (var i=0; i<selects.length; i++) {
					var el = selects[i];
					var name = el.getAttribute("name");
					var val = getInputValue(el);
					
					var newEl = document.createElement('input');
					newEl.setAttribute('type', 'hidden');
					newEl.name = name;
					newEl.value = val;
					
					toForm.appendChild(newEl);					
				}

				var inputs = fromForm.getElementsByTagName("INPUT");

				for (var i=0; i<inputs.length; i++) {
					var el = inputs[i];
					var name = el.getAttribute("name");
					var val = getInputValue(el);
					
					var newEl = document.createElement('input');
					newEl.setAttribute('type', 'hidden');
					newEl.name = name;
					newEl.value = val;
					
					toForm.appendChild(newEl);			
				}
				return true;
			}

			function setVisible(elementID, visible) {
				var ele = document.getElementById(elementID);
				if (ele != null) {
					if (visible) {
						ele.setAttribute("class", ele.getAttribute("class") + "_visible");
					} else {
						ele.setAttribute("class", ele.getAttribute("class").replace("_visible", ""));
					}
				}
			}
			
function goToEditCard(url, listID) {
	window.location = url.replace("xxx", document.getElementById(listID).value);
}
