function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
var error = false;
function validate() {
error = false;
var fieldName = '';
	for(fieldName in fields) {
//		alert(fieldName);
		fieldType = fields[fieldName];
		if (fieldName == '' || fields[fieldName] == '' || MM_findObj(fieldName) == null)
			continue;
		else if (fields[fieldName].indexOf("skip") > -1)
			continue;
		else if (fields[fieldName].indexOf("radioques") > -1)
			validateRadio(fieldName);
		else if (fields[fieldName].indexOf("sel_ques") > -1)
			validateSelect(fieldName)
		else if (fields[fieldName].indexOf("confirm") > -1)
			validateConfirm(fieldName)
		else
			validateText(fieldName);		
	}
	if (error)
	alert("Please answer all the required questions.\n\nThey have been marked for easy identification.");
	if (!error)
		generateCustomerID();

	return(!(error));
}

function validateConfirm(fieldName){
	var what = MM_findObj(fieldName);
	var what2 = MM_findObj(fieldName + "_confirm");
	
	if (what.value == what2.value) {
		sv_hilite(fieldName ,"tablenormal");
		return(what.value);
	}
	sv_hilite(fieldName,"inputerror");
	error = true;
	return("");
}

function validateRadio(fieldName) {
	var what = MM_findObj(fieldName);
	var checked = false;
	for (ii=0;ii<what.length;ii++) {
		if (what[ii].checked == true) {
			checked = true;
			sv_hilite(fieldName ,"tablenormal");
			return(what[ii].value);
		}
	}

	sv_hilite(fieldName +"","tableerror");
	error = true;
	return("");
}

function validateSelect(fieldName) {
	var what = MM_findObj(fieldName);
	if (!(what.selectedIndex == 0 || (what.selectedIndex != 0 && what[what.selectedIndex].value == ''))) {
		sv_hilite(fieldName,"inputnormal");
		return(what[what.selectedIndex].value);
	}	

	sv_hilite(fieldName,"inputerror");
	error = true;
	return("");

} 
function validateText(fieldName) {
	var what = MM_findObj(fieldName);
	if (!(what == null || what.value == null || what.value == "")) {
		sv_hilite(fieldName,"inputnormal");
		return(what.value);
	}	

	sv_hilite(fieldName,"inputerror");
	error = true;
	return("");
}

function sv_hilite(field,myClass) {
	what = MM_findObj(field);
	if (field != null)
		sv_hiliteObject(what,myClass);
}

function sv_hiliteObject(what,myClass) {
	return;
	if (myClass == null || myClass == '')
		myClass = "inputnormal";
	if (what != null) {
		what.className = myClass;
	}
}





function generateCustomerID(){
	return;
	var customerkey = '';
	var search;
	for(fieldName in _ccQuestions) {
		if (fieldName == '' || MM_findObj(fieldName) == null)
			search = "unknown";
		else if (fields[fieldName].indexOf("radioques") > -1) {
			values = validateRadio(fieldName);
			//alert(values);
			search = "-1";
			if (values != null && values != '') {
				search = values;
			}
		}
		else if (fields[fieldName].indexOf("sel_ques") > -1) {
			values = validateSelect(fieldName);
			if (values == null || values == "")
				search = "default";
			else {
				search = values;
			}
		}
		else {
			search = validateText(fieldName);
		}
		value = findElement(_ccQuestions[fieldName], search);
			
		//if for some reason we don't get a value. this should never, ever happen, but just in case.
		if (value == null || value == "" || value == "undefined"  ) {
				value = "unknown";
		}
		if (customerkey   != '')
			value = "-" + value;

		customerkey = customerkey + value;
}

	var keyField = MM_findObj("ques_92232_ans_367238");
	keyField.value = customerkey;
}

function findElement(haystack, needle) {
	for(i=2;i<haystack.length;i=i+2){
		if (needle == haystack[i]) {
			tmp = i+1;
			return(haystack[tmp]);
		}
	}
	return (haystack[1]);
}

/*
function textCounter(field, maxlimit, countfield) {
  if (countfield != null) {
    charCount = maxlimit - field.value.length;
    if (charCount > 0) {
      countfield.value = maxlimit - field.value.length;
    } else {
      countfield.value = 0;
    }
  }
  
  if (field.value.length > maxlimit) {
    field.value = field.value.substring(0, maxlimit+1);
    return false;
  }
}
*/
