
function CF(F,Name,f,fMessage,Empty)
{
    if(!F) return;
    if(F.length > 0)
    {
        var str= "";
        for (var i=0;i<F.length; i++)
        {
        
        }
    }
    if(!Empty)
    {
		if((F.value.length==0 || F.value==""))
		{
			if(document.getElementById("v_"+F.name) != null)
			{
				with(document.getElementById("v_"+F.name))
				{
					className = "V_Error";
					innerHTML = Name+" cannot be empty.";
				}
			}
			return "<li>"+Name+" cannot be empty.</li>";
		}
		else
		{
			if(document.getElementById("v_"+F.name)) document.getElementById("v_"+F.name).innerHTML = "&nbsp;";
		}
	}
	if(!f)
	    return "";
	if(!f(F.value))
	{
	    if(document.getElementById("v_"+F.name) != null)
	    {
	        with(document.getElementById("v_"+F.name))
	        {
	            className = "V_Error";
	            innerHTML = fMessage;
	        }
	    }
	    return "<li>"+fMessage;
	}
	return "";
}
function ValEmail(str)
{
	var pattern =  /^[a-z]([\.\-\_]{0,}([a-z_0-9]|[a-z_0-9]\.[a-z_0-9])*)+@([a-z0-9]|[a-z0-9][\.\-][a-z0-9])+\.[a-z]{2,}$/i;
	return pattern.test(str);
}
function ValNoNumbers(str)
{
    var pat = /\d/;
    return !pat.test(str);
}
function Mendatory(str)
{
	return str&&str.length>0;
}
function Positive(str,mendatory)
{
	if((str.Trim()=="") && !mendatory)
		return true;
	return ValMoney(str)&&parseFloat(str)>0;
}
function ValNumbers(str,mendatory)
{
	var pat = mendatory?/^\d+$/:/^\d*$/;
	return pat.test(str);
}
function ValMoney(str,mendatory)
{
	str = str.replace(/,/g,"");
	var pat = mendatory?/^\d+(.\d*){0,1}$/:/^\d*(.\d*){0,1}$/;
	return pat.test(str);
}
function ValUsZip(str, Mendatory)
{
	if(!Mendatory && !str)
		return true;
    var pat = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
    return pat.test(str);
}
function ValSocial (str)
{
	if(str=="") return true;
	var pat = /(^\d{3}-\d{2}-\d{4}$)|(^\d{9}$)/;
	return pat.test(str);
}
function ValDate(str,mendatory)
{
	if(!mendatory && str.length == 0)
		return true;
    var pat = /^\d{1,2}(\/|-)\d{1,2}(\/|-)\d{2,4}$/;
    if(pat.test(str))
    {
        var sep = "-";
        var i = str.indexOf("/");
        if(i>0)
            sep = "/";
        var ar = str.split(sep);
        if(ar.length != 3)
            return false;
        if(ar[0]>12 && ar[1]>12)
            return false;
        if(ar[2].length == 3 || ar[2].length>4)
            return false;
        return true;
    }
    return false;
}
function ValUsPhone(str)
{
    var pat = /^\d{10}$/;
    if(pat.test(str))
        return true;
    pat = /^\d{3}-\d{3}-\d{4}$/;
    if(pat.test(str))
        return true;
    pat = /^\(\d{3}\)\d{3}-\d{4}$/;
    return  pat.test(str);
}
function ValidateImage (str)
{
	var pat = /\.((jpg)|(jpeg)|(bmp)|(gif)|(png))$/i;
	return pat.test(str);
}
function CheckForm(f,fields,ShowBox)
{
	var e="";

    for(var i=0; i <fields.length; i++)
    {
		if(fields[i][0] == "__ValidateCheckboxes")
		{
			e += ValCheckboxList(f,fields[i][1],fields[i][2]);
			continue;
		}
        if(f[fields[i][0]])
        {
            if(fields[i].length >= 4)
                e += CF(f[fields[i][0]],fields[i][1],fields[i][2],fields[i][3],(fields[i].length>4?fields[i][4]:false));
            else
                e += CF(f[fields[i][0]],fields[i][1]);
        }
    }

	if(e=="")
		return true;
		
	
	if(ShowBox)
	{
	    document.getElementById("DivError").innerHTML = "<a name=Error></a>" + e +"<br>";
	    document.getElementById("DivError").style.display = "block";
	}
	//location.href = location.href.replace("#Error","")+"#Error";
	return false;
}
function ValCV(str)
{
    var pat = /.((txt)|(pdf)|(doc)|(htm)|(html))$/i;
    return pat.test(str);
}
function ValCheckboxList(f,list,m)
{
	for(var i=0;i<list.length;i++)
		if(f[list[i]])
			if(f[list[i]].checked)
				return "";
	var obj  = document.getElementById("v_"+list[0]);
	if(obj!=null)
	{
		obj.className = "v_Error";
		obj.innerHTML = m;
	}
	return m;
}
function ValCreditCard(str)
{
	if(!ValNumbers(str))
		return false;
	var t1 = [], t2 =[];
	var ar = str.split("");
	var bool = true;
	while(ar.length>0)
	{
		if(bool)
			t1.push(ar.pop());
		else
			t2.push(parseInt(ar.pop())*2);
		bool = !bool;
	}
	var res = (t1.join("")+t2.join("")).split("");
	var r = 0;
	while(res.length>0)
	{
		r += parseInt(res.shift());
	}
	return (r%10 == 0);
}
function ValUser(str)
{
	return (str.length>=8);
}
String.prototype.TrimLeft=function()
{
	return this.replace(/^(\s|\xA0|&nbsp;)*/,"");
};
String.prototype.TrimRight=function()
{
	return this.replace(/(\s|\xA0|&nbsp;)*$/,"");
};
String.prototype.Trim=function()
{
	return this.TrimLeft().TrimRight();
};