/*
 * Trim String function
 */
String.prototype.trim = function() {
  return(this.replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1'));
}
/*
 * Tests if the string is an integer number.
 * If the parameter s is defined the string could be and a negative integer.
 */
String.prototype.isInt = function(s)  {
  var digits="1234567890";
  var sign="+";
  if (s != undefined || s != null) sign="-+";
 
  //is already a non-empty string
  if(digits.indexOf(this.charAt(0)) == -1 && sign.indexOf(this.charAt(0)) == -1) {
      return false;
  }

  if (this.length == 1 && sign.indexOf(this.charAt(0)) != -1)  {
     return false;
  }

  for (var i=1; i < this.length; i++)  {
       if (digits.indexOf(this.charAt(i)) == -1) {
          return false;
       }
  }
  return true;
}

function clean(elem_name)
{
	 elem_name = elem_name.replace(/\_+/g, " ")
	 return elem_name.replace(/\[\]+/g, " ")
}

/***************************************/
function IsNumber(name,number)
{
	
	if(number.length>0)
	{
		
		ret=(number.length>0 && number.trim().length>0 && number.isInt())
		if(!ret)alert('Not a number "'+clean(name)+'"');
		return ret;
	}
	
	return true;

}


function IsNotEmpty(elem_name,val)
{
	
	if(val.length==0)
	{
		
		 elem_name = elem_name.replace(/\_+/g, " ")
		 elem_name = elem_name.replace(/\[\]+/g, " ")
		 alert("Please insert "+elem_name+" !" );
		 return false;
	}
	return true;
}

function general_validate(frm,types)
{
	f=document.getElementById(frm);
		for(var j=0 ;j< f.elements.length;j++)
		{

			elemType='';
			for(i=0 ;i< types.length;i++)
			{
				var arr = types[i].split("=");
				elemName = arr[0];
				
				if(elemName==f.elements[j].name && elemName.length>0)
				{
					
					elemValue = f.elements[j].value;
					elemType = arr[1];
					ret=true;
					eval("ret="+elemType+"(elemName,elemValue);");

					if(!ret)
					{
						return false;
					}

				}
			}
		}
		return true;
}

function dosubmit(frm,arrp,arrv,types)
{
	
	
	//validation	
	if(types)
	{
		if(!general_validate(frm,types))
		return false;
	}
	
		
	str="";
	for(i=0;i<arrp.length;i++)
	{		
		addField(document.getElementById(frm),'hidden',arrp[i],arrv[i]);
		    	
	}
	
	//alert(str);
	document.getElementById(frm).submit();
	
}
function addField (form, fieldType, fieldName, fieldValue) {
  if (document.getElementById) {
    var input = document.createElement('INPUT');
      if (document.all) { // what follows should work
                          // with NN6 but doesn't in M14
        input.type = fieldType;
        input.name = fieldName;
        input.value = fieldValue;
      }
      else if (document.getElementById) { // so here is the
                                          // NN6 workaround
        input.setAttribute('type', fieldType);
        input.setAttribute('name', fieldName);
        input.setAttribute('value', fieldValue);
      }
    form.appendChild(input);
  }
}

function IsEmail(name,val)
{
	
	if(!is_email(val))
	{
		alert('Verify the email address format');
		return false;
	}
	return true;
}

function is_email(val)
{
	var at = val.indexOf("@")
	if(at == -1){
		return false
	}
	else
	{
		var at_parts = val.split("@")
		if(at_parts[0].length < 1){
			return false
		}
		else{
			point = at_parts[1].indexOf(".")
			if(point == -1) return false
			else{
				point_parts = at_parts[1].split(".")
				if((point_parts[1].length < 2) || (point_parts[1].length > 3)) return false
				else  return true
			}
		}
	}
}
function accept(str){
	acc="@_-!0123456789abcdefghijklmnoprstuvxzqywABCDEFGHIJKLMNOPRSTUVXZYQW"

	var ch
	var found = true

	if (str.length == 0)
	{
		return true
	}
	for (i = 0; i < str.length ;i++){
		ch = str.charAt(i)
		if(acc.indexOf(ch)==-1){
			found=false
		}
	}
	return found

}

function validate()
{
	f = document.frm
	isOK = true
	usr_em = f.user_email.value
	first_name=f.first_name;
	last_name=f.last_name;
			

	if (!accept(first_name))
	{
		alert("First name is not accepted")
		return false		
	}
	
	if (!accept(last_name))
	{
		alert("Last name is not accepted")
		return false		
	}

	
	if(!is_email(usr_em))
	{
		alert("Verify the email address format !")
		return false
	}
	
	return true
}

function formSubmit()
{
		if(validate())
		{
			document.frm.submit();
		}				
}



