﻿var aux=0;
var pos=0;
function ValidateRequired(formObj)
{
    var idx;
	var fields = "";
	var firstEmptyField;

	for (idx = 0; idx < formObj.elements.length; idx++)
	{
	    if (formObj.elements[idx].getAttribute("required") == "true" && (formObj.elements[idx].value.replace(/(^\s*)|(\s*$)/g, "")) == "")
		//if(formObj.elements[idx].getAttribute("required") == "true" && formObj.elements[idx].value == "")
		{
			if(fields == "")
			{
				firstEmptyField = formObj.elements[idx];
			}
			else
			{
				fields += ", ";
			}
			fields += formObj.elements[idx].getAttribute("fieldName");
		}
	}
	return(fields);
}

function ValidateRequiredAlert(formObj, message)
{
	if(ValidateRequired(formObj) == "")
	{
		return(true);
	}

	alert(message + " " + ValidateRequired(formObj));
	return(false);
}

function ValidateImage(field)
{
	var re = /[.]png$/i;
    if(field.match(re))
	{
	    return(true);
	}
	else
	{
		return(false);
	}
}

function ValidateImageAlert(field, message)
{
    if(field!="")
	{
        if(ValidateImage(field))
	    {
		    return(true);
	    }
	    alert(message);
	}
	return(false);
}

function ValidateEmail(field)
{
	//var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    //var re = /^[a-z0-9_-]+(?:\.[a-z0-9_-]+)*@[a-z0-9_-]+(?:\.[a-z0-9_-]+)*\.[a-z]{2,6}$/i
    var re = /^[\w-\.]+@([\w-]+\.)+[\w-]{1,4}$/i
    if(field.value != "")
    {
        if (field.value.match(re))
	    {
		    return(true);
	    }
	    else
	    {
		return(false);
	    }
	}
	else
	{
		return(true);
	}
}

function ValidateEmailAlert(field, message)
{
	if(ValidateEmail(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateAccount(field)
{
	//var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    var re = /^[a-z0-9_-]+(?:\.[a-z0-9_-]+)*@[a-z0-9_-]+(?:\.[a-z0-9_-]+)*\.[a-z]{2,6}$/i
    if(field.value != "")
    {
        if (field.value.match(re) || ValidateNickname(field))
	    {
		    return(true);
	    }
	    else
	    {
		return(false);
	    }
	}
	else
	{
		return(true);
	}
}

function ValidateAccountAlert(field, message)
{
    if (ValidateAccount(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateNickname(field)
{
    var words = field.value.split(" ");
    var re = /^[a-zA-Z]+$/; //para verificar q el primer caracter escrito es una letra
    var re1 = /^[a-zA-Z0-9\.\_\/\Ñ\ñ]+$/;
    var letter = field.value.substring(0,1);
    if(words.length > 1)
    {
	   return(false);
	}
	else
	{
	    if (letter.match(re) && field.value.match(re1))
        {
            return (true);
        }
	}
}

function ValidatePasswordAlertAdmin(field, message)
{
    if (ValidatePasswordAdmin(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidatePasswordAdmin(field)
{
    var re = /^[a-zA-Z0-9\.\_\-\/]+$/;
    //if(field.value.substring(0,1) == '!')
    if (field.value.length < 30 && field.value.match(re) || field.value.substring(0, 1) == '!')
    {
	   return(true);
    }
	return (false);
}

function ValidatePasswordAlert(field, message)
{
    if (ValidatePassword(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidatePassword(field)
{
    var re = /^[a-zA-Z0-9\.\_\-\/]+$/;
    if (field.value.length < 30 && field.value.match(re))
    {
	   return(true);
    }
	return (false);
}

function ValidateNicknameAlert(field, message)
{
	if(ValidateNickname(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateEqual(field,field1)
{
    if(field.value == field1.value)
    {
        return(true);
    }
    else
    {
        return(false);
    }
}
function ValidateEqualAlert(field, field1, message)
{
    if(ValidateEqual(field, field1))
    {
        return(true);
    }
    alert(message);
    field.focus();
    field.select();
    return(false);
}

function ValidateEqualsCategories(field)
{
    if (field.length != 0 || field.length != undefined)
    {
        for (var idx = 0; idx < field.length; idx++)
        {
            for (var idx1 = 0; idx1 < field.length; idx1++)
            {
                if (field[idx1].value.toLowerCase() == field[idx].value.toLowerCase())
                {
                    return (false);
                }
            }
        }
    }

    return(true);
}

function ValidateEqualsCategoriesAlert(field,message)
{
    if (ValidateEqualsCategories(field))
    {
        return(true);
    }
    alert(message);
    field[0].Hidefocus = true;
    field[0].select();

    return(false);
}

function ValidateCategories(field,field1)
{
    if (field.length == undefined && field1.length == undefined)
    {
        if (field.value.toLowerCase() == field1.value.toLowerCase()) {
            return (false);
        }
    }
    else {
        if (field.length != 0 || field.length != undefined) {
            if (field.length != 0 && field1.length != undefined) {
                for (var i = 0; i < field.length; i++) {
                    for (pos = 0; pos < field1.length; pos++) {
                        if (field[i].value.toLowerCase() == field1[pos].value.toLowerCase()) {
                            return (false);
                        }
                    }
                }
            }
            if (field.length != 0 && field1.length == undefined) {
                for (var i = 0; i < field.length; i++) {
                    if (field[i].value.toLowerCase() == field1.value.toLowerCase()) {
                        return (false);
                    }
                }
            }
        }
    }

    return(true);
}
function ValidateCategoriesAlert(field, field1, message)
{
    if(ValidateCategories(field, field1))
    {
        return(true);
    }
    alert(message);
    if(field.length != 0 && field1.length != undefined)
    {
        field1[pos].Hidefocus=true;
        field1[pos].select();
    }
    if(field.length != 0 && field1.length == undefined)
    {
        field1.focus();
        field1.select();
    }

    return(false);
}

function ValidateCategories1(field, field1) {
    if (field.length == undefined && field1.length == undefined) {
        if (field.value.toLowerCase() == field1.value.toLowerCase()) {
            return (false);
        }
    }
    else {
        if (field.length != 0 || field.length != undefined) {
            if (field.length != 0 && field1.length != undefined) {
                for (var i = 0; i < field.length; i++) {
                    for (pos = 0; pos < field1.length; pos++) {
                        if (field[i].toLowerCase() == field1[pos].toLowerCase()) {
                            return (false);
                        }
                    }
                }
            }
            if (field.length != 0 && field1.length == undefined) {
                for (var i = 0; i < field.length; i++) {
                    if (field[i].toLowerCase() == field1.toLowerCase()) {
                        return (false);
                    }
                }
            }
        }
    }

    return (true);
}
function ValidateCategoriesAlert1(field, field1, message) {
    if (ValidateCategories1(field, field1)) {
        return (true);
    }
    alert(message);
    if (field.length != 0 && field1.length != undefined) {
        field1[pos].Hidefocus = true;
        field1[pos].select();
    }
    if (field.length != 0 && field1.length == undefined) {
        field1.focus();
        field1.select();
    }

    return (false);
}

function ValidateEmpty(field,field1)
{

    if(field.value != "" && field1.value != "" || field.value == "" && field1.value != "" || field.value == "" && field1.value == "")
    {
        return(true);
    }
    else
    {
        return(false);
    }
}
function ValidateIngredients(field, field1, message)
{
    if(ValidateEmpty(field, field1))
    {
        return(true);
    }
    alert(message);
    field.focus();
    field.select();
    return(false);
}

function ValidateRequiredFieldsEmail(field1,field2,field3,field4)
{
    if((field1.value =="") && (field2.value =="") && (field3.value =="") && (field4.value ==""))
    {
        return false;
    }
    return true;
}

function ValidateRequiredFieldsEmailAlert(field1,field2,field3,field4, message)
{
    if(ValidateRequiredFieldsEmail(field1,field2,field3,field4))
    {
        return(true);
    }
    alert(message);
    field1.focus();
    field1.select();
    return(false);
}

function ValidateEqualEmail(field1,field2,field3,field4)
{
    var band = false;

    if(field1.value !="")
    {
        if((field1.value != field2.value) && (field1.value != field3.value) && (field1.value != field4.value))
        {
            band = true;
        }
        else
        {
            return false;
        }
    }
    if(field2.value !="")
    {
        if((field2.value != field1.value) && (field2.value != field3.value) && (field2.value != field4.value))
       {
            band = true;
       }
       else
        {
            return false;
        }
    }
    if(field3.value !="")
    {
        if((field3.value != field1.value) && (field3.value != field2.value) && (field3.value != field4.value))
       {
            band = true;
       }
       else
        {
            return false;
        }
    }
    if(field4.value !="")
    {
        if((field4.value != field1.value) && (field4.value != field2.value) && (field4.value != field3.value))
       {
            band = true;
       }
       else
        {
            return false;
        }
    }
    return band;
}
function ValidateEqualEmailAlert(field1,field2,field3,field4, message)
{
    if(ValidateEqualEmail(field1,field2,field3,field4))
    {
        return(true);
    }
    alert(message);
    field1.focus();
    field1.select();
    return(false);
}

function ValidateYears(field)
{
    var re =  /^[0-9]+$/;
    if ((field.value.length == 4) && (field.value >= 1000) && (field.value <= 3000) && (field.value.match(re)))
    {
        return true;
    }
    if(field.value == "")
    {
        return true;
    }
    else
    {
        return false;
    }
}

function ValidateYearsAlert(field, message)
{
    if(ValidateYears(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateMonth(field)
{
    var re =  /^[0-9]+$/;
    if ((field.value >= 1) && (field.value <= 12) && (field.value.match(re)) || (field.value == ""))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function ValidateMonthAlert(field, message)
{
    if(ValidateMonth(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateDay(field)
{
    var re =  /^[0-9]+$/;
    if ((field.value >= 1) && (field.value <= 31) && (field.value.match(re)) || (field.value == ""))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function ValidateDayAlert(field, message)
{
    if(ValidateDay(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateDateFormat(field)
{
    var date;
    var day;
    var month;
    var year;
    var firstSlash;
    var lastSlash;

	date = field.value;
	firstSlash = date.indexOf("/");
	lastSlash = date.lastIndexOf("/");
	day = date.substring(lastSlash + 1, date.length);
	month = date.substring(firstSlash + 1, lastSlash);
	year = date.substring(0, firstSlash);

	if(isNaN(year) || isNaN(month) || isNaN(day))
	{
		return(false);
	}

	year = parseFloat(year);

	if(year < 500 || year > 3000)
	{
        return(false);
	}

	month = parseInt(month,10);

	if(month < 1 || month > 12)
	{
		return(false);
	}

	day = parseInt(day,10);

	if(day < 1 || day > 31)
	{
		return(false);
	}

	return(true);
}

function ValidateDateFormatAlert(field, message)
{
	if(ValidateDateFormat(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateIsNumber(field)
{
	var re = /^[0-9]+$/;
    if(field.value.match(re) || field.value == "")
	{
	    return(true);
	}
	else
	{
		return(false);
	}
}

function ValidateIsNumberAlert(field, message)
{
	if(ValidateIsNumber(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateIsSmallInt(field)
{
	var re = /^[0-9]+$/;
    if ((field.value >= 0) && (field.value <= 32767) && (field.value.match(re)) || (field.value == ""))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function ValidateIsSmallIntAlert(field, message)
{
	if(ValidateIsSmallInt(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function Encode(ValStr)
{
    var NewValStr ;
    NewValStr = ValStr ;
    if(NewValStr == "")
    {
        return("") ;
    }
    NewValStr = NewValStr.replace(/\|/g, '\n') ;
    return(NewValStr) ;
}

function makehtml(text) {
    var textnew = text.replace(/\&/g, "&amp;");
    textnew = textnew.replace(/\</g, "&lt;");
    textnew = textnew.replace(/\>/g, "&gt;");
    textnew = textnew.replace(/\r\n/, "<br>");
    textnew = textnew.replace(/\n/, "<br>");
    textnew = textnew.replace(/\r/, "<br>");
    return (textnew);
}

