function validateAllFields(formElement)
{
	foundError = false;
	firstField = false;
	groupProcessed = new Array();
	//loop through all the form elements
	for(i=0;i<formElement.elements.length;i++)
	{
		if(formElement.elements[i].id != '')
		{
			validate = validateField(formElement.elements[i], formElement);
			if(!validate)
			{
				//set the first field so we can focus it
				if (!firstField)
				{
					firstField = formElement.elements[i];
				}
				foundError = true;
			}
		}
	}
	if (foundError)
	{
		//alert('You have not typed in some of the required data');
		firstField.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function validateField(element, formElement)
{
	if(element.id.indexOf('validate') != -1)
	{	
		fieldparts = element.id.split('_');
		validateFunction = 'validate' + fieldparts[(fieldparts.length - 1)].toUpperCase();
		validate = (eval(validateFunction + '(element, formElement)'));
		NodeId = fieldparts.slice(0,(fieldparts.length-2)).join("_");
		errorMessageNodeId = fieldparts.slice(0,(fieldparts.length-2)).join("_") + '_errMsg';
		var msgNode = document.getElementById(errorMessageNodeId)
		
		if(!validate)
		{
			// lets do something to tell the user that validation failed for this field
			element.parentNode.className = 'fieldCellValidate';
			if (msgNode != undefined)
			{
				msgNode.innerHTML = validateErrorMsgs[NodeId];
			}
			return false;
		} else 
		{
			// set the field back to normal
			element.parentNode.className = 'fieldCell';
			if (msgNode != undefined)
			{
				msgNode.innerHTML = '';
			}
			return true;
		}
	} else
	{
		return true;
	}
}

function validateEMPTYRADIO(radioInput, form)
{
	formElement = (eval('form.' + radioInput.name));
	var foundValue = false;
	for (var i=0; i < formElement.length; i++) 
	{
	   	if (formElement[i].checked) 
	   	{
	   		foundValue = true; 
	   	}
   	}
	return foundValue;
}

function validateEMPTY(formElement, form)
{
	value = formElement.value.replace(/^\s*|\s*$/g,"");
	if (value == '')
	{
		return false;
	} else
	{
		return true;
	}
}
function validateEMPTYSELECT(formElement,form)
{
	index = formElement.selectedIndex;
	if (formElement.options[index].value == '')
	{
		return false;	
	} else
	{
		return true;	
	}
}
function checkForOther(formElement,elementID)
{
	index = formElement.selectedIndex;
	if (formElement.options[index].value == 'Other')
	{
		enableField(elementID);	
	} else
	{
		disableField(elementID);
	}
}
function checkboxOther(formElement,elementID)
{
	if (formElement.checked)
	{
		enableField(elementID);	
	} else
	{
		disableField(elementID);
	}
}
function validateEMAIL(formElement, form)
{
			value = formElement.value.replace(/^\s*|\s*$/g,"");
			var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
			var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
			valid =  (!r1.test(value) && r2.test(value));
			return valid;
}
function enableField(elementID){

	document.getElementById(elementID).style.visibility="visible";
	document.getElementById(elementID).style.display="";
}

function disableField(elementID){
	document.getElementById(elementID).style.visibility="hidden";
	document.getElementById(elementID).style.display="none";
}


function openPictureBrowser(targetElement,formName){
    fieldName = targetElement;
    theFunc = setField;
    formToSet = formName;
    browser = window.open("{$pictureBrowserLink}","gb","height=450,width=450,scrollbars=yes,resizeable=yes"); 
}

//Opens up an assetBrowser of type assetClass. 
function openAssetBrowser(assetClass){
    var browserLink = '/assetbrowser/assetType/'+assetClass;
    assetBrowser = window.open(browserLink,"gb","height=450,width=650,scrollbars=yes,resizeable=yes");
}


function setPictureTargetElements(elementName,idName,formName){
    window.document.elementToSet = elementName;  //the hidden field that stores the id value
    window.document.idNameToSet = idName;   //the div tag id to change innerhtml image
    window.document.formToSet = formName; //form name that includes the element
}

function setTargetElement(elementName,formName){
	window.document.elementToSet = elementName; //textinput field
	window.document.formToSet = formName;   //formname that hosts the element
}

        
