//				<!-- <script language="JavaScript" src="<%=AppSettings("urlBase")%>/include/o_dateObjectS.js"></script> -->

function dateObject(name)
	{
	this.name = name;
	this.day = null;
	this.month = null;
	this.year = null;
	this.minYear = 2002;
	this.monthText = dte_monthText;
	this.daysObject = null;
	this.monthsObject = null;
	this.yearsObject = null;
	this.load = dte_load;
	this.changeMonth = dte_changeMonth;
	this.changeDay = dte_changeDay;
	this.add = dte_add;
	var today = new Date();
	this.tday = today.getDate();
	this.tmonth = today.getMonth()+1;
	this.tyear = today.getYear();
	this.takeDate = dte_takeDate;
	this.onchange = null;
	this.monthNullable = false;
	this.monthNullValue = ""
	this.monthNullName = "";
	this.dayNullable = false;
	this.dayNullValue = ""
	this.dayNullName = "";
	this.language = "es";
	this.nameMonth = dte_nameMonth;
	return;
	}
	
function dte_load()
	{
	var maxDays = 31;
	if (this.monthsObject!=null)
		{
		if (this.monthNullable)
			this.monthsObject.options[0] = new Option(this.monthNullName,this.monthNullValue);
		for (var i=1;i<=12;i++)
			{
			var name=this.nameMonth(i);
			switch (i)
				{
				case 2: if(i==this.month) maxDays = (this.year%4==0) ? 29 : 28; break;
				case 4: if(i==this.month) maxDays = 30; break;
				case 6: if(i==this.month) maxDays = 30; break;
				case 9: if(i==this.month) maxDays = 30; break;
				case 11: if(i==this.month) maxDays = 30; break;
				}
			if (this.monthNullable)
				this.monthsObject.options[i] = new Option(name,i);
			else
				this.monthsObject.options[i-1] = new Option(name,i);
			}
		this.monthsObject.selectedIndex=this.month-1;
		this.monthsObject.onchange = new Function("dte_changeMonth('" + this.name + "')");
		}
	if (this.daysObject!=null)
		{
		if (this.dayNullable)
			{
			this.daysObject.options[0] = new Option(this.dayNullName,this.dayNullValue);
			for (var i=1;i<=maxDays;i++)
				this.daysObject.options[i] = new Option((String (i).length==1) ? "0"+i: i,i);
			this.daysObject.selectedIndex = 0;
			}
		else
			{
			for (var i=1;i<=maxDays;i++)
				this.daysObject.options[i-1] = new Option((String(i).length==1) ? "0"+i: i,i);
			this.daysObject.selectedIndex=this.day-1;
			}
		this.daysObject.onchange = new Function("dte_changeDay('" + this.name + "')");
		}
		//var minYear = 2002;
		if (this.yearsObject!=null)	{
			for (var i=this.minYear;i<=this.year+1;i++){
				this.yearsObject.options[i-this.minYear] = new Option(i,i);
			}
			this.yearsObject.selectedIndex=(this.year-this.minYear);
			this.yearsObject.onchange = new Function("dte_changeYear('" + this.name + "')");
		}
		
	return;
	}

function dte_changeMonth(nameObject)
	{
	thisObject = eval(nameObject)
	thisObject.month = thisObject.monthsObject.options[thisObject.monthsObject.selectedIndex].value;
	
	change_year(thisObject);
		
	if (thisObject.daysObject!=null)
		{
		var maxDays = 31;
		switch (String(thisObject.monthsObject.options[thisObject.monthsObject.selectedIndex].value))
			{
			case "2": maxDays = (thisObject.year%4==0) ? 29 : 28; break;
			case "4": case "6": case "9": case "11": maxDays = 30;
			}
		thisObject.daysObject.options.length=28;
		if (thisObject.dayNullable)
			{
			for (var i=28;i<=maxDays;i++)
				thisObject.daysObject.options[i] = new Option((String(i).length==1) ? "0"+i: i,i);
			}
		else
			{
			for (var i=28;i<=maxDays;i++)
				thisObject.daysObject.options[i-1] = new Option((String(i).length==1) ? "0"+i: i,i);
			}
		if (thisObject.dayNullable)
			{
			var selected = 0;
			if (thisObject.day>thisObject.daysObject.options.length)
				selected = thisObject.daysObject.options.length-1;
			else
				selected = thisObject.day;
			thisObject.daysObject.selectedIndex = selected
			var index = thisObject.daysObject.selectedIndex
			}
		else
			{
			if (thisObject.day>thisObject.daysObject.options.length)
				thisObject.daysObject.selectedIndex=thisObject.daysObject.options.length-1;
			else
				thisObject.daysObject.selectedIndex=thisObject.day-1;
			var index = thisObject.daysObject.selectedIndex
			}
		thisObject.day = thisObject.daysObject.options[index].value;
		}
	if (thisObject.onchange!=null) thisObject.onchange();
	return;
	}
	
function dte_changeYear(nameObject)
	{
	thisObject = eval(nameObject)
	thisObject.year = thisObject.yearsObject.options[thisObject.yearsObject.selectedIndex].value;
	if (thisObject.onchange!=null) thisObject.onchange();
	return;
}

function dte_changeDay(nameObject)	{
	thisObject = eval(nameObject)
	thisObject.day = thisObject.daysObject.options[thisObject.daysObject.selectedIndex].value;
	change_year(thisObject);
	if (thisObject.onchange!=null) thisObject.onchange();
	return;
}
	
function change_year(Obj)
{
	if ((Obj.month <= Obj.tmonth))
		{
			if ((Obj.month == Obj.tmonth) && (Obj.day >= Obj.tday))
				Obj.year = Obj.tyear;
			else
				Obj.year = Obj.tyear + 1;
		}
	else
		Obj.year = Obj.tyear;	
	return;
}
function dte_add(numDays)
	{
	this.day = parseInt(this.day) + numDays;
	var maxDays = 31;
	switch (this.month.toString())
		{
		case "2": maxDays = (this.year%4==0) ? 29 : 28; break;
		case "4": case "6": case "9": case "11": maxDays = 30;
		}
	if (this.day>maxDays)
		{
		this.month = parseInt(this.month) + 1;
		this.day = parseInt(this.day) - parseInt(maxDays);
		if (this.month==13)
			{
			this.month = 1;
			this.year = parseInt(this.year) + 1;
			}
		}
	return;
	}
	
function dte_takeDate(format) 
{
	//format --> (1) 13/03/2002  
	//format --> (2) 20020313    
	var d,m,y;
	switch (format)
	{
		case 1:
		case 2:
			if (this.day.toString().length==1)
				d = "0" + this.day.toString();
			else
				d = this.day.toString();
			if (this.month.toString().length==1)
				m = "0" + this.month.toString();
			else
				m = this.month.toString();
			y = this.year;
			if (format == 1)
				return (d + "/" + m + "/" + y)
			else
				return(y + m + d);
			break;
	}
	return;
}

function dte_monthText()
{
	return dte_nameMonth(this.month);
}

function dte_nameMonth(i){
	var name = "";
	switch (this.language){
		case "es":
			switch (i){
				case 1: name= "Enero"; break;
				case 2: name= "Febrero";break;
				case 3: name= "Marzo"; break;
				case 4: name= "Abril";break;
				case 5: name= "Mayo"; break;
				case 6: name = "Junio";break;
				case 7: name = "Julio"; break;
				case 8: name = "Agosto"; break;
				case 9: name = "Septiembre"; break;
				case 10: name = "Octubre"; break;
				case 11: name = "Noviembre"; break;
				case 12: name = "Diciembre"; break;
			}
			break;
		case "ca":
			switch (i){
				case 1: name= "Gener"; break;
				case 2: name= "Febrer";break;
				case 3: name= "Març"; break;
				case 4: name= "Abril";break;
				case 5: name= "Maig"; break;
				case 6: name = "Juny";break;
				case 7: name = "Juliol"; break;
				case 8: name = "Agost"; break;
				case 9: name = "Setembre"; break;
				case 10: name = "Octubre"; break;
				case 11: name = "Novembre"; break;
				case 12: name = "Desembre"; break;
			}
			break;
		case "en":
			switch (i){
				case 1: name= "January"; break;
				case 2: name= "February";break;
				case 3: name= "March"; break;
				case 4: name= "April";break;
				case 5: name= "May"; break;
				case 6: name = "June";break;
				case 7: name = "July"; break;
				case 8: name = "August"; break;
				case 9: name = "September"; break;
				case 10: name = "October"; break;
				case 11: name = "November"; break;
				case 12: name = "December"; break;
			}
			break;
		case "de":
			switch (i){
				case 1: name= "Januar"; break;
				case 2: name= "Februar";break;
				case 3: name= "März"; break;
				case 4: name= "April";break;
				case 5: name= "Mai"; break;
				case 6: name = "Juni";break;
				case 7: name = "Juli"; break;
				case 8: name = "August"; break;
				case 9: name = "September"; break;
				case 10: name = "Oktober"; break;
				case 11: name = "November"; break;
				case 12: name = "Dezember"; break;
			}
			break;
	}
	return name;
}
