/********************************************
Page Name: validate.js    
Program Name: include file                    
Segment Purpose: Contains the functions needed to 
  validate data entered into web forms wtih user friendly
  feedback.  Shouldn't be relied on for all validation.  Back up with  
  validation by php as well.
Programmer: Jason Paul
Date Designed: 6/16/05
Date Modified: 8/2/05
***********************************************/

function check_if_empty_wa(entered, message)
{
	if (entered==null || entered=="")
	{
		alert(message); return false;
	}
	else {return true;}
}

function check_if_all_number(entered, message) //Call by check_if_all_number(new Array(var1, var2...), "message")
{
	var flag = false;

        for (count = 0; count < entered.length; count += 1)
        {
                if (isNaN(entered[count]))
                {
			flag = false;
			alert(message);
			return false;
                } else {flag = true;} 
        }
	if (flag == true) {return true;}
}

function limit_check(limit, entered, message) //Check to see if a number of items exceeds a set limit.  Call by limit_check(new Array(var1,var2...), "message", limit)
{
	var ttl = 0;

	for (count = 0; count < entered.length; count += 1)
	{
		if (isNaN(entered[count]))
		{
			alert ("A number field is not filled with a number.");
			return false;
		}
		else
		{
			ttl = ttl + parseInt(entered[count]);
		}
	}
	if(ttl > limit)
	{
		alert(message);
		return false;
	}
	else {return true;}
}

function checkemp_noal(entered2)
{
	if (entered2==null || entered2=="")
	{
		return false; 
	} else {return true;}
}

function check_if_all_empty(entered, message)  //Call by check_if_all_empty(new Array(var1, var2...), "message")
{
	
	var flag = false;
	var flag2 = false;

	for (count = 0; count < entered.length; count += 1)
	{
		if (checkemp_noal(entered[count]) == false)
		{
			flag = false;
		} else {flag = true;}
		if (flag == true)
		{
			flag2 = true;
		}
		
	}
	if(flag2 == false) {alert(message);}
	return flag2;
}

function check_if_email(entered, message) //Call by check_if_email(new Array(var1, var2...), "message")
{
	var flag = false;

	for (count = 0; count < entered.length; count += 1)
	{
		at = entered[count].indexOf("@");
		dot = entered[count].lastIndexOf(".");
		totall = entered[count].length-1;
		if (checkemp_noal(entered[count]) == true)
		{
			if (at < 1 || dot - at < 2 || totall - dot > 3 || totall - dot < 2)
			{
				flag = false;
				alert(message);
				return false;
			} else {flag = true;}
		} else {flag = true;}
	}
	if(flag == true)
	{
         	return true;
	}
}

function check_if_any_empty(entered, message)  //Call by check_if_any_empty(new Array(var1, var2...), "message")
{
	var flag = false;

        for (count = 0; count < entered.length; count += 1)
        {
                if (checkemp_noal(entered[count]) == false)
                {
                        alert(message);
			return false;
                } else {flag = true;} 
        }
	if (flag == true) {return true;}
}

function check_radio_empty(entered, message) // Call by check_radio_empty(new Array(doc.form.radio1, doc.form.radio2...), "message")
{
	var flag = false;
	var flag2 = false;
	var flag2 = false;

	for (ocount = 0; ocount < entered.length; ocount += 1)
	{
		for (count = 0; count < entered[ocount].length; count += 1)
		{//alert (entered[ocount][count].checked);
			if(entered[ocount][count].checked == false)
			{
				flag = false;
			} else {flag = true;}
			if (flag == true){flag2 = true;}
		}
		if (flag2 == false)
		{
			alert(message);
			return flag2;
		}
		 else 
		{
			flag3 = true; 
			flag2 = false;
		}
	}
	if (flag3 == false) {alert(message); return false;}
	else {return true;}
}

function check_if_all_ckbx(entered, message)  //See if all are empty.  Call by check_if_all_ckbx(new Array(ckbx_name1, ckbx_name2...), "message")
{

        var flag = false;
        var flag2 = false;

        for (count = 0; count < entered.length; count += 1)
        {
                if (entered[count].checked == false)
                {
                        flag = false;
                } else {flag = true;}
                if (flag == true)
                {
                        flag2 = true;
                }

        }
        if(flag2 == false) {alert(message);}
        return flag2;
}

function depend_on_ckbx(ckbx_entered, value_entered, message)  //enforce value entry if a checkbox is checked. Can check multiple text values against a single checkbox.  All those values must have an entry. 
 //call by depend_on_chbx(chbx1, new Array(val1, val2...), "message")
{
	for (count = 0; count < value_entered.length; count += 1)
	{
		if (ckbx_entered.checked == true && checkemp_noal(value_entered[count]) == false)
		{
			alert(message);
			return false;
		}
	}
	return true;
}

function depend_on_rvalue(ch_element_radio, r_number, test_text, message)  //enforce value entry if a radio button is checked. Can check multiple text values against a single button.  All those values must have an entry.
 //call by depend_on_radio(doc.form.radio, 1{or what ever array value of r button wanted}, new Array(val1, val2...), "message")
{
	var flag = false;

        for (count = 0; count < test_text.length; count += 1)
        {
                if (ch_element_radio[r_number].checked == true && checkemp_noal(test_text[count]) == true)
                {
                        flag = true;
                }
		else if (ch_element_radio[r_number].checked == false)
		{
			flag = true;
		}
        }
	if (flag == false)
        {
		alert(message);
        	return false;
        }
        return flag;
}

function getElements_radio_check(form_name, form_fieldname, message) // call by getElements_radio_check(document.formname, 'radioname', 'mess')  Will get all the elements derived from a particular radio button and check to make sure that they are selected. Used for forms that are created dynamically and for whom the total number of elements can vary.
{
	var srchlength = form_fieldname.length; 
	var elmntlength = form_name.elements.length; 
	var elmnt_arr = new Array(); 
	var found = 0;
	var elmntname;
	var flag = false;
	var flag2 = false;
	var flag3 = false;

	for (count = 0; count < elmntlength; count += 1)
	{
		elmntname = form_name.elements[count].name; //alert(elmntname.substring(0,srchlength)+", "+count);
		if (elmntname.substring(0,srchlength) == form_fieldname)
		{
			if(elmnt_arr[found - 1] != form_name.elements[count].name)
			{
				elmnt_arr[found] = form_name.elements[count].name; //alert(form_name.elements[count].checked);
				found += 1;
			}
		}
	}
	if (elmnt_arr.length > 0)
	{
		for (count = 0; count < elmnt_arr.length; count += 1)
		{
			for (icount = 0; icount < elmntlength; icount += 1)
			{
                        	if(form_name.elements[icount].name == elmnt_arr[count])
				{ 
					if(form_name.elements[icount].checked == false)
                        		{
                                		flag = false;
                        		} else {flag = true;}
                        		if (flag == true){flag2 = true;}
                		} 
			}
              		if (flag2 == false)
                	{ 
                        	alert(message);
                        	return false;
                	}
                	if (flag2 == true)
                	{ 
                        	flag3 = true;
                        	flag2 = false;
				flag = false;
                	}
		}
		if (flag3 == false){alert(message); return false;} else {return true}
	} else {return true;}
}

function getElements_text_emptycheck(form_name, form_fieldname, message)
{
	var srchlength = form_fieldname.length;
        var elmntlength = form_name.elements.length;
	var elmnt_arr = new Array();
	var found = 0;
	var elmntname;
	var flag = false;

	for (count = 0; count < elmntlength; count += 1)
        {
                elmntname = form_name.elements[count].name; 
                if (elmntname.substring(0,srchlength) == form_fieldname && !isNaN(elmntname.substring(srchlength, elmntname.length)))
                {  //alert(elmntname.substring(0,srchlength)+", "+ elmntname.substring(srchlength, elmntname.length));  
                        if(elmnt_arr[found - 1] != form_name.elements[count].name)
                        {
                                elmnt_arr[found] = form_name.elements[count].name; //alert(elmnt_arr[found]);
                                found += 1;
                        }
                }
        }
	if (elmnt_arr.length > 0)
	{
		for (count = 0; count < elmnt_arr.length; count += 1)
		{
			for (icount = 0; icount < elmntlength; icount += 1)
			{
				if (form_name.elements[icount].name == elmnt_arr[count])
				{ 
					if(form_name.elements[icount].value == null || form_name.elements[icount].value == "")
					{
						alert(message);
						return false;
					} else {flag = true;}
				}
			}
		}
		if (flag == true) {return true;}
	} else {return true;}
}

function window_resize(h, w)
{
        window.resizeTo(w,h);
}

function chck_select_checked(field_name, field_value,message)
{
        var flag = false;
        var x=document.getElementById(field_name);

        if(x.selectedIndex == field_value)
        {
                alert(message);
                return false;
        } else {flag = true;}

        if(flag == true){return true;}
}
