/*
'********************************************************************************************************
'*  Developed by Yanina Donatini - BIAR - Buenos Aires, Argentina					*
'********************************************************************************************************

'********************************************************************************************************
'*  Please do not Modificar the code. For application enhancements contact your technical support.	*
'********************************************************************************************************
*/

//================================
// Seteo el formato de fecha
//================================
format = 103
//================================
// FIN - Seteo el formato de fecha
//================================


//---------------------VALIDACION DE TIPOS DATOS DE LAS PROPIEDADES -------------------->
function validateRoomDataType(idProp, prValue, npos){	
	var x = 0;
	if (prValue=='aPropertyValue')
		objx = document.form.aIdProperty.value
	else
		objx = document.form.newIdProperty(npos).value
	while (x < RoomProp.length-1) 
	{
	   if (RoomProp[x][0] == objx)
	      {
	      break;
	      }
	   x++;
	}
	if (prValue=='aPropertyValue')
	{	if (RoomProp[x][1] == 1)
			return(validateText(document.form.aPropertyValue));
		else
		{	if (RoomProp[x][1] == 2)
				return(validateInt(document.form.aPropertyValue));
			else
				return(false);
		}
	}else{
		if(isCollection('newPropertyValue'))
		{	if (RoomProp[x][1] == 1)
				return(validateText(document.form.newPropertyValue(npos)));
			else
			{	if (RoomProp[x][1] == 2)
					return(validateInt(document.form.newPropertyValue(npos)));
				else
					return(false);
			}
		}else{
			if (RoomProp[x][1] == 1)
				return(validateText(document.form.newPropertyValue));
			else
			{	if (RoomProp[x][1] == 2)
					return(validateInt(document.form.newPropertyValue));
				else
					return(false);
			}
		}
	}
}


//-------------------------------------------------------------------------->
//---------------------VALIDA Que un campo se del tipo dd/mm (sirve para cumpleaños)--------------------------->

function validaCumpleanios(obj, idTab){	
	obj.value = Trim(obj.value);		
	if (!obj.value)
	{		
		obj.value="";
		return(true);
	}
	
	var checkOK = "0123456789/"; 	
  	var checkStr = obj.value; 
  	var allValid = true; 
  	var decPoints = 0; 
  	var allNum = ""; 
  	for (i = 0; i < checkStr.length; i++) { 
    	ch = checkStr.charAt(i); 
    	for (j = 0; j < checkOK.length; j++) 
      		if (ch == checkOK.charAt(j))
        break; 
    if (j == checkOK.length) { 
      allValid = false; 
      break; 
    } 
    allNum += ch; 
  } 
	  if (!allValid) { 
	    alert("Escriba la fecha de cumpleaños en el formato \"(dd/mm)\".");
	    obj.focus(); 
	    return (false); 
	  } 
	
	
		
	VectorFecha=obj.value.split("/");
	if (parseInt(VectorFecha[1])>12 || parseInt(VectorFecha[1])<1)
	{
		alert("Mes fuera de rango");
		obj.focus();
		return(false);
	}		
	if (parseInt(VectorFecha[1])==4 || parseInt(VectorFecha[1])==6 || parseInt(VectorFecha[1])==9 || parseInt(VectorFecha[1])==11)
	{
		if (parseInt(VectorFecha[0])>30 || parseInt(VectorFecha[0])<1)
			{
				alert("Día fuera de rango");
				obj.focus();	
				return(false);
			}		
	}
	else if (parseInt(VectorFecha[1])==2)
	{
		if (parseInt(VectorFecha[0])>29 || parseInt(VectorFecha[0])<1)
		{
			alert("Día fuera de rango");
			obj.focus();
			return(false);
		}		
	}
	else
	{
		if (parseInt(VectorFecha[0])>31 || parseInt(VectorFecha[0])<1)
			{
				alert("Día fuera de rango");
				obj.focus();
				return(false);
			}		
	}
	
	obj.value=VectorFecha[1]+'/'+VectorFecha[0]+'/2000';	
	//obj.value=DatetoServer('obj.value','format');				
	
	return(true);
	
	
	
	
	
}
//-------------------------------------------------------------------------->

//---------------------VALIDA CAMPOS DE TEXTO--------------------------->
function validateText(obj, idTab){	
	obj.value = Trim(obj.value);
	re = /'/g;	
	if(re.test(obj.value))
	{
		alert("Quotation mark is not a valid character");
		if(idTab){showTab(idTab);}
		obj.focus();
		return(false);
	}	
	if(isEmpty(obj)){return(false);}		
	return(true);
}
//-------------------------------------------------------------------------->

//---------------------VALIDA CAMPOS DE TEXTO CON CAMPOS VACIOS (para el modify)--------------------------->
function validateTextWithNull(obj, idTab){	
	obj.value = Trim(obj.value);
	re = /'/g;		
	if(re.test(obj.value))
	{
		alert("Quotation mark is not a valid character");
		if(idTab){showTab(idTab);}
		obj.focus();
		return(false);
	}		
	return(true);
}
//-------------------------------------------------------------------------->

//---------------------VALIDA QUE ELCAMPO NO ESTE VACIO--------------------->
function isEmpty(obj, idTab){		
	if(!obj.value)
	{	alert("Value must be loaded");
		if(idTab){showTab(idTab);}
		obj.focus();
		return(true);
	}		
	return(false);
}
//-------------------------------------------------------------------------->

//---------------------VALIDA CAMPOS DE ENTEROS----------------------------->
function validateInt(obj, idTab){	
	obj.value = Trim(obj.value);
	if(parseInt(obj.value)!=parseFloat(obj.value)||isNaN(obj.value))
	{
		alert("Value must be integer");
		if(idTab){showTab(idTab);}
		obj.focus();
		return(false);
	}
	return(true);
}
//-------------------------------------------------------------------------->
//---------------------VALIDA CAMPOS DE DECIMALES----------------------------->
function validateDec(obj, idTab){	
	obj.value = Trim(obj.value);
	if(isNaN(obj.value))
	{
		alert("Value must be a valid number");
		if(idTab){showTab(idTab);}
		obj.focus();
		return(false);
	}
	else
	{
		if(obj.value!=parseFloat(obj.value))
		{
			alert("Value must be a valid decimal value");
			if(idTab){showTab(idTab);}
			obj.focus();
			return(false);
		}
	}
	return(true);
}
//-------------------------------------------------------------------------->
//---------------------SOLO PERMITE INGRESAR NUMEROS--------------------------->
function inputNumber(){		
	if(event.keyCode<48||event.keyCode>57){event.keyCode='';}
	return;
}
//-------------------------------------------------------------------------->
//---------------------PERMITE INGRESAR NUMEROS DECIMAL--------------------------->
function inputDecimal(){		
	if(event.keyCode<48 || event.keyCode>57) {
		if(event.keyCode!=44 && event.keyCode!=46)
		{
			event.keyCode='';	
		}else{
			if(event.keyCode==44)
			{	event.keyCode=46 //Se cambia la coma por el punto
			}
		}
	}
	return;
}
//-------------------------------------------------------------------------->
//---------------------NO PERMITE COMILLAS SIMPLES--------------------------->
function inputText(){		
	if(event.keyCode==39){event.keyCode='';}
	return;
}
//-------------------------------------------------------------------------->
//-------------------------------------------------------------------------->
//-----------------------VALIDACION DE FECHAS------------------------------->
function isEmptyDate(obj){		
	if(!obj.value){return(true);}		
	return(false);
}

function validateTextDate(obj){
	var fecha = (obj.value)
	if(isEmpty(obj)){return false;}else
	{
		if (checkdate(obj.value) == '0')
		{
			return true;
		}
		else
		{
			alert('Debe ingresar una fecha válida');
			return false;
		}
	}
}

function validateTextDateWithNull(obj){
	var fecha = (obj.value)
	if(isEmptyDate(obj)){return true;}else
	{
		if (checkdate(obj.value) == '0')
		{
			return true;
		}
		else
		{
			alert('Debe ingresar una fecha válida');
			return false;
		}
	}
}
//-------------------------------------------------------------------------->
//----------------------- VALIDA FECHAS EN FORMATO dd/mm/aaaa -------------->
function isValidDate(date){
	daysMonth = [31,28,31,30,31,30,31,31,30,31,30,31];

	//obtengo la posicion del primer separador
	pos1 = date.indexOf('/');
	pos2 = (date.substring(pos1+1, date.length)).indexOf('/');

	if( pos1 != 1 && pos1 != 2 || pos2 != 1 && pos2 != 2)
		return false;

	day = date.substring(0, pos1);
	pos2 += 1 + day.length;

	day 	= eval(day);
	month = eval(date.substring(pos1+1, pos2));
	year 	= eval(date.substring(pos2+1,date.length));

	if( isNaN(day) || isNaN(month) || isNaN(year))
		return false;

	if( (year < 1900 || month > 3000) ||
		(month < 1 || month > 12 ) ||
		day < 1)
		return false;

	if( month == 2 && (year % 4) == 0 ){
		if( (year % 100) == 0 && (year % 400) != 0 && day > 28)
			return false;
		if( day > 29 )
			return false;
	}
	else if( day > daysMonth[month-1])
		return false;

	return true;
}
//-------------------------------------------------------------------------->

/*=====================================
   function DatePosition 
   parameters: dateString dateType
   returns: integer (-1, 0, 1)
   
   dateString is a date passed as a string in the following
   formats:

   type 1 : 19970529
   type 2 : 970529
   type 3 : 29/05/1997
   type 4 : 29/05/97
   type 5 : 05/29/1997
   type 6 : 05291997
   type 7 : 052997
   
   dateType is a numeric integer from 1 to 7, representing
   the type of dateString passed, as defined above.

   Returns -1 if the date passed is behind todays date
   Returns 0 if the date passed is equal to todays date
   or if dateType is not 1 to 7
   Returns 1 if the date passed is ahead of todays date
   
   Added Y2K checking.  (Works for any century cross over)
=====================================*/
function DatePosition(dateString,dateType) 
{
    var now 	= new Date();
    var today 	= new Date(now.getYear(),now.getMonth(),now.getDate());
    var century = parseInt(now.getYear()/100)*100;
        
    if (dateType == 1)
        var date = new Date(dateString.substring(0,4),
                            dateString.substring(4,6)-1,
                            dateString.substring(6,8));
    else if (dateType == 2)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(0,2)))
        {
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(2,4)-1),
                            dateString.substring(4,6));
        }
        else
        {
            var date = new Date(century-100+parseInt(dateString.substring(0,2)),
                            parseInt(dateString.substring(2,4)-1),
                            dateString.substring(4,6));
        }
        
    }
    else if (dateType == 3)
        var date = new Date(dateString.substring(6,10),
                            dateString.substring(3,5)-1,
                            dateString.substring(0,2));
    else if (dateType == 4)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(6,8)))
        {          
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(3,5)-1),
                            dateString.substring(0,2));
        }
        else
        {          
            var date = new Date(century-100+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(3,5)-1),
                            dateString.substring(0,2));
        }
        
    }
    else if (dateType == 5)
        var date = new Date(dateString.substring(6,10),
                            dateString.substring(0,2)-1,
                            dateString.substring(3,5));
    else if (dateType == 6)
        var date = new Date(dateString.substring(4,8),
                            dateString.substring(0,2)-1,
                            dateString.substring(2,4));
    else if (dateType == 7)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(4,6)))
        {          
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(0,2)-1),
                            dateString.substring(2,4));
        }
        else
        {          
            var date = new Date(century-100+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(0,2)-1),
                            dateString.substring(2,4));
        }        
    }
    else
        return false;

    if (date < today)
    	{return -1;}
    else if (date > today)
    	{return 1;}
    else
    	{return 0;}
}