function updateFields(frm) 
{
	//var doc = window.parent.frames['topFrame'].document;
	var doc = document;
	//var doc2 = window.parent.frames['mainFrame'].document;
	var elt;
	var eName;
	var indx;
	var val;
	var d1;
	var d2;
	var formElements = "";
	
	for (var n=0; n < frm.elements.length; n++) 
	{
		elt = frm.elements[n];
		eName = elt.name;
		d1 = doc.getElementsByName(eName);
		//d2 = doc2.getElementsByName(eName);
			
		if ( d1.item(0) ) 
		{
			if ( elt.type == 'text' ) {
				//d1.item(0).value = d2.item(0).value;
				val = elt.value;
			}
			else if ( elt.type == 'textarea' ) {
				//d1.item(0).value = d2.item(0).value;
				val = elt.value;
			}
			else if ( elt.type == 'checkbox' ) {
				//d1.item(0).checked = d2.item(0).checked;
				val = elt.checked;
			}
			else if ( elt.type == 'select-one' ) {
				//d1.item(0).selectedIndex = d2.item(0).selectedIndex;
				val = elt.selectedIndex;
			}
			else if ( elt.type == 'hidden' ) {
				//d1.item(0).checked = d2.item(0).value;
				val = elt.value;
			}
			else if ( elt.type == 'radio' ) {
				indx = getSelectedID(d1);
				val = d1.length+"."+indx+"="+elt.checked;
				//d1[indx].checked = true;
			}
			//ADD THE ELEMENT
			if ( elt.type != 'button' ) {
				//formElements += n + " - " + eName + " : " + elt.type + " : " + val + "\n";
				formElements += "$msg.=$"+eName+ " = $_POST['"+eName+"'];\n";
			}
		}  
	}
	alert("The elements in the form '" + frm.name + "' are:\n\n" + formElements);
}

function getSelectedID(group) 
{ 
  for(var k=0;k<group.length;k++) 
    if(group[k].checked) return k; 
		else return "";
}


function setErrorLabel(elmtName, msg) {
	var n = document.getElementsByTagName('label').length;
	var lbl;
	for (var i=0; i<n; i++) {
		lbl = document.getElementsByTagName('label').item(i);
		if ( lbl.getAttribute('for') == elmtName)
			lbl.innerHTML = msg;
	}
	return msg;
}


function validateEmpty(fld) {
    var error = "";
  
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "* The required field has not been filled in.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;   
}


function validateName(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "* You didn't enter a name.\n";
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow'; 
        error = "* The name is the wrong length.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow'; 
        error = "* The name contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    } 
    return error;
}


function validateCity(fld) {
    var error = "";
    var illegalChars = /[\w\s\-]/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "* You didn't enter a city name.\n";
    } else if (!illegalChars.test(trim(fld.value))) {
        fld.style.background = 'Yellow'; 
        error = "* The city name contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    } 
    return error;
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[\w\.-]+@[\w\.-]+\.\w+$/i;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "* You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "* Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "* The email address contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}


function validatePhone(fld) {
    var error="";
    var tfld = trim(fld.value);                        
    var phoneFilter = /^\d{3}?[\-]\d{3}?[\-]\d{4}|\d{3}?[\s]\d{3}?[\s]\d{4}|\d{10}$/;	
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "* You didn't enter a phone number.\n";
    } else if (!tfld.match(phoneFilter)) {              
        fld.style.background = 'Yellow';
        error = "* Please enter a valid phone number.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}




function validateNumber(fld) {
    var error="";
    var tfld = trim(fld.value);                        
    var numberFilter = /^[0-9]+$/;	
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "* You didn't enter any number.\n";
    } else if (!tfld.match(numberFilter)) {              
        fld.style.background = 'Yellow';
        error = "* Please enter a valid number.\n";
    } else if (tfld < 1) {              
        fld.style.background = 'Yellow';
        error = "* Please enter a number greater than 0.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}


function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 

