//	Written by Ricaute Jiménez Sánchez
//	PopCalendarFunctions 2.4.2
//	email : ricaj0625@yahoo.com
//	last updated 25 de Mayo de 2005

// This function exists for backwards compatibility with the old 
// date picker. Do not remove unless all client forms have been updated!
function calendarPicker (textFieldID)
{
	__PopCalShowCalendar(textFieldID, null);
}


var PopCalendarFunctions=new __PopCalendarFunctions()
function __PopCalendarFunctions()
{
	this.majorVersion=2
	this.minorVersion=4.3
}

var __PopCalValidCalendarRanges=[]
var __PopCalTemporal=""
var __PopCalLastControlFocus=""
var __PopCalTimerSummary=null
var __PopCalCheckDependencies=false

function __PopCalValidateKey(o,e)
{
	__PopCalLastControlFocus=""
	if(o.value!="")
	{
		if(e.target)
		{
			if(e.which==13)
			{
				o.TempValue=o.value
				__PopCalFormatControl(o)
				if(o.value=="")
				{
					o.value=o.TempValue
				}
				o.TempValue=null
			}
		}
	}
	return
}

function __PopCalSetBlur(o,e)
{
	o.TempValue=o.value
	__PopCalFormatControl(o)
	if(o.value=="")
	{
		o.value=o.TempValue
	}
	o.TempValue=null
}

function __PopCalValidateOnSubmit(val,args)
{
}

function __PopCalValidateRanges(o)
{
	return true;
}

function __PopCalValidateDependencies(o)
{
}

function __PopCalSelectNone(_id)
{
	PopCalHideCalendar(_id,false)
	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		var _Range=__PopCalValidCalendarRanges[i]
		var o=document.getElementById(_Range.Control)
		if(o)
		{
			var _PopCal=getCalendar (o)
			if(_PopCal)
			{
				if(_PopCal.id==_id)
				{
					o.value=""
					if(o.getAttribute("Buffer")=="true")
					{
						eval(o.getAttribute("PostBack").toString().replace('9999x99x99',o.value))
					}
					else if ((typeof(ValidatorOnChange)=="function")&&(o.fireEvent))
					{
						o.fireEvent("onchange")
					}
					break
				}
			}
		}
	}
}

function getCalendar (obj)
{
	var _PopCal = null;
	if (obj.calendarObj != null)
		return obj.calendarObj;
		
	var calName = obj.getAttribute("Calendar");
	if (calName == null || calName == "")
	{
		_PopCal = PopCalendar.newCalendar();
		_PopCal.imgDir= _PopImageDirectory;
		_PopCal.CssClass='ClassicStyle';
		_PopCal.startAt=0;
		_PopCal.clientValidator=0;
		_PopCal.showToday=0;
		_PopCal.selectDateMessage='[Date]';
		_PopCal.showHolidays=0;
		_PopCal.shadow=1;
		_PopCal.monthName=['January','February','March','April','May','June','July','August','September','October','November','December'];
		_PopCal.monthNameShort=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		_PopCal.dayName=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
		_PopCal.initCalendar();
		__PopCalAddCalendarRange(obj.id,'1900-01-01',0,'','2099-12-31',0,'');
	}
	else
		_PopCal = eval(calName);
		
	obj.calendarObj = _PopCal;
	return _PopCal;
}

function getFormat ()
{
	return "dd/mm/yyyy";
}

function __PopCalShowCalendar(_o,_span)
{
	var o=document.getElementById(_o)
	if (!o) return;
	var _PopCal = getCalendar (o);

	var _format=getFormat ();
	var _from=""
	var _to=""
	o.value=__PopCalValueTrim(o.value)
	o.oldValue=o.value


	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		var _Range=__PopCalValidCalendarRanges[i]
		if(_Range.Control==o.id)
		{
			__PopCalTemporal=","
			var _DateFrom=__PopCalGetFromYYYYMMDD(o)
			_from=_PopCal.formatDate(_DateFrom,"yyyy-mm-dd",_format)
			__PopCalTemporal=","
			var _DateTo=__PopCalGetToYYYYMMDD(o)
			_to=_PopCal.formatDate(_DateTo,"yyyy-mm-dd",_format)
			break
		}
	}
	__PopCalLastControlFocus=""
	_PopCal.ControlAlignLeft=null
	if(o.getAttribute("Buffer")=="true")
	{
		_PopCal.ControlAlignLeft=_span
	}
	_PopCal.show(o,_format,_from,_to,"__PopCalSelectDate('"+o.id+"')")
}

function __PopCalSelectDate(_o)
{
	var o=document.getElementById(_o)
	if(!o) return
	if(o.value!=o.oldValue)
	{
		var _PopCal=getCalendar (o)
		if(o.getAttribute("Buffer")=="true")
		{
			eval(o.getAttribute("PostBack").toString().replace('9999x99x99',o.value))
		}
		else if((_PopCal)&&((_PopCal.ie))&&(_PopCal.calendarInstance.clientValidator==1))
		{
			if ((typeof(ValidatorOnChange)=="function")&&(o.fireEvent))
			{
				o.fireEvent("onchange")
			}
			else if(!__PopCalCheckDependencies)
			{
				__PopCalCheckDependencies=true
				__PopCalValidateDependencies(o)
				__PopCalCheckDependencies=false
			}
			__PopCalUpdateSummaryValidator()
		}
	}
}

function __PopCalUpdateSummaryValidator()
{
}

function __PopCalDisplaySummaryValidator()
{
}

function __PopCalFormatControl(o)
{
	if(o.value!="")
	{
		var _PopCal=getCalendar (o)
		if(_PopCal)
		{
			var _format=getFormat ()
			var _Sep=__PopCalGetSeparator(o.value)
			var sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format,_Sep),_format)
			if(_format.indexOf("mmmm")!=-1)
			{
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mmmm","mmm"),_Sep),_format)
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mmmm","mm"),_Sep),_format)
			}
			else if(_format.indexOf("mmm")!=-1)
			{
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mmm","mmmm"),_Sep),_format)
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mmm","mm"),_Sep),_format)
			}
			else
			{
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mm","mmmm"),_Sep),_format)
				if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators(_format.replace("mm","mmm"),_Sep),_format)
			}
			if(sRetVal=="") sRetVal=_PopCal.formatDate(o.value,__PopCalReplaceSeparators("yyyy-mm-dd",_Sep),_format)
			o.value=sRetVal
			return(sRetVal!="")
		}
	}
	return(true)
}

function __PopCalShowMessageWaitForControl(_o)
{
}

function __PopCalShowMessage(_o,_m,_f)
{
}

function __PopCalSetErrorMessage(_ValidControl,_DateMsg,_textMessage)
{
	return "";
}

function __PopCalGetYYYYMMDD(o)
{
	if(o)
	{
		var _PopCal=getCalendar (o)
		if(_PopCal)
		{
			return(_PopCal.formatDate(o.value,getFormat (),"yyyy-mm-dd"))
		}
	}
	return("")
}

function __PopCalGetFromYYYYMMDD(o)
{
	var _DateFrom=""
	if(o)
	{
		if(__PopCalTemporal.indexOf(","+o.id.toLowerCase()+",")!=-1) return(_DateFrom)
		__PopCalTemporal+=(o.id.toLowerCase()+",")
		var _PopCal=getCalendar (o)
		for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
		{
			var _Range=__PopCalValidCalendarRanges[i]
			if(_Range.Control==o.id)
			{
				if(_Range.FromRange=="Hoy")
				{
					_DateFrom=_PopCal.formatDate("Hoy","yyyy-mm-dd","yyyy-mm-dd")
				}
				else if(_Range.FromRange.substr(0,2)=="C:")
				{
					_DateFrom=__PopCalGetYYYYMMDD(document.getElementById(_Range.FromRange.substr(2)))
					if(_DateFrom=="")
					{
						_DateFrom=__PopCalGetFromYYYYMMDD(document.getElementById(_Range.FromRange.substr(2)))
					}
				}
				else
				{
					_DateFrom=_Range.FromRange
				}
				if(_DateFrom!="")
				{
					_DateFrom=_PopCal.addDays(_DateFrom,"yyyy-mm-dd",_Range.FromIncrement)
				}
				break
			}
		}
	}
	return(_DateFrom)
}

function __PopCalGetToYYYYMMDD(o)
{
	var _DateTo=""
	if(o)
	{
		if(__PopCalTemporal.indexOf(","+o.id.toLowerCase()+",")!=-1) return(_DateTo)
		__PopCalTemporal+=(o.id.toLowerCase()+",")
		var _PopCal=getCalendar (o)
		for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
		{
			var _Range=__PopCalValidCalendarRanges[i]
			if(_Range.Control==o.id)
			{
				if(_Range.ToRange=="Hoy")
				{
					_DateTo=_PopCal.formatDate("Hoy","yyyy-mm-dd","yyyy-mm-dd")
				}
				else if(_Range.ToRange.substr(0,2)=="C:")
				{
					_DateTo=__PopCalGetYYYYMMDD(document.getElementById(_Range.ToRange.substr(2)))
					if(_DateTo=="")
					{
						_DateTo=__PopCalGetToYYYYMMDD(document.getElementById(_Range.ToRange.substr(2)))
					}
				}
				else
				{
					_DateTo=_Range.ToRange
				}
				if(_DateTo!="")
				{
					_DateTo=_PopCal.addDays(_DateTo,"yyyy-mm-dd",_Range.ToIncrement)
				}
				break
			}
		}
	}
	return(_DateTo)
}


function __PopCalObjectCalendarRange()
{
	this.Control=""
	this.FromRange=""
	this.FromIncrement=0
	this.FromMessage=""
	this.ToRange=""
	this.ToIncrement=0
	this.ToMessage=""
}

function __PopCalAddCalendarRange(_Control,_FromRange,_FromIncrement,_FromMessage,_ToRange,_ToIncrement,_ToMessage)
{
	var _Range=new __PopCalObjectCalendarRange()
	_Range.Control=_Control
	_Range.FromRange=_FromRange
	_Range.FromIncrement=_FromIncrement
	_Range.FromMessage=_FromMessage
	_Range.ToRange=_ToRange
	_Range.ToIncrement=_ToIncrement
	_Range.ToMessage=_ToMessage
	if(_Range.FromRange=='') _Range.FromRange='1900-01-01'
	if(_Range.ToRange=='') _Range.ToRange='2099-12-31'
	__PopCalValidCalendarRanges[__PopCalValidCalendarRanges.length]=_Range
}

function __PopCalGetSeparator(_f)
{
	if(_f.indexOf("/")!=-1) return("/")
	else if(_f.indexOf("-")!=-1) return("-")
	return(".")
}

function __PopCalReplaceSeparators(_f,_s)
{
	var _r=_f
	_r=_r.split('-').join(_s)
	_r=_r.split('/').join(_s)
	_r=_r.split('.').join(_s)
	return(_r)
}

function __PopCalControlFocus(o)
{
	if(o.getAttribute("SetFocusOnError")=="false") return
	if(__PopCalLastControlFocus!="") return
	if(o.id)
	{
		__PopCalLastControlFocus=o.id
		window.setTimeout("__PopCalWaitForSetControlFocus()",250)
	}
	else
	{
		window.setTimeout("__PopCalLastControlFocus=''",500)
		try
		{
			o.focus()
		}
		catch (e)
		{
			return
		}
	}
}

function __PopCalWaitForSetControlFocus()
{
	if (__PopCalLastControlFocus!="")
	{
		var o=document.getElementById(__PopCalLastControlFocus)
		window.setTimeout("__PopCalLastControlFocus=''",500)
		if(!o) return
		try
		{
			o.focus()
		}
		catch (e)
		{
			return
		}
	}
}

function __PopCalValueTrim(s)
{
	var m=s.match(/^\s*(\S+(\s+\S+)*)\s*$/)
	return ((m==null)?"":m[1])
}

function __PopCalCustomValidatorEvaluateIsValid(val)
{
	var value = ""
	if (typeof(val.controltovalidate) == "string")
	{
		value = ValidatorGetValue(val.controltovalidate)
	}
	var args = { Value:value, IsValid:true, Control:val.controltovalidate}
	if (typeof(val.clientvalidationfunction) == "string")
	{
		eval(val.clientvalidationfunction + "(val, args) ;")
	}
	return args.IsValid
}

function __PopCalGetTicks()
{
	return (new Date())-(new Date(2005,0,1,0,0,0,0))
}

