
// Specific validation for account registration and updates.
var FormValidation = 
{
	company:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.company.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},

	companyx:function(value,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	street:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.street.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	city:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.city.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	province:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.province.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	country:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.country.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	postal:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.postal.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	phone:function(form,errordivid,msg)
	{
		msg = msg || "Invalid Phone Format";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isInternationalPhoneNumber(form.phone.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},

	phonex:function(value,errordivid,msg)
	{
		msg = msg || "Invalid Phone Format";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isInternationalPhoneNumber(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	name:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(form.name.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},

	namex:function(value,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isEmpty(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	username:function(form,errordivid,msg)
	{
		var res=true;

		res=StringValidation.isSufficientUsername(form.username.value)

		if (res)
		{
			res=StringValidation.isContiguousUsername(form.username.value)
			if (!res)
				msg = msg || "Spaces not allowed";
		}
		else
		{
			msg = msg || StringValidation.minimumUsernameLength+" characters required";
		}
	

		var errordiv = document.getElementById(errordivid);
		if (!res)
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return res;
	},
	
	password:function(form,errordivid,msg)
	{
		msg = msg || StringValidation.minimumPasswordLength+" characters required";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isSufficientPassword(form.password.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},

	password2:function(form,errordivid,msg)
	{
		msg = msg || "Passwords must match";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isSufficientPassword(form.password.value) && form.password.value != form.password2.value)
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	email:function(form,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isEmail(form.email.value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},

	emailx:function(value,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isEmail(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;
	},
	
	number:function(value,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (!StringValidation.isPositiveInteger(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;		
	},
	
	textarea:function(value,errordivid,msg)
	{
		msg = msg || "Required";
		var errordiv = document.getElementById(errordivid);
		if (StringValidation.isWhitespace(value))
		{
			errordiv.innerHTML = msg;
			return false;
		}
		else
			errordiv.innerHTML = "";
		return true;		
	},	
	
	generic:function(testfunction,value,errordivid,msg)
	{
		var errordiv = document.getElementById(errordivid);
		if (!eval(testfunction+"(value)"))
		{
			errordiv.innerHTML = msg;
			return false;	
		} 	
		errordiv.innerHTML = "";
		return true;
	},
	
	radioCheck:function(btn) 
	{
    var cnt = -1;
    for (var i=btn.length-1; i > -1; i--) 
		{
        if (btn[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) 
			return btn[cnt].value;
    else 
			return null;
	}

};
