// A utility function that returns true if a string contains only 
// whitespace characters.
function isblank(s)
{
    for(var i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
    }
    return true;
}

// This is the function that performs form verification. It will be invoked
// from the onSubmit() event handler. The handler should return whatever
// value this function returns.
function verify_form(f)
{
    var msg;
    var empty_fields = "";
    var errors = "";

    // Loop through the elements of the form, looking for all 
    // text and textarea elements that don't have an "optional" property
    // defined. Then, check for fields that are empty and make a list of them.
    // Also, if any of these elements have a "min" or a "max" property defined,
    // then verify that they are numbers and that they are in the right range.
    // Put together error messages for fields that are wrong.
    for(var i = 0; i < f.length; i++)
	{
        var e = f.elements[i];
        if (((e.type == "text") || (e.type == "textarea") || (e.type == "hidden")) && e.required)
		{
            // first check if the field is empty
            if ((e.value == null) || (e.value == "") || isblank(e.value))
			{
                empty_fields += "\n          " + e.alias;
                continue;
            }

            // Now check for fields that are supposed to be numeric.
            if (e.numeric || (e.min != null) || (e.max != null))
			{ 
                var v = parseFloat(e.value);
                if (isNaN(v) || 
                    ((e.min != null) && (v < e.min)) || 
                    ((e.max != null) && (v > e.max))) {
                    errors += "- The field " + e.name + " must be a number";
                    if (e.min != null) 
                        errors += " that is greater than " + e.min;
                    if (e.max != null && e.min != null) 
                        errors += " and less than " + e.max;
                    else if (e.max != null)
                        errors += " that is less than " + e.max;
//                    errors += ".\n";
                }
            }
        }
		//check boxes
//		if (e.type == 'checkbox' && e.id != '' && e.required)
//		{
//			if (!e.checked)
//			{
//				empty_fields += "\n          " + e.alias;
//              continue;
//			}
//		}
		//radio buttons
//		var radios = document.getElementsByTagName('input');
//		var radio_error_flag = 0;
		
//		for (var i = 0; i < radios.length; i++)
//		{
//			var r = radios[i];
//			if (r.type == 'radio')
//			{
//				alert(r.id);
//				alert(e.name);
//			}
//			if (r.type == 'radio' && r.id != '' && (r.id == e.id && e.required))
//			{
//				if (!r.checked)
//				{
//					radio_error_flag = 1;
//				}
//			}
//		}
//		if (r && radio_error_flag == 1)
//		{
//			empty_fields += "\n         " + e.alias;
//		}
		
		//select boxes
		if (e.type == 'select-one' && e.id != '' && e.required)
		{
			var myObject = eval('document.' + f.name + '.' + e.id + '[document.' + f.name + '.' + e.id + '.selectedIndex]');
			if (myObject.value == 'select' && e.alias)
			{
				empty_fields += "\n          " + e.alias;
			}
		}
    }


    // Now, if there were any errors, display the messages, and
    // return false to prevent the form from being submitted. 
    // Otherwise return true.
//    if (!empty_fields && !errors) 
//    {
//    	f.submit();
//   	return;
//    }
    if (empty_fields) {
	    msg  = "______________________________________________________\n\n"
	    msg += "The form was not submitted because of the following error(s).\n";
	    msg += "Please correct these error(s) and re-submit.\n";
	    msg += "______________________________________________________\n\n"
	
        msg += "- The following required field(s) are empty:" 
                + empty_fields + "\n";
        if (errors) msg += "\n";

	    msg += errors;
    }
    if (!empty_fields && !errors) 
    {
	    msg = '';
    }
    return msg;
    
		//USAGE         
		//<FORM name="form1">
		//         
		//First name: <INPUT TYPE=text NAME="firstname">
		//Last name: <INPUT TYPE=text NAME="lastname"><BR>
		//Address:<BR><TEXTAREA NAME="address" ROWS=4 COLS=40></TEXTAREA><BR>
		//Zip Code: <INPUT TYPE=text NAME="zip"><BR>
		//Phone Number: <INPUT TYPE=text NAME="phonenumber"><BR>
		//<INPUT TYPE=button onclick="form1.firstname.required = true;form1.firstname.alias='First Name';
		//    form1.phonenumber.required = true;form1.phonenumber.alias='Required';
		//    form1.zip.min = 0;
		//    form1.zip.max = 99999;
		//    verify(form1);">
		//</FORM>       
    
}
function verify(f)
{
    var msg;
    var empty_fields = "";
    var errors = "";

    // Loop through the elements of the form, looking for all 
    // text and textarea elements that don't have an "optional" property
    // defined. Then, check for fields that are empty and make a list of them.
    // Also, if any of these elements have a "min" or a "max" property defined,
    // then verify that they are numbers and that they are in the right range.
    // Put together error messages for fields that are wrong.
    for(var i = 0; i < f.length; i++)
	{
        var e = f.elements[i];
        if (((e.type == "text") || (e.type == "textarea") || (e.type == "hidden")) && e.required)
		{
            // first check if the field is empty
            if ((e.value == null) || (e.value == "") || isblank(e.value))
			{
                empty_fields += "\n          " + e.alias;
                continue;
            }

            // Now check for fields that are supposed to be numeric.
            if (e.numeric || (e.min != null) || (e.max != null))
			{ 
                var v = parseFloat(e.value);
                if (isNaN(v) || 
                    ((e.min != null) && (v < e.min)) || 
                    ((e.max != null) && (v > e.max))) {
                    errors += "- The field " + e.alias + " must be a number";
                    if (e.min != null) 
                        errors += " that is greater than " + e.min;
                    if (e.max != null && e.min != null) 
                        errors += " and less than or equal to " + e.max;
                    else if (e.max != null)
                        errors += " that is less than or equal to " + e.max;
//                    errors += ".\n";
                }
            }
        }
		//check boxes
		if (e.type == 'checkbox' && e.id != '' && e.required)
		{
			if (!e.checked)
			{
				empty_fields += "\n          " + e.alias;
        		continue;
			}
		}
		//radio buttons
//		var radios = document.getElementsByTagName('input');
//		var radio_error_flag = 0;
//		for(var i = 0; i < radios.length; i++)
//		{
//			var r = radios[i];
//			if (r.type == 'radio')
//			{
//				alert(r.id);
//				alert(e.name);
//			}
//			if (r.type == 'radio' && r.id != '' && (r.id == e.id && e.required))
//			{
//				if (!r.checked)
//				{
//					radio_error_flag = 1;
//				}
//			}
//		}
//		if (r && radio_error_flag == 1)
//		{
//			empty_fields += "\n         " + e.alias;
//		}
		
		//select boxes
		if (e.type == 'select-one' && e.id != '' && e.required)
		{
			var myObject = eval('document.' + f.name + '.' + e.id + '[document.' + f.name + '.' + e.id + '.selectedIndex]');
			if (myObject.value == 'select' && e.alias)
			{
				empty_fields += "\n          " + e.alias;
			}
		}
    }


    // Now, if there were any errors, display the messages, and
    // return false to prevent the form from being submitted. 
    // Otherwise return true.
    if (!empty_fields && !errors) 
    {
    	f.submit();
    	return;
    }
    msg  = "______________________________________________________\n\n"
    msg += "The form was not submitted because of the following error(s).\n";
    msg += "Please correct these error(s) and re-submit.\n";
    msg += "______________________________________________________\n\n"

    if (empty_fields) {
        msg += "- The following required field(s) are empty:" 
                + empty_fields + "\n";
        if (errors) msg += "\n";
    }
    msg += errors;
    alert(msg);
    return;
    
		//USAGE         
		//<FORM name="form1">
		//         
		//First name: <INPUT TYPE=text NAME="firstname">
		//Last name: <INPUT TYPE=text NAME="lastname"><BR>
		//Address:<BR><TEXTAREA NAME="address" ROWS=4 COLS=40></TEXTAREA><BR>
		//Zip Code: <INPUT TYPE=text NAME="zip"><BR>
		//Phone Number: <INPUT TYPE=text NAME="phonenumber"><BR>
		//<INPUT TYPE=button onclick="form1.firstname.required = true;form1.firstname.alias='First Name';
		//    form1.phonenumber.required = true;form1.phonenumber.alias='Required';
		//    form1.zip.min = 0;
		//    form1.zip.max = 99999;
		//    verify(form1);">
		//</FORM>       
    
}
function clearMe(){
                document.searchform.searchdata.value = '';
 }

function submitSearch()
{
    if (document.searchform.searchdata.value.length > 0){
    //searchdatavar searchFilter = document.searchform.searchfilter[document.searchform.searchfilter.selectedIndex].value;
    var searchData = document.searchform.searchdata.value;
    //searchformwindow.open('/search.php?searchdata=' + searchData + '&filter=' + searchFilter + '&site_type=','popup','height=400,width=442,resizable=yes,status=no,menubar=no,toolbar=no,scrollbars=yes');
    window.open('http://' + document.location.host + '/pages/search/' + searchData ,'popup','height=400,width=530,resizable=yes,status=no,menubar=no,toolbar=no,scrollbars=yes');
    }
}
                                                                                            
