function ValidateField(FieldObj, TypeValidation, Entity, InServer, ExtValue)
{
	var ErrorMsg;
	var html = $("#"+FieldObj.name).attr('value');
	if (html)
	{
	    Text = $(html).text();
	    if (Text)
		$("#"+FieldObj.name).attr('value', Text)
	    if (html && !Text)
		$("#"+FieldObj.name).attr('value', html);
	}
	
	if (!InServer)
	{
		switch(TypeValidation)
		{
		    case 'NotNull':
			if (FieldObj.value.trim() == "")
			{
				ErrorMsg = 'Requerido';
			}
		    break;
		}
		ShowResultValidateField(ErrorMsg, "Res"+FieldObj.name+"Div", FieldObj.name);
	}
	else
	{
		//Valido en el servidor
		UrlVal = AjaxValidateScript+"?Action=Validate&Field="+FieldObj.name+"&Value="+FieldObj.value+"&TypeValidation="+TypeValidation+"&Entity="+Entity+"&ExtValue="+ExtValue;
		$.ajax({
		  url: UrlVal,
		  async: false,
		  success: function (msg){
			  ShowResultValidateField(msg,"Res"+FieldObj.name+"Div", FieldObj.name);
			  }
		 });		
	}

	
}

function ShowResultValidateField(Res, DivName, Field)
{
	SrcImgOk = "/images/ok.png";
	SrcImgError = "/images/required.png";
	ErrorClass = 'FieldError';
	if (Res)
	{
		if( Field == "NewAccount" )
		{
			if( Res == "Movinet" )
			{
				$("#"+DivName).html("<img src=\""+SrcImgOk+"\" />");
				$("input[name='"+Field+"']").removeClass('FieldError');
				$("#MovinetPassword").show();
			}
			else
			{
				$("#"+DivName).html("<img src=\""+SrcImgError+"\" />");	
				$("input[name='"+Field+"']").addClass('FieldError');
				$("#MovinetPassword").hide();
			}
		}
		else
		{
			$("#"+DivName).html("<img src=\""+SrcImgError+"\" />");	
			$("input[name='"+Field+"']").addClass('FieldError');
		}
	}
	else
	{
		$("#"+DivName).html("<img src=\""+SrcImgOk+"\" />");
		$("input[name='"+Field+"']").removeClass('FieldError');
	}
}

function GetValidAccount(AccountObj)
{
	if (!AccountObj.value)
	{
		//Le sugiero una cuenta según el nombre y el apellido
		FirstName = document.forms['RegisterABMForm'].FirstName.value;
		LastName = document.forms['RegisterABMForm'].LastName.value;
                Email = document.forms['RegisterABMForm'].Email.value;
		if (LastName && FirstName)
		{
			UrlVal = AjaxValidateScript+'?Action=SuggestAccount&FirstName='+escape(FirstName)+'&LastName='+escape(LastName)+'&Email='+escape(Email);
			$.ajax({
			  url: UrlVal,
			  async: false,
			  success: function (msg){
					AccountObj.value=msg;
				  }
			 });		
		}
	}

}

function ValidPin(FieldObj)
{
/*
	CelPhone = document.forms['RegisterABMForm'].ModemNumber.value;


	if (!CelPhone)
	{
		ShowResultValidateField("Error","Res"+FieldObj.name+"Div", FieldObj.name);
		return;
	}
*/	
	if (FieldObj.value)
	{
		UrlVal = AjaxValidateScript+"?Field="+FieldObj.name+"&Value="+FieldObj.value+"&TypeValidation=validpin|notnull"+"&Entity=User";
		$.ajax({
		  url: UrlVal,
		  async: false,
		  success: function (msg){
			   ShowResultValidateField(msg,"Res"+FieldObj.name+"Div", FieldObj.name);
			  }
		 });
	}
	else
	{
		ShowResultValidateField("Error","Res"+FieldObj.name+"Div", FieldObj.name);
	}
}

function ValidateForm(FormName)
{
	$("#"+FormName).find("input").each(function(x,el) {
			onBlurFunc = $(el).attr('onBlur');
			if(  onBlurFunc)
			{
                            //FIXME: problema con IE
                            eval (onBlurFunc);
			}
		})
}


function ValidatePassword(Pass, CheckPass, Field, DivName)
{
	if (!CheckPass)
	{
		return;
	}

	if (Pass != CheckPass)
	{
		ShowResultValidateField('No cohinciden', DivName, Field)
	}
	else
	{
		ShowResultValidateField('', DivName, Field)		
	}
}

function SendMovinetCode()
{
	var Account = $("#NewAccount").attr("value");
	
	UrlVal = AjaxValidateScript+"?MovinetAccount="+Account+"&SendMail=1&Entity=User";
	$.ajax({
	  url: UrlVal,
	  async: false,
	  success: function (msg){
	  	if( msg == "OK" )
	  		$("#MovinetCodeRes").html('El código ha sido enviado correctamente a la cuenta: '+Account+"@movinet.com.uy" ).fadeIn("slow");
		}
	 });
	
}

function GetNormalizedAccount(FieldName)
{
	var Account = $("#"+FieldName).attr("value");

	UrlVal = AjaxValidateScript+"?AccountStr="+escape(Account)+"&Action=NormalizeAccount";
	$.ajax({
	  url: UrlVal,
	  async: false,
	  success: function (AccValue){
	  		return $("#"+FieldName).attr("value",AccValue);
		}
	 });
	
}

function ABMMovilNumber(Type)
{
        $('#DivPassword').fadeOut();
        $('#NewPassword').attr('value', null);
        $('#NewPassword2').attr('value', null);
        $('#DivChangePassword').html("+ Quiero cambiar mi clave");
        $('#DivPassword').attr('Status', 'Close');

	switch(Type)
	{
		case 'Assign':
			//Obtengo el estado de la div
			ActualStatus = $('#DivNewNumber').attr('Status');
			switch(ActualStatus)
			{
				case 'Close':
					$('#DivNewNumber').attr('Status','Open');
					$('#DivNewNumber').html('- Sustituir n&uacute;mero');
					$('#DivDelNumber').html('+ Desasignar este n&uacute;mero');
					$('#DivDelNumber').attr('Status','Close');
					Url = AccountDir+'/ajax/config.php?Action=movilassignform';
					$.ajax({
						  url: Url,
						  async: false,
						  success: function (msg){
								$("#DivABMMovil").hide();
						  		$("#DivABMMovil").html(msg).fadeIn("slow");
							}
						 });
				break;
				case 'Open':
					$("#DivABMMovil").fadeOut();
			  		$("#DivABMMovil").html(null);
					$('#DivNewNumber').attr('Status','Close');
					$('#DivNewNumber').html('+ Sustituir n&uacute;mero');
					$('#DivDelNumber').html('+ Desasignar este n&uacute;mero');
					$('#DivDelNumber').attr('Status','Close');
				break;
				
				
			}
		break;
		case 'Remove':
			//Obtengo el estado de la div
			ActualStatus = $('#DivDelNumber').attr('Status');
			switch(ActualStatus)
			{
				case 'Close':
					$('#DivDelNumber').attr('Status','Open');
					$('#DivDelNumber').html('- Desasignar este n&uacute;mero');
					$('#DivNewNumber').html('+ Sustituir n&uacute;mero');
					$('#DivNewNumber').attr('Status','Close');
					Url = AccountDir+'/ajax/config.php?Action=movilremoveform';
					$.ajax({
						  url: Url,
						  async: false,
						  success: function (msg){
								$("#DivABMMovil").hide();
						  		$("#DivABMMovil").html(msg).fadeIn("slow");
							}
						 });
				break;
				case 'Open':
                                        $("#DivABMMovil").fadeOut();
			  		$("#DivABMMovil").html(null);
					$('#DivDelNumber').attr('Status','Close');
					$('#DivDelNumber').html('+ Desasignar este n&uacute;mero');
					$('#DivNewNumber').html('+ Sustituir n&uacute;mero');
					$('#DivNewNumber').attr('Status','Close');
				break;				
			}
		break;
	}
}

function OpenChangePassword()
{
    ActualStatus = $('#DivPassword').attr('Status');
    $('#DivDelNumber').html('+ Desasignar este n&uacute;mero');
    $('#DivNewNumber').html('+ Sustituir n&uacute;mero');
    $('#DivNewNumber').attr('Status','Close');
    $('#DivDelNumber').attr('Status','Close');
    $('#DivABMMovil').fadeOut();
    switch(ActualStatus)
    {
        case 'Open':
            $('#DivPassword').attr('Status', 'Close');
            $('#DivPassword').fadeOut();
            $('#DivChangePassword').html("+ Quiero cambiar mi clave");
            $('#NewPassword').attr('value', "");
            $('#NewPassword2').attr('value', "");
        break;
        case 'Close':

            $('#DivPassword').fadeIn();
            $('#DivPassword').attr('Status', 'Open');
            $('#DivChangePassword').html("- Quiero cambiar mi clave");
        break;
    }
}

function ValPassword(FirstPass)
{
	var Pass1;
	var Pass2;
	
	$('#RegisterABMForm').find("input").each(function (){
		if (this.name == 'NewPassword')
			Pass1 = this.value;
		if (this.name == 'NewPassword2')
			Pass2 = this.value;
	});
	
	if (Pass1 || Pass2)
	{
		if (Pass1 == Pass2)
		{
			ShowResultValidateField(null,"ResNewPasswordDiv", 'NewPassword');
			ShowResultValidateField(null,"ResNewPassword2Div", 'NewPassword2');
		}
		else
		{
			ShowResultValidateField('error',"ResNewPasswordDiv", 'NewPassword');
			ShowResultValidateField('error',"ResNewPassword2Div", 'NewPassword2');
		}
	}
}

function ProcessForm(FormName)
{
    if ($('#'+FormName).attr('action'))
        URL = $('#'+FormName).attr('action');
    else
        URL = document.location;
    $.ajax({
      url: URL,
      type: "POST",
      data: $('#'+FormName).serialize(),
      cache: false,
      dataType: "json",
      /*
      onBefore: function (){
        $('#'+FormName).find('input').each(function(){
            if (this.type=='submitted')
                this.disabled = true;
        })
      },*/
      success: function (jsonObj){
            if (jsonObj.Funcs.length > 0)
            {
                count = 0;
                while (count < jsonObj.Funcs.length)
                {
                    eval(jsonObj.Funcs[count]+";");
                    count++;
                }
              }
      }
     });
    return false;
}