/*
Js Validation - version 0.2 by Micky Socaci

Fields
	// select example  : {"name":'field_name'			, "type":"select"				,"message":'Select a value'}
	// email example   : {"name":'c_email'				, "type":"email"				, "message":'The Email is invalid!'}
	// input example   : {"name":'field_name'			, "type":"input"	,"min":5	,"message":'Scrie titlu'}
	// checkbox example: {"name":'field_name'			, "type":"checkbox"	, 			"message":'Scrie titlu'}
	
	* min represents the minimum value the input field value may have

usage: 
<form name="form1" id="form1" action="post.php">
	<input name="Salveaza" id="Salveaza" type="button" class="button" value="Validate Form" onclick="javascript:validateForm('form1');" />
</form>
*/

function validateForm(fields, formname)
{
	var output = '';
	var failed = 0;
	var passed = 0;
	
	for( var i=0; i< fields.length; i++ )
	{
		var thisField = fields[i];
		var fieldObject = eval("document."+formname+"."+thisField.name);
		
		if(fieldObject)
		{
			if(thisField.type == 'input')
			{
				if(thisField.min)
				{
					if(fieldObject.value)
					{
						if(fieldObject.value.length == 0 )
						{
							output+=thisField.message+"\n";
							failed++;
						}
						else if(fieldObject.value.length < thisField.min )
						{
							output+="'"+thisField.minname+"' "+VALIDATOR_FIELD_NOT_ENOUGH_CHARACTERS+" ["+thisField.min+"]\n";
							failed++;
						}
						else
						{
							passed++;
						}
					}
					else
					{
						output+="'"+thisField.minname+"' is empty! \n";
						failed++;
					}
				}
			}
			else if(thisField.type == 'email')
			{
				if( !validateEmail(fieldObject.value) )
				{
					output+=thisField.message+"\n";
					failed++;
				}
				else
				{
					passed++;
				}
			}
			else if(thisField.type == 'select')
			{
				if( fieldObject.value == 0 || fieldObject.value == 'undefined' )
				{
					output+=thisField.message+"\n";
					failed++;
				}
				else
				{
					passed++;
				}
			}
			else if(thisField.type == 'checkbox')
			{
				if( fieldObject.checked != true )
				{
					output+=thisField.message+"\n";
					failed++;
				}
				else
				{
					passed++;
				}
			}
		}
		else
		{
			output += "[ ALERT ] "+thisField.name+" field does not exit! \n";
			failed++;
		}
		
	}
	
	if(failed>0 || passed < fields.length)
	{
		alert(output);
	}
	else
	{
		eval("document."+formname+".submit();");
	}
}


function validateEmail(email) 
{
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
      return false;
   }
   else
   {
	   return true;
   }
}

function validate_buy_now(object)
{
	var obj = document.getElementById(object);
	var form = obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
	var bits = obj.value.split('.');
	if( obj.value > 0)
	{
		if(bits.length == 1)
		{
			form.submit();
		}
		else
		{
			alert(DECIMAL_ALERT_MESSAGE);
		}
	}
	else
	{
		alert(QUANTITY_ALERT_MESSAGE);
	}
}

function validate_buy_now_btn(object)
{
	var obj = document.getElementById(object);
	var form = obj.parentNode.parentNode.parentNode;
	var bits = obj.value.split('.');
	if( obj.value > 0)
	{
		if(bits.length == 1)
		{
			form.submit();
		}
		else
		{
			alert(DECIMAL_ALERT_MESSAGE);
		}
	}
	else
	{
		alert(QUANTITY_ALERT_MESSAGE);
	}
}

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;
	
}

