// JavaScript Document
function validateEmail(fobj) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   if (fobj)
   for (var i=0;i<fobj.elements.length;i++)
   {
	   if ((fobj.elements[i].value) && (fobj.elements[i].name || fobj.elements[i].id).toLowerCase().indexOf("email")>=0)
	   {
		   var address = fobj.elements[i].value;
		   if(reg.test(address) == false) {
			  alert('Invalid Email Address');
			  fobj.elements[i].focus();
			  return false;
		   }
	   }
   }
   return true;
}
function isValidForm(fobj)
{
	var inValid 		= 0;
	var longest			= (LongestField(fobj)); //longest field name in the form
	var valid				= true;
	var firstInvalid= null;
	var message 		= "[Invalid fields]: \n--------------\n\n";
	var submessage	= '';
	for (var i=0;i<fobj.length;i++)
	{
		if (fobj[i].type == "checkbox")
			fobj[i].value = (fobj[i].checked) ? 'y':'n';

		if (fobj[i].getAttribute("minLength"))
		{
			valid = (fobj[i].value.length >= parseInt(fobj[i].getAttribute("minLength")));
			submessage = getSpaces(longest,fobj[i].name.length)+': requires at least ' + fobj[i].getAttribute("minLength") +' chars';
		}
		else if (fobj[i].getAttribute("minValue"))
		{
			valid=(IsNumeric(fobj[i].value) && (fobj[i].value >= fobj[i].getAttribute("minValue")));
			submessage = getSpaces(longest,fobj[i].name.length)+ ': requires min value(' + fobj[i].getAttribute("minValue") +')';
		}
		else if (fobj[i].getAttribute("range") && fobj[i].getAttribute("range").split("-").length == 2)
		{
			var from = fobj[i].getAttribute("range").split("-")[0] * 1;
			var to	= fobj[i].getAttribute("range").split("-")[1] * 1;
			
			valid 	= (fobj[i].value >= from && fobj[i].value <= to);
			submessage= ' range('+fobj[i].getAttribute("range")+')';
		}

		if (!valid)
		{
			if (firstInvalid==null)
				firstInvalid=fobj[i];
			message += ((fobj[i].getAttribute("ErrMsg")) || ((fobj[i].id||fobj[i].name).replace(/_/g," ") + submessage)) + '\n';
			inValid++;
		}valid=true;submessage='';
	}
	if (inValid>0)
	{
		alert(message);
		firstInvalid.focus();
		return false;
	}
	else
		return true;
}
function getSpaces(longest,current)
{
	var r	= '';
	var n =	(longest - current);

	n			= (n<=0) ? 1:n;
	for (var i=0;i<n;i++)
		r+= "  ";
	return r;
}
/*function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;


	for (i = 0; i < sText.length && IsNumber == true; i++)
	{
		Char = sText.charAt(i);
      	if (ValidChars.indexOf(Char) == -1)
        {
        	IsNumber = false;
        }
   }
   return IsNumber;

 }*/
function LongestField(fobj)
{
	var longest = 0;
	for (var i=0;i<fobj.length;i++)
	{
		if (fobj[i].id||fobj[i].name)
		{
		var name = fobj[i].id||fobj[i].name;
		if (name.length>longest)
			longest=name.length;
		}
	}
	return longest;
}
function isValidated(fobj, not_req_items,req_items,loadstat)
{
	var valid = true;
	if (fobj)
	{
		var message = "FIELDS REQUIRED: \n";
		if (fobj.name)
			var form1 = fobj;
		else
			var form1 = document.getElementById(fobj);

		var total_items = form1.length;
		var i;
		var lastEfield = null;
		//var not_req_items = "Owner2, Title";
		//var Item;

		for (i=0;i<total_items;i++)
		{
			var Item = form1[i];
			if (Item != null)
			{
				///////////////////////set check boxes value//////////////////////////
					if (Item.type == "checkbox")
					{
						if (Item.checked)
						{
							Item.value = "y";
						}
						else
						{
							Item.value = "n";
						}

						//Item.value = Item.checked;
						//alert(Item.value + " [" + Item.name+ "]");
					}

					//////javascript's Math.round kinda funny, round 3 decimal places time value by 10k then devide by 1k

				if (Item.getAttribute("Max") && ((Math.round(Item.value*1000)/1000) > (Math.round(Item.getAttribute("Max")*1000)/1000)))
				{
					valid = false;
					lastEfield = Item;
					message += Item.name.replace("_"," ") + " - max allow=" + Item.getAttribute("Max") + "\n"
				}
				if (not_req_items && not_req_items.length > 0)
				{
				    if ((Item.name != "") && (not_req_items.indexOf(Item.name) < 0))
				    {

					    if(Item.value == "")
					    {
						    valid = false;
						    if (lastEfield == null)
						    {
							    lastEfield = Item;
						    }
						    message += Item.name.replace("_"," ") + "\n"
					    }
					    //message += Item.id + ":" + Item.value + "\n";
				    }
				}
				else if (Item.getAttribute("required") || (req_items && req_items.length > 0))
				{
				   if (Item.getAttribute("required") || ((Item.name != "") && (req_items.indexOf(Item.name) >= 0)))
				    {

					    if(Item.value == "")
					    {
						    valid = false;
						    if (lastEfield == null)
						    {
							    lastEfield = Item;
						    }
						    message += Item.name.replace("_"," ") + "\n"

						/*var req = document.getElementById((Item.id||Item.name) + 'req');
						if (!req)
						{
							req 			= document.createElement("span");
							req.id			= (Item.id||Item.name) + 'req';
							req.className	= 'urgent';
							req.innerHTML	= '*';
							Item.parentNode.insertBefore(req,Item);
						}*/
						}
					    //message += Item.id + ":" + Item.value + "\n";
				    }
				}
				else if (document.getElementById((Item.id||Item.name) + 'req'))
					document.getElementById((Item.id||Item.name) + 'req').parentNode.removeChild(document.getElementById((Item.id||Item.name) + 'req'));
			}
			//message = ":" + Item.value + "\n";
			/*if (Item.id != ""){
			alert(Item.id);
			}*/
		}
		if (valid)
		{
			/*
			//alert("valid. form now ready to submit");
			button.value = "Please wait.";
			button.disabled = "disabled";

			form1.submit();
			*/
			if (loadstat)
				loadstatus();
			return true;


		}
		else
		{
		    try{
			alert(message);
			lastEfield.focus();
			}catch (err){}
			return false;
		}
	}
	else
		return true;
}