
// ** cj functions	** //
PopCal_enUS_DaysShort=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
PopCal_enUS_MonthsShort=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
PopCal_enUS_MonthsFull=['January','February','March','April','May','June','July','August','September','October','November','December'];


function CheckOutDate()
{

//alert('Check out date')
try
{
 var oInD =  new getObj('spnDrpCheckInDay');
 var oOutD =  new getObj('spnDrpCheckOutDay');
 var oInM =  new getObj('spnDrpCheckInMonth');
 var oOutM =  new getObj('spnDrpCheckOutMonth');
 var oInY =  new getObj('spnDrpCheckInYear');
 var oOutY =  new getObj('spnDrpCheckOutYear');
 }
 catch(e)
 {
 //ignore
 }

dToday = new Date();
// check that check if month is earlier than now, ots next year
if( SelectedValue(oInM) < dToday.getMonth() ) 
  {
    if(oInY.obj.selectedIndex == 0) 
	// select next year
        oInY.obj.selectedIndex = 1; 
  }

 // Check Out year cannot be before Check in year
 if(SelectedValue(oOutY) < SelectedValue(oInY))
    SelectValue(oOutY, SelectedValue(oInY));

 // more checks if same year
 if(SelectedValue(oOutY) == SelectedValue(oInY)) 
  {
    if(SelectedValue(oOutM) < SelectedValue(oInM)) 
        SelectValue(oOutM, SelectedValue(oInM));
    if(SelectedValue(oOutM) == SelectedValue(oInM)) 
    {
		if(SelectedValue(oOutD) <= SelectedValue(oInD)) 
			SelectValue(oOutD, parseInt(SelectedValue(oInD))+1);
    }
  }
}
function SelectedValue( obj )
{
	//alert(obj.name);
	try{
	
	if (obj.obj.selectedIndex==-1)
		return 0;
		
	return parseInt(obj.obj.options[obj.obj.selectedIndex].value);
	}
	catch(e)
	{
	}
}
function SelectValue( obj, val)
{
	//alert('SelectVal' + obj.obj + ' to ' + val);
	for(i = 0; i < obj.obj.options.length; i++)
	{
		if ( obj.obj.options[i].value == val )
		{
			obj.obj.selectedIndex = i;
			break;
		}
	}	
}

function CheckInDays()
{
//alert('Check in days');
 var obj =  new getObj('DrpCheckInDay');
 var oInM =  new getObj('DrpCheckInMonth');
 var oInY =  new getObj('DrpCheckInYear');
 month = SelectedValue(oInM);
 year = parseInt(SelectedValue(oInY));
 setDays(obj.obj, year, month, SelectedValue(obj));
 setMonths(oInM.obj, year, month);
 CheckOutDays();
 CheckOutDate();
}

function CheckOutDays()
{
//alert('Check out days');
 var obj =  new getObj('DrpCheckOutDay');
 var oOutM =  new getObj('DrpCheckOutMonth');
 var oOutY =  new getObj('DrpCheckOutYear');
 month = SelectedValue(oOutM);
 year = parseInt(SelectedValue(oOutY));
  setDays(obj.obj, year, month, SelectedValue(obj));
  setMonths(oOutM.obj, year, month);
  CheckOutDate();
}

function SetResult(daySelected,monthSelected,yearSelected, id)
{
	// alert('id='+ id);
	//alert('SetResult='+ daySelected + ' - ' + monthSelected + ' - ' + yearSelected);
	var _dBox = document.getElementById(id+'Day');
	var _mBox = document.getElementById(id+'Month');
	var _yBox = document.getElementById(id+'Year');
	var _Span = document.getElementById(id);
	var _txt = document.getElementById(id+'_txt');
	
	_Span.value = monthSelected+1 + '.' + daySelected + '.' + yearSelected;
	//alert( 'span.val =' +  _Span.value);
	setYears(_yBox, yearSelected);
	setMonths(_mBox, yearSelected, parseInt(monthSelected)+1);
	setDays(_dBox, yearSelected, parseInt(monthSelected)+1, daySelected);
//	_txt.value = daySelected + '.' +  parseInt(monthSelected)+1 + '.' + yearSelected;
	CheckOutDate();
}

function InitCalId(id)
{
	//alert('initCalID-' + id);
	var _CalBox = document.getElementById(id);
	if (_CalBox)
	{
		var _year=parseInt(_CalBox.getAttribute('Year'));
		var _month=parseInt(_CalBox.getAttribute('Month'));
		var _day=parseInt(_CalBox.getAttribute('Day'));
		var _dBox = document.getElementById(id + 'Day');
		var _mBox = document.getElementById(id + 'Month');
		var _yBox = document.getElementById(id + 'Year');

		//alert('Init y=' + _year + ' m=' + _month +' d=' + _day);
		setYears(_yBox, _year);
		setMonths(_mBox, _year, _month);
		setDays(_dBox, _year, _month, _day);
	} else {
//		alert('_CalBox Null' + id);
	}
//	FillWeekNumber();
}


function setDays(obj, year, month, day)
{
	//day = obj.selectedIndex;" & vbCrLf
//	alert('setDays y=' + year + ' m=' + month + 'd=' + day);
	obj.options.length = 0;
	var days = new Array(31, ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	for(i = 0; i < days[month-1]; i++)
	{
		obj.options.length = obj.options.length + 1;
		obj.options[i].value = i + 1;
		obj.options[i].text = i + 1;
	}
	obj.selectedIndex = ((day-1) < obj.options.length) ? (day-1) : obj.options.length - 1;
}

function setMonths(obj, year, month)
{
//	alert('setMonths y=' + year + ' m=' + month );
	// clear list
	obj.options.length = 0;
	var mToday = new Date();
    var months = new Array( 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var iStart = 0;
	if ( year == mToday.getFullYear() )
		iStart = month -1;
	for(i = iStart; i < 12; i++)
	{
		obj.options.length = obj.options.length + 1;
		obj.options[i-iStart].value = i + 1;
		obj.options[i-iStart].text = months[i];
	}
	//alert('setMonth-' + month);
	obj.selectedIndex = month -iStart-1;
}

function setYears(obj, year)
{
	//alert('setYears-' + year);
	// clear list
	obj.options.length = 0;
	var today = new Date();
	for(i = 0; i < 2; i++)
	{
		obj.options.length = obj.options.length + 1;
		obj.options[i].value = today.getFullYear()+i ;
		obj.options[i].text = today.getFullYear() + i;
	}
	obj.selectedIndex = year - today.getFullYear() ;
}



if(typeof(objPopCalList)=='undefined')
{
	var objPopCalList=[]
	var PopCalendar={majorVersion:3,minorVersion:2.3,newCalendar:new Function("_name","return(PopCalGetCalendarInstance(_name))")}
}

function PopCalGetCalendarInstance(_name)
{
	var _obj=new PoPCalCreateCalendarInstance(_name)
	objPopCalList[_obj.id]=_obj
	return(_obj)
}

function PoPCalCreateCalendarInstance(_name)
{
	var _id=PopCalGetCalendarIndex(_name)
	this.id=_id
	this.calendarName=_name
	this.BlankFieldText=""
	this.ClientScriptOnDateChanged=""
	this.ClientScriptDisabledDateStyle=""
	this.ClientScriptHolidayDateStyle=""
	this.ClientScriptWeekendDateStyle=""
	this.ClientScriptSpecialDateStyle=""
	this.startAt=0
	this.showWeekNumber=0
	this.weekNumberFormula=0
	this.showToday=1
	this.showWeekend=0
	this.showHolidays=1
	this.showSpecialDay=1
	this.selectWeekend=1
	this.selectHoliday=1
	this.addCarnival=0
	this.addGoodFriday=0
	this.buttons=0
	this.clientValidator=1
	this.defaultFormat="dd-mm-yyyy"
	this.fixedX=-1
	this.fixedY=-1
	this.fade=0
	this.shadow=0
	this.move=0
	this.saveMovePos=0
	this.centuryLimit=40
	this.keepInside=1
	this.executeFade=true
	this.forceTodayTo=null
	this.forceTodayFormat=null
	this.imgDir=""
	this.CssClass=""
	this.todayString=""
	this.lr=1
	this.CarnivalString="Carnival"
	this.GoodFridayString="Good Friday"
	this.selectDateMessage=""
	this.monthSelected=null
	this.yearSelected=null
	this.dateSelected=null
	this.omonthSelected=null
	this.oyearSelected=null
	this.odateSelected=null
	this.monthConstructed=null
	this.yearConstructed=null
	this.intervalID1=null
	this.intervalID2=null
	this.timeoutID1=null
	this.timeoutID2=null
	this.timeoutID3=null
	this.ctl=null
	this.ctlNow=null
	this.dateFormat=null
	this.nStartingYear=null
	this.onKeyPress=null
	this.onClick=null
	this.onSelectStart=null
	this.onContextMenu=null
	this.onmousemove=null
	this.onmouseup=null
	this.onresize=null
	this.onscroll=null
	this.ControlAlignLeft=null
	this.ie=false
	this.ieVersion=0
	this.dom=document.getElementById
	this.ns4=document.layers
	this.opera=navigator.userAgent.indexOf("Opera")!=-1
	this.mozilla=((navigator.userAgent.indexOf("Mozilla")!=-1)&&(navigator.userAgent.indexOf("Netscape")==-1))
	if(!this.opera)
	{
		this.ie=document.all
		var ms=navigator.appVersion.indexOf("MSIE")
		if(ms!=-1) this.ieVersion=parseFloat(navigator.appVersion.substring(ms+5,ms+8))
	}
	this.dateFrom=01
	this.monthFrom=00
	this.yearFrom=1900
	this.dateUpTo=31
	this.monthUpTo=11
	this.yearUpTo=2099
	this.oDate=null
	this.oMonth=null
	this.oYear=null
	this.countMonths=12
	this.today=null
	this.dayNow=0
	this.dateNow=0
	this.monthNow=0
	this.yearNow=0
	this.defaultX=0
	this.defaultY=0
	this.keepMonth=false
	this.keepYear=false
	this.bShow=false
	this.PopCalTimeOut=null
	this.PopCalDragClose=false
	this.HalfYearList=5
	this.HolidaysCounter=0
	this.Holidays=[]
	this.movePopCal=false
	this.commandExecute=null
	this.Object={initialized:0}
	this.initCalendar=new Function("PopCalInitCalendar("+_id+");")
	this.show=new Function("ctl","format","from","to","execute","PopCalShow(ctl,format,from,to,execute,"+_id+");")
	this.addHoliday=new Function("d","m","y","t","PopCalAddHoliday(d,m,y,t,"+_id+");")
	this.addIrregularHoliday=new Function("s","dw","m","t","PopCalAddIrregularHoliday(s,dw,m,t,"+_id+");")
	this.addSpecialDay=new Function("d","m","y","t","PopCalAddSpecialDay(d,m,y,t,"+_id+");")
	this.addIrregularSpecialDay=new Function("s","dw","m","t","PopCalAddIrregularSpecialDay(s,dw,m,t,"+_id+");")
	this.addRecurrenceSpecialDay=new Function("d","m","y","i","f","r","t","PopCalAddRecurrenceSpecialDay(d,m,y,i,f,r,t,"+_id+");")
	this.formatDate=new Function("dateValue","oldFormat","newFormat","return(PopCalFormatDate(dateValue,oldFormat,newFormat,"+_id+"));")
	this.addDays=new Function("dateValue","format","daysToAdd","return(PopCalAddDays(dateValue,format,daysToAdd,"+_id+"));")
	this.forcedToday=new Function("dateValue","format","PopCalForcedToday(dateValue,format,"+_id+");")
	this.getDate=new Function("dateValue","dateFormat","return(PopCalGetDate(dateValue,dateFormat,"+_id+"));")
	this.getWeekNumber=new Function("dateValue","return(PopCalGetWeekNumber1(dateValue,"+_id+"));")
	this.scroll=new Function("PopCalScroll("+_id+");")
	this.hide=new Function("PopCalHideCalendar("+_id+",true)")
	this.isGoodFriday=new Function("dateValue","return(PopCalIsGoodFriday(dateValue));")
	this.isCarnival=new Function("dateValue","return(PopCalIsCarnival(dateValue));")
}

function PopCalGetCalendarIndex(_name)
{
	for(var i=0;i<objPopCalList.length;i++)
	{
		if(objPopCalList[i].calendarName==_name)
		{
			return(i)
		}
	}
	return(objPopCalList.length)
}

function PopCalInitCalendar(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	if(PopCal)
	{
		if(PopCal.initialized==0)
		{
			if(!PopCalGetById("popupSuperYear"))
			{
				var sComponents=""
				if(objPopCal.ie)
				{
					sComponents+="<div id='CalendarLoadFilters' style='z-index:+100000;position:absolute;top:0px;left:0px;display:none;filter="+'"'+"alpha() blendTrans()"+'"'+"'></div>"
 					if(objPopCal.ieVersion>=5.5)
					{
						sComponents+="<iframe id='popupOverShadow' src='javascript:false;' scrolling=no frameborder=0 style='position:absolute;left:0px;top:0px;width:0px;height:0px;z-index:+10000;display:none;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);'></iframe>"
						sComponents+="<iframe id='popupOverCalendar' src='javascript:false;' scrolling=no frameborder=0 style='position:absolute;left:0px;top:0px;width:0px;height:0px;z-index:+10000;display:none;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);'></iframe>"
						sComponents+="<iframe id='popupOverYearMonth' src='javascript:false;' scrolling=no frameborder=0 style='position:absolute;left:0px;top:0px;width:0px;height:0px;z-index:+10000;display:none;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);'></iframe>"
					}
				}
				sComponents+="<div id='popupSuperShadowRight' style='z-index:+1000000;position:absolute;top:0px;left:0px;font-size:10px;width:10px;visibility:hidden;background-color:black;' onclick='PopCalCalendarVisible().bShow=true;'></div>"
				sComponents+="<div id='popupSuperShadowBottom' style='z-index:+1000000;position:absolute;top:0px;left:0px;font-size:10px;height:10px;visibility:hidden;background-color:black' onclick='PopCalCalendarVisible().bShow=true;'></div>"
				sComponents+="<div id='popupSuperMonth' style='z-index:+1000000;position:absolute;top:0px;left:0px;display:none;' onclick='PopCalCalendarVisible().bShow=true;'></div>"
				sComponents+="<div id='popupSuperYear' style='z-index:+1000000;position:absolute;top:0px;left:0px;display:none;' onclick='PopCalCalendarVisible().bShow=true;' onmousewheel='PopCalWheelYear(PopCalCalendarVisible().id)'></div>"
				PopCalWriteHTML(sComponents)
			}
			var _id=objPopCal.id
			PopCal.id=_id
			if((objPopCal.centuryLimit<0)||(objPopCal.centuryLimit>99))
			{
				objPopCal.centuryLimit=40
			}
			objPopCal.today=new Date()
			if(objPopCal.forceTodayTo)
			{
				if(objPopCal.forceTodayFormat==null)
				{
					objPopCal.forceTodayFormat=objPopCal.defaultFormat
				}
				if(PopCalSetDMY(objPopCal.forceTodayTo,objPopCal.forceTodayFormat,l))
				{
					objPopCal.today=new Date(objPopCal.oYear,objPopCal.oMonth,objPopCal.oDate)
				}
			}
			objPopCal.dayNow=objPopCal.today.getDay()
			objPopCal.dateNow=objPopCal.today.getDate()
			objPopCal.monthNow=objPopCal.today.getMonth()
			objPopCal.yearNow=objPopCal.today.getFullYear()
			objPopCal.monthConstructed=false
			objPopCal.yearConstructed=false
			var _leftButton=''
			var _rightButton=''
			if(objPopCal.lr==1)
			{
				_leftButton="<span id='popupSuperSpanLeft"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeLeft"+_id+"\",\"left2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='clearInterval(objPopCalList["+l+"].intervalID1);PopCalSwapImage(\"popupSuperChangeLeft"+_id+"\",\"left1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='PopCalDecMonth("+l+")' onmousedown='clearTimeout(objPopCalList["+l+"].timeoutID1);objPopCalList["+l+"].timeoutID1=setTimeout(\"PopCalStartDecMonth("+l+")\",100)' onmouseup='clearTimeout(objPopCalList["+l+"].timeoutID1);clearInterval(objPopCalList["+l+"].intervalID1)'>&nbsp;<img id='popupSuperChangeLeft"+_id+"' src='"+objPopCal.imgDir+"left1.gif' border='0' />&nbsp;</span>"
				_rightButton="<span id='popupSuperSpanRight"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeRight"+_id+"\",\"right2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='clearInterval(objPopCalList["+l+"].intervalID1);PopCalSwapImage(\"popupSuperChangeRight"+_id+"\",\"right1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='PopCalIncMonth("+l+")' onmousedown='clearTimeout(objPopCalList["+l+"].timeoutID1);objPopCalList["+l+"].timeoutID1=setTimeout(\"PopCalStartIncMonth("+l+")\",100)' onmouseup='clearTimeout(objPopCalList["+l+"].timeoutID1);clearInterval(objPopCalList["+l+"].intervalID1)'>&nbsp;<img id='popupSuperChangeRight"+_id+"' src='"+objPopCal.imgDir+"right1.gif' border='0' />&nbsp;</span>"
			}
			else
			{
				_leftButton="<span id='popupSuperSpanRight"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeRight"+_id+"\",\"right2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='clearInterval(objPopCalList["+l+"].intervalID1);PopCalSwapImage(\"popupSuperChangeRight"+_id+"\",\"right1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='PopCalDecMonth("+l+")' onmousedown='clearTimeout(objPopCalList["+l+"].timeoutID1);objPopCalList["+l+"].timeoutID1=setTimeout(\"PopCalStartDecMonth("+l+")\",100)' onmouseup='clearTimeout(objPopCalList["+l+"].timeoutID1);clearInterval(objPopCalList["+l+"].intervalID1)'>&nbsp;<img id='popupSuperChangeRight"+_id+"' src='"+objPopCal.imgDir+"right1.gif' border='0' />&nbsp;</span>"
				_rightButton="<span id='popupSuperSpanLeft"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeLeft"+_id+"\",\"left2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='clearInterval(objPopCalList["+l+"].intervalID1);PopCalSwapImage(\"popupSuperChangeLeft"+_id+"\",\"left1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='PopCalIncMonth("+l+")' onmousedown='clearTimeout(objPopCalList["+l+"].timeoutID1);objPopCalList["+l+"].timeoutID1=setTimeout(\"PopCalStartIncMonth("+l+")\",100)' onmouseup='clearTimeout(objPopCalList["+l+"].timeoutID1);clearInterval(objPopCalList["+l+"].intervalID1)'>&nbsp;<img id='popupSuperChangeLeft"+_id+"' src='"+objPopCal.imgDir+"left1.gif' border='0' />&nbsp;</span>"
			}
			var sCalendar="<div id='popupSuperCalendar"+_id+"' class='"+objPopCal.CssClass+"' oncontextmenu='return(false)' onclick='PopCalDownMonth("+l+");PopCalDownYear("+l+");objPopCalList["+l+"].bShow=true;' style='z-index:+100000;position:absolute;top:0px;left:0px;visibility:hidden;'>"
			sCalendar+="<table id='popupSuperHighLight"+_id+"' style='border:1px solid #a0a0a0;' cellspacing=1 cellpadding=0 ><tr><td style='cursor:default'>"
			sCalendar+="<div class='TitleStyle'><table width='100%'><tr>"
			sCalendar+="<td id='popupSuperCaption"+_id+"'></td>"
			sCalendar+="<td id='popupSuperMoveCalendar"+_id+"' align='center'></td>"
			sCalendar+="<td align='"+((objPopCal.lr==1)?"right":"left")+"' style='cursor:default'>"
			if((objPopCal.buttons==0)||(objPopCal.buttons==2))
			{
				sCalendar+="<span onclick='ImgCloseBoton"+_id+".src=\""+ objPopCal.imgDir+"close.gif\";objPopCalList["+l+"].PopCalTimeOut=window.setTimeout(\"window.clearTimeout(objPopCalList["+l+"].PopCalTimeOut);objPopCalList["+l+"].PopCalTimeOut=null;PopCalHideCalendar("+l+")\",100)'><img id='ImgCloseBoton"+_id+"' src='"+objPopCal.imgDir+"close.gif' onmouseover='if(objPopCalList["+l+"].PopCalDragClose){this.src=\""+ objPopCal.imgDir+"closedown.gif\"}' onmousedown='this.src=\""+ objPopCal.imgDir+"closedown.gif\"' onmouseup='this.src=\""+ objPopCal.imgDir+"close.gif\"' onmouseout='this.src=\""+ objPopCal.imgDir+"close.gif\"' ondrag='objPopCalList["+l+"].PopCalDragClose=true;return(false)' class='CloseButtonStyle' /></span>"
			}
			else
			{
				sCalendar+=_rightButton
			}
			sCalendar+="</td></tr></table></div>"
			sCalendar+="</td></tr>"
			sCalendar+="<tr><td align='center' style='padding:5px;'>"
			sCalendar+="<div id='popupSuperContent"+_id+"' style='white-space:nowrap;'></div>"
			sCalendar+="</td></tr>"
			if(objPopCal.showToday==1)
			{
				sCalendar+="<tr><td style='padding:5px;' class='TodayStyle' align='center'>"
				sCalendar+="<div style='white-space:nowrap;' class='TextStyle' onclick='PopCalChangeCurrentMonth("+l+");'>"+objPopCal.todayString+"</div>"
				sCalendar+="</td></tr>"
			}
			if((objPopCal.BlankFieldText!="")&&(typeof(__PopCalSelectNone)=="function"))
			{
				sCalendar+="<tr><td style='padding:1px;' class='TodayStyle' align='center'>"
				sCalendar+="<div style='white-space:nowrap' class='TextStyle' onclick='__PopCalSelectNone("+l+");'>"+objPopCal.BlankFieldText+"</div>"
				sCalendar+="</td></tr>"
			}
			sCalendar+="</table></div>"
			PopCalWriteHTML(sCalendar)
			var sHTML="<nobr>"
			if(objPopCal.buttons!=2)
			{
				sHTML+=_leftButton+((objPopCal.buttons!=3)?"&nbsp;":"")
			}
			if(objPopCal.buttons==0)
			{
				sHTML+=_rightButton
			}
			if(objPopCal.buttons==3)
			{
				sHTML+="<span id='popupSuperSpanMonth"+_id+"' ondrag='return(false)' style='display:none;'></span>"
				sHTML+="<span id='popupSuperSpanYear"+_id+"' ondrag='return(false)' style='display:none;'></span>"
			}
			else
			{
				sHTML+="&nbsp;<span id='popupSuperSpanMonth"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeMonth"+_id+"\",\"drop2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='PopCalSwapImage(\"popupSuperChangeMonth"+_id+"\",\"drop1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='objPopCalList["+l+"].keepMonth=!PopCalIsObjectVisible(objPopCalList["+l+"].Object.popupSuperMonth);PopCalUpMonth("+l+")'></span>&nbsp;"
				if(objPopCal.buttons!=0)
				{
					sHTML+="&nbsp;"
				}
				sHTML+="<span id='popupSuperSpanYear"+_id+"' class='DropDownStyle' ondrag='return(false)' onmouseover='PopCalSwapImage(\"popupSuperChangeYear"+_id+"\",\"drop2.gif\","+l+");this.className=\"DropDownOverStyle\";' onmouseout='PopCalSwapImage(\"popupSuperChangeYear"+_id+"\",\"drop1.gif\","+l+");this.className=\"DropDownOutStyle\";window.status=\"\"' onclick='objPopCalList["+l+"].keepYear=!PopCalIsObjectVisible(objPopCalList["+l+"].Object.popupSuperYear);PopCalUpYear("+l+")' onmousewheel='PopCalWheelYear("+l+")'></span>&nbsp;"
			}
			sHTML+="</nobr>"
			PopCalGetById("popupSuperCaption"+_id).innerHTML=sHTML
			PopCalGetById("popupSuperCaption"+_id).dropDown=(objPopCal.buttons!=3)
			if(objPopCal.ie)
			{
				if(objPopCal.move==1)
				{
					var superMoveCalendar=PopCalGetById("popupSuperMoveCalendar"+_id)
					superMoveCalendar.width="100%"
					superMoveCalendar.onmousedown=new Function("PopCalDrag("+l+")")
					superMoveCalendar.ondblclick=new Function("PopCalMoveDefault("+l+")")
					superMoveCalendar.onmouseup=new Function("PopCalDrop("+l+")")
				}
			}
			else
			{
				objPopCal.keepInside=0
			}
			PopCal.startAt=objPopCal.startAt
			PopCal.clientValidator=objPopCal.clientValidator
			PopCal.showWeekNumber=objPopCal.showWeekNumber
			PopCal.weekNumberFormula=objPopCal.weekNumberFormula
			PopCal.showToday=objPopCal.showToday
			PopCal.showWeekend=objPopCal.showWeekend
			PopCal.showHolidays=objPopCal.showHolidays
			PopCal.showSpecialDay=objPopCal.showSpecialDay
			PopCal.selectWeekend=objPopCal.selectWeekend
			PopCal.selectHoliday=objPopCal.selectHoliday
			PopCal.addCarnival=objPopCal.addCarnival
			PopCal.addGoodFriday=objPopCal.addGoodFriday
			PopCal.defaultFormat=objPopCal.defaultFormat
			PopCal.fixedX=objPopCal.fixedX
			PopCal.fixedY=objPopCal.fixedY
			PopCal.fade=objPopCal.fade
			PopCal.shadow=objPopCal.shadow
			PopCal.centuryLimit=objPopCal.centuryLimit
			PopCal.move=objPopCal.move
			PopCal.saveMovePos=objPopCal.saveMovePos
			PopCal.keepInside=objPopCal.keepInside
			PopCal.saveKeepInside=objPopCal.keepInside
			PopCal.popupSuperCalendar=PopCalGetById("popupSuperCalendar"+_id)
			PopCal.popupSuperShadowRight=PopCalGetById("popupSuperShadowRight")
			PopCal.popupSuperShadowBottom=PopCalGetById("popupSuperShadowBottom")
			PopCal.popupSuperMonth=PopCalGetById("popupSuperMonth")
			PopCal.popupSuperYear=PopCalGetById("popupSuperYear")
			PopCal.popupSuperYearList=[]
			PopCal.popupSuperCalendar.OverSelect=PopCalGetById("popupOverCalendar")
			PopCal.popupSuperMonth.OverSelect=PopCalGetById("popupOverYearMonth")
			PopCal.popupSuperYear.OverSelect=PopCalGetById("popupOverYearMonth")
			if(objPopCal.ie)
			{
				if(PopCal.shadow==1)
				{
					PopCal.popupSuperCalendar.ShadowOverSelect=PopCalGetById("popupOverShadow")
					PopCal.popupSuperCalendar.lr=objPopCal.lr
				}
				PopCal.popupSuperCalendar.style.filter="blendTrans()"
				PopCal.popupSuperShadowRight.style.filter="alpha(opacity=50)"
				PopCal.popupSuperShadowBottom.style.filter="alpha(opacity=50)"
				if((objPopCal.ieVersion<5.5)||(typeof(PopCalGetById("CalendarLoadFilters").filters)!="object"))
				{
					PopCal.fade=0
				}
			}
			else
			{
				PopCal.popupSuperShadowRight.style.MozOpacity=.5
				PopCal.popupSuperShadowBottom.style.MozOpacity=.5
				if(typeof(PopCal.popupSuperCalendar.style.MozOpacity)!='string')
				{
					PopCal.fade=0
				}
			}
			if(PopCal.fade<0) PopCal.fade=0
			if(PopCal.fade>1) PopCal.fade=1
			if(objPopCal.lr==1)
			{
				PopCal.popupSuperCalendar.dir="ltr"
				PopCal.popupSuperMonth.dir="ltr"
				PopCal.popupSuperYear.dir="ltr"
			}
			else
			{
				PopCal.popupSuperCalendar.dir="rtl"
				PopCal.popupSuperMonth.dir="rtl"
				PopCal.popupSuperYear.dir="rtl"
			}
			PopCal.initialized=1
		}
	}
}

function PopCalRightToLeft()
{
	var _obj=document.getElementsByTagName("BODY")
	if(_obj.length>=1)
	{
		if(_obj[0].dir.toLowerCase()=="rtl") return(true)
		if(_obj[0].dir!="") return(false)
	}
	_obj=document.getElementsByTagName("HTML")
	if(_obj.length>=1)
	{
		if(_obj[0].dir.toLowerCase()=="rtl") return(true)
	}
	return(false)
}

function PopCalCalendarVisible()
{
	for(var i=0;i<objPopCalList.length;i++)
	{
		if(objPopCalList[i].Object.popupSuperCalendar.style.visibility!="hidden")
		{
			return(objPopCalList[i])
		}
	}
	return(null)
}

function PopCalSetFocus(ctl)
{
	try
	{
		ctl.focus()
	}
	catch(e)
	{
		//Nothing
	}
}

function PopCalWriteHTML(sHTML)
{
	if(document.body)
	{
		if(document.body.insertAdjacentHTML)
		{
			document.body.insertAdjacentHTML("afterBegin",sHTML)
		}
		else
		{
			document.write(sHTML)
		}
	}
	else
	{
		document.write(sHTML)
	}
}

function PopCalSetPosition(o,t,l,h,w)
{
	if(t) o.style.top=t+'px'
	if(l) o.style.left=l+'px'
	if(h) o.style.height=h+'px'
	if(w) o.style.width=w+'px'
	if(o.ShadowOverSelect)
	{
		o.ShadowOverSelect.style.top=(parseInt(o.style.top,10)+10)+'px'
		if(o.lr==1)
		{
			o.ShadowOverSelect.style.left=(parseInt(o.style.left,10)+10)+'px'
		}
		else
		{
			o.ShadowOverSelect.style.left=(parseInt(o.style.left,10)-10)+'px'
		}
		o.ShadowOverSelect.style.height=(o.offsetHeight+3)+'px'
		o.ShadowOverSelect.style.width=(o.offsetWidth)+'px'
	}
	if(o.OverSelect)
	{
		o.OverSelect.style.top=(parseInt(o.style.top,10))+'px'
		o.OverSelect.style.left=(parseInt(o.style.left,10))+'px'
		o.OverSelect.style.height=(o.offsetHeight)+'px'
		o.OverSelect.style.width=(o.offsetWidth)+'px'
	}
}

function PopCalShow(ctl,format,from,to,execute,l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	if(PopCal)
	{
		if(PopCal.initialized==1)
		{
			if(document.body)
			{
				PopCalSetFocus(document.body)
			}
			objPopCal.movePopCal=false
			if(objPopCal.timeoutID3)
			{
				clearTimeout(objPopCal.timeoutID3)
				objPopCal.timeoutID3=null
			}
			var objPopCalVisible=PopCalCalendarVisible()
			if(objPopCalVisible==null)
			{
				objPopCal.commandExecute=null
				if(execute)
				{
					objPopCal.commandExecute=execute
				}
				if(objPopCal.ie)
				{
					objPopCal.onKeyPress=document.onkeyup
					document.onkeyup=new Function("objPopCalList["+l+"].bShow=false;PopCalSetFocus(objPopCalList["+l+"].ctl);PopCalClickDocumentBody("+l+");")
					objPopCal.onmouseup=document.onmouseup
					document.onmouseup=new Function("objPopCalList["+l+"].movePopCal=false;if(event.button==2){objPopCalList["+l+"].bShow=false;PopCalClickDocumentBody("+l+");}")
					if(PopCal.move==1)
					{
						objPopCal.onmousemove=document.onmousemove
						document.onmousemove=new Function('PopCalTrackMouse('+l+');')
					}
					objPopCal.onresize=window.onresize
					window.onresize=new Function('PopCalScroll('+l+');')
					if(PopCal.keepInside==1)
					{
						objPopCal.onscroll=window.onscroll
						window.onscroll=new Function('PopCalScroll('+l+');')
					}
				}
				else
				{
					objPopCal.onKeyPress=document.onkeyup
					document.captureEvents(Event.KEYUP)
					document.onkeyup=new Function("objPopCalList["+l+"].bShow=false;PopCalClickDocumentBody("+l+");PopCalSetFocus(objPopCalList["+l+"].ctl);")
				}
				objPopCal.onClick=document.onclick
				document.onclick=new Function('PopCalClickDocumentBody('+l+');')
				if(objPopCal.ie)
				{
					objPopCal.onSelectStart=document.onselectstart
					document.onselectstart=new Function('return(false);')
					objPopCal.onContextMenu=document.oncontextmenu
					document.oncontextmenu=new Function('return(false);')
				}
				objPopCal.yearConstructed=false
				objPopCal.monthConstructed=false
				objPopCal.ctl=ctl
				PopCalSetScroll("Div",l,false)
				objPopCal.dateFormat=""
				if(format)
				{
					objPopCal.dateFormat=format.toLowerCase()
				}
				else if(PopCal.defaultFormat)
				{
					objPopCal.dateFormat=PopCal.defaultFormat.toLowerCase()
				}
				objPopCal.dateFrom=01
				objPopCal.monthFrom=00
				objPopCal.yearFrom=1900
				objPopCal.dateUpTo=31
				objPopCal.monthUpTo=11
				objPopCal.yearUpTo=2099
				objPopCal.dateSelected=0
				objPopCal.monthSelected=objPopCal.monthNow
				objPopCal.yearSelected=objPopCal.yearNow
				if(PopCalSetDMY(ctl.value,objPopCal.dateFormat,l))
				{
					objPopCal.dateSelected=objPopCal.oDate
					objPopCal.monthSelected=objPopCal.oMonth
					objPopCal.yearSelected=objPopCal.oYear
				}
				if(from)
				{
					if(PopCalIsToday(from))
					{
						objPopCal.dateFrom=objPopCal.today.getDate()
						objPopCal.monthFrom=objPopCal.today.getMonth()
						objPopCal.yearFrom=objPopCal.today.getFullYear()
					}
					else if(PopCalSetDMY(from,objPopCal.dateFormat,l))
					{
						objPopCal.dateFrom=objPopCal.oDate
						objPopCal.monthFrom=objPopCal.oMonth
						objPopCal.yearFrom=objPopCal.oYear
					}
				}
				if(to)
				{
					if(PopCalIsToday(to))
					{
						objPopCal.dateUpTo=objPopCal.today.getDate()
						objPopCal.monthUpTo=objPopCal.today.getMonth()
						objPopCal.yearUpTo=objPopCal.today.getFullYear()
					}
					else if(PopCalSetDMY(to,objPopCal.dateFormat,l))
					{
						objPopCal.dateUpTo=objPopCal.oDate
						objPopCal.monthUpTo=objPopCal.oMonth
						objPopCal.yearUpTo=objPopCal.oYear
					}
				}
				if(!PopCalCenturyOn(objPopCal.dateFormat))
				{
					if(PopCalDateFrom(l)<PopCalPad(1900+objPopCal.centuryLimit,4,"0","L")+"0001")
					{
						objPopCal.dateFrom=01
						objPopCal.monthFrom=00
						objPopCal.yearFrom=1900+objPopCal.centuryLimit
					}
					if(PopCalDateUpTo(l)>PopCalPad(2000+(objPopCal.centuryLimit-1),4,"0","L")+"1131")
					{
						objPopCal.dateUpTo=31
						objPopCal.monthUpTo=11
						objPopCal.yearUpTo=2000+(objPopCal.centuryLimit-1)
					}
				}
				if(PopCalDateFrom(l)>PopCalDateUpTo(l))
				{
					objPopCal.oDate=objPopCal.dateFrom
					objPopCal.oMonth=objPopCal.monthFrom
					objPopCal.oYear=objPopCal.yearFrom
					objPopCal.dateFrom=objPopCal.dateUpTo
					objPopCal.monthFrom=objPopCal.monthUpTo
					objPopCal.yearFrom=objPopCal.yearUpTo
					objPopCal.dateUpTo=objPopCal.oDate
					objPopCal.monthUpTo=objPopCal.oMonth
					objPopCal.yearUpTo=objPopCal.oYear
				}
				if(PopCalDateSelect(l)<PopCalDateFrom(l))
				{
					objPopCal.dateSelected=0
					objPopCal.monthSelected=objPopCal.monthFrom
					objPopCal.yearSelected=objPopCal.yearFrom
				}
				if(PopCalDateSelect(l)>PopCalDateUpTo(l))
				{
					objPopCal.dateSelected=0
					objPopCal.monthSelected=objPopCal.monthUpTo
					objPopCal.yearSelected=objPopCal.yearUpTo
				}
				objPopCal.odateSelected=objPopCal.dateSelected
				objPopCal.omonthSelected=objPopCal.monthSelected
				objPopCal.oyearSelected=objPopCal.yearSelected
				PopCalMoveDefaultPos(l)
				if(objPopCal.ie)
				{
					if((PopCal.move==1)&&(PopCal.saveMovePos==1))
					{
						if(objPopCal.ctl)
						{
							if(objPopCal.ctl.CalendarTop)
							{
								PopCalSetPosition(PopCal.popupSuperCalendar,objPopCal.ctl.CalendarTop)
							}
							if(objPopCal.ctl.CalendarLeft)
							{
								PopCalSetPosition(PopCal.popupSuperCalendar,null,objPopCal.ctl.CalendarLeft)
							}
						}
					}
				}
				PopCalConstructCalendar(l)
				PopCalFadeIn(l)
				PopCalScroll(l)
				objPopCal.bShow=true
			}
			else
			{
				objPopCalVisible.executeFade=(objPopCalVisible.ctlNow==ctl)
				objPopCal.executeFade=(objPopCalVisible.ctlNow==ctl)
				PopCalHideCalendar(objPopCalVisible.id)
				if(objPopCalVisible.ctl)
				{
					objPopCalVisible.ctl=null
				}
				if(objPopCal!=objPopCalVisible)
				{
					objPopCal.ctlNow=null
				}
				if(objPopCal.ctlNow!=ctl)
				{
					PopCalShow(ctl,format,from,to,execute,objPopCal.id)
				}
				objPopCal.executeFade=true
				objPopCalVisible.executeFade=true
			}
			objPopCal.ctlNow=ctl
		}
	}
}

function PopCalAddDays(dateValue,format,daysToAdd,l)
{
	var objPopCal=objPopCalList[l]
	if((dateValue)&&(dateValue!=""))
	{
		var sDateFormat=((format==null)?objPopCal.Object.defaultFormat.toLowerCase():format.toLowerCase())
		var incDays=((daysToAdd==null)?0:daysToAdd*86400000)
		var dFecha=null
		if(PopCalIsToday(dateValue))
		{
			dFecha=new Date(objPopCal.today-(-incDays))
		}
		else if(PopCalSetDMY(dateValue,sDateFormat,l))
		{
			dFecha=new Date(PopCalGetDate(dateValue,sDateFormat,l)-(-incDays))
		}
		if(dFecha) return(PopCalConstructDate(dFecha.getDate(),dFecha.getMonth(),dFecha.getFullYear(),sDateFormat,l))
	}
	return("")
}

function PopCalScroll(l)
{
	var objPopCal=objPopCalList[l]
	var objCal=objPopCal.Object.popupSuperCalendar
	var obj=objCal.OverSelect
	if(obj)
	{
		obj.style.visibility='hidden'
		obj.style.visibility='visible'
	}
	obj=objCal.ShadowOverSelect
	if(obj)
	{
		obj.style.visibility='hidden'
		obj.style.visibility='visible'
	}
	if(objCal.style.visibility!="hidden")
	{
		if((objPopCal.ctl.CalendarTop==null)&&(objPopCal.ctl.CalendarLeft==null))
		{
			PopCalDownMonth(l)
			PopCalDownYear(l)
			PopCalMoveDefault(l)
		}
	}
}

function PopCalMoveDefaultPos(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var leftpos=0
	var toppos=0
	var lDivTop=-1
	var objCal=PopCal.popupSuperCalendar
	var mTop=0
	var mLeft=0
	var mRight=0
	var mBottom=0
	var KeepInside=true
	if(((PopCal.fixedX==-1)&&(PopCal.fixedY==-1)&&(objPopCal.ctl.style.display!='none'))||(objPopCal.ControlAlignLeft))
	{
		var aTag=null
		if((objPopCal.lr==0)&&(objPopCal.ControlAlignLeft==null))
		{
			objPopCal.ControlAlignLeft=objPopCal.ctl
		}
		if(objPopCal.ControlAlignLeft)
		{
			aTag=objPopCal.ControlAlignLeft
		}
		else
		{
			aTag=objPopCal.ctl
		}
		if(aTag.style.position.toLowerCase()!='absolute')
		{
			if(document.body)
			{
				if(document.body.offsetTop!=0)
				{
					KeepInside=false
					if(document.body.currentStyle)
					{
						if(document.body.currentStyle.marginTop) mTop=parseInt(document.body.currentStyle.marginTop,10)
						if(document.body.currentStyle.marginLeft) mLeft=parseInt(document.body.currentStyle.marginLeft,10)
						if(document.body.currentStyle.marginRight) mRight=parseInt(document.body.currentStyle.marginRight,10)
						if(document.body.currentStyle.marginBottom) mBottom=document.body.currentStyle.marginBottom
					}
				}
			}
		}
		leftpos+=aTag.offsetLeft
		toppos+=aTag.offsetTop
		aTag=aTag.offsetParent
		while((aTag.tagName!="BODY")&&(aTag.tagName!="HTML"))
		{
			leftpos+=aTag.offsetLeft
			toppos+=aTag.offsetTop
			if(aTag.tagName=="DIV")
			{
				if(lDivTop==-1)
				{
					lDivTop+=(1+aTag.offsetTop)
				}
				leftpos-=aTag.scrollLeft
				toppos-=aTag.scrollTop
			}
			else if(lDivTop!=-1)
			{
				lDivTop+=aTag.offsetTop
			}
			aTag=aTag.offsetParent
		}
	}
	else
	{
		var aTag=document.body
	}
	if(objPopCal.ControlAlignLeft)
	{
		leftpos+=objPopCal.ControlAlignLeft.offsetWidth-objCal.offsetWidth
		toppos+=objPopCal.ControlAlignLeft.offsetHeight+7
	}
	else
	{
		leftpos=PopCal.fixedX==-1?leftpos:PopCal.fixedX
		toppos=PopCal.fixedY==-1?toppos+objPopCal.ctl.offsetHeight+7:PopCal.fixedY
	}
	leftpos+=mLeft
	toppos+=mTop
	if(objPopCal.ie)
	{
		if(PopCalRightToLeft())
		{
			PopCal.keepInside=0
		}
		else
		{
			PopCal.keepInside=PopCal.saveKeepInside
		}
	}
	if((PopCal.keepInside==1)&&(KeepInside))
	{
		if(((leftpos+objCal.offsetWidth+10+((PopCal.shadow==1)?25:15))-aTag.scrollLeft)>(mLeft+aTag.offsetWidth+mRight))
		{
			leftpos-=(((((leftpos+objCal.offsetWidth)-(mLeft+aTag.offsetWidth+mRight))+10)-aTag.scrollLeft)+((PopCal.shadow==1)?25:15))
		}
		if(leftpos<aTag.scrollLeft+10)
		{
			leftpos=aTag.scrollLeft+10
		}
		if(toppos<lDivTop)
		{
			toppos=lDivTop
		}
		if(((toppos+objCal.offsetHeight+85)-aTag.scrollTop)>(mTop+aTag.offsetHeight+mBottom))
		{
			toppos-=((((toppos+objCal.offsetHeight)-(mTop+aTag.offsetHeight+mBottom))+75)-aTag.scrollTop)
		}
		if(toppos<aTag.scrollTop+10)
		{
			toppos=aTag.scrollTop+10
		}
		if(leftpos<10)
		{
			leftpos=10
		}
	}
	PopCalSetPosition(objCal,toppos,leftpos)
}

function PopCalMoveDefault(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	PopCalMoveDefaultPos(l)
	PopCalMoveShadow(l)
	if(PopCal.saveMovePos==1)
	{
		if(objPopCal.ctl)
		{
			objPopCal.ctl.CalendarLeft=null
			objPopCal.ctl.CalendarTop=null
		}
	}
	objPopCal.bShow=false
}

function PopCalDrag(l)
{
	var objPopCal=objPopCalList[l]
	if((!objPopCal.movePopCal)&&(event.button==1))
	{
		var PopCal=objPopCal.Object
		var ex=event.clientX+document.body.scrollLeft
		var ey=event.clientY+document.body.scrollTop
		PopCalGetById("popupSuperHighLight"+PopCal.id).style.borderColor="red"
		var obj=PopCal.popupSuperCalendar
		obj.style.xoff=parseInt(obj.style.left,10)-ex
		obj.style.yoff=parseInt(obj.style.top,10)-ey
		PopCalDownMonth(l)
		PopCalDownYear(l)
		objPopCal.movePopCal=true
	}
	objPopCal.bShow=true
}

function PopCalTrackMouse(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var obj=PopCal.popupSuperCalendar
	if(objPopCal.movePopCal)
	{
		if(event.button!=1)
		{
			PopCalDrop(l)
			objPopCal.bShow=true
			return
		}
		var x=event.clientX+document.body.scrollLeft
		var y=event.clientY+document.body.scrollTop
		var lLeft=(obj.style.xoff+x)
		var lTop=(obj.style.yoff+y)
		if((parseInt(obj.style.left,10)!=parseInt(lLeft,10))||(parseInt(obj.style.top,10)!=parseInt(lTop,10)))
		{
			PopCalSetPosition(obj,lTop,lLeft)
			x=event.clientX+document.body.scrollLeft
			y=event.clientY+document.body.scrollTop
			PopCalMoveShadow(l)
			if(PopCal.saveMovePos==1)
			{
				if(objPopCal.ctl)
				{
					objPopCal.ctl.CalendarLeft=parseInt(obj.style.left,10)
					objPopCal.ctl.CalendarTop=parseInt(obj.style.top,10)
				}
			}
		}
		objPopCal.bShow=true
	}
}

function PopCalDrop(l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.bShow=true
	objPopCal.movePopCal=false
	PopCalGetById("popupSuperHighLight"+objPopCal.id).style.borderColor="#a0a0a0"
}

function PopCalValidateType1(_date,_Type1)
{
	if(parseInt(_Type1.d,10)==_date.getDate())
	{
		if((parseInt(_Type1.m,10)==0)||((parseInt(_Type1.m,10)==(_date.getMonth()+1))&&(parseInt(_Type1.m,10)!=0)))
		{
			if((parseInt(_Type1.y,10)==0)||((parseInt(_Type1.y,10)==_date.getFullYear())&&(parseInt(_Type1.y,10)!=0)))
			{
				return(true)
			}
		}
	}
	return(false)
}

function PopCalHolidayRec1(d,m,y,t,tipo)
{
	this.d=d
	this.m=m
	this.y=y
	this.desc=t
	this.tipo=tipo
	this.type="Type 1"
}

function PopCalValidateType2(_date,_Type2)
{
	var _NewDate
	if((_date.getDay()==_Type2.dw)&&((_date.getMonth()==(_Type2.m-1))||(_Type2.m==0)))
	{
		if(_Type2.s==0)
		{
			return(true)
		}
		else if(_Type2.s==-1)
		{
			_NewDate=new Date(_date-(-86400000*7))
			if(_date.getMonth()!=_NewDate.getMonth())
			{
				return(true)
			}
		}
		else
		{
			for(var i=1;i<=5;i++)
			{
				_NewDate=new Date(_date-(86400000*7*i))
				if(_date.getMonth()!=_NewDate.getMonth())
				{
					break
				}
			}
			if(i==_Type2.s)
			{
				return(true)
			}
		}
	}
	return(false)
}

function PopCalHolidayRec2(s,dw,m,t,tipo)
{
	this.s=s
	this.dw=dw
	this.m=m
	this.desc=t
	this.tipo=tipo
	this.type="Type 2"
}

function PopCalValidateType3(_date,_Type3)
{
	var BeginDate=new Date(_Type3.y,_Type3.m-1,_Type3.d)
	if(BeginDate<=_date)
	{
		var Interval=_Type3.i*(((_Type3.f==1)?7:1)*86400000)
		if((((_date-BeginDate)%Interval)==0))
		{
			if(_Type3.r==0)
			{
				return(true)
			}
			else
			{
				return(((_date-BeginDate) / Interval)<_Type3.r)
			}
		}
	}
	return(false)
}

function PopCalHolidayRec3(d,m,y,i,f,r,t,tipo)
{
	this.d=d
	this.m=m
	this.y=y
	this.i=i
	this.f=f
	this.r=r
	this.desc=t
	this.tipo=tipo
	this.type="Type 3"
}

function PopCalAddHoliday(d,m,y,t,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.Holidays[objPopCal.HolidaysCounter++]=new PopCalHolidayRec1(d,m,y,t,1)
}

function PopCalAddSpecialDay(d,m,y,t,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.Holidays[objPopCal.HolidaysCounter++]=new PopCalHolidayRec1(d,m,y,t,0)
}

function PopCalAddIrregularHoliday(s,dw,m,t,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.Holidays[objPopCal.HolidaysCounter++]=new PopCalHolidayRec2(s,dw,m,t,1)
}

function PopCalAddIrregularSpecialDay(s,dw,m,t,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.Holidays[objPopCal.HolidaysCounter++]=new PopCalHolidayRec2(s,dw,m,t,0)
}

function PopCalAddRecurrenceSpecialDay(d,m,y,i,f,r,t,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.Holidays[objPopCal.HolidaysCounter++]=new PopCalHolidayRec3(d,m,y,i,f,r,t,0)
}

function PopCalFormatDate(dateValue,oldFormat,newFormat,l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var newValue=""
	if(PopCal)
	{
		var formatOld=PopCal.defaultFormat
		if(oldFormat)
		{
			formatOld=oldFormat
		}
		var formatNew=PopCal.defaultFormat
		if(newFormat)
		{
			formatNew=newFormat
		}
		if(PopCalIsToday(dateValue))
		{
			newValue=PopCalConstructDate(objPopCal.today.getDate(),objPopCal.today.getMonth(),objPopCal.today.getFullYear(),formatNew,l)
		}
		else if(PopCalSetDMY(dateValue,formatOld,l))
		{
			var _Date=new Date(objPopCal.oYear,objPopCal.oMonth,objPopCal.oDate)
			if((_Date.getDate()==objPopCal.oDate)&&(_Date.getMonth()==objPopCal.oMonth)&&(_Date.getFullYear()==objPopCal.oYear))
			{
				newValue=PopCalConstructDate(objPopCal.oDate,objPopCal.oMonth,objPopCal.oYear,formatNew,l)
			}
		}
	}
	return(newValue)
}

function PopCalForcedToday(dateValue,format,l)
{
	var objPopCal=objPopCalList[l]
	if(objPopCal.Object)
	{
		objPopCal.forceTodayTo=dateValue
		objPopCal.forceTodayFormat=format
	}
}

function PopCalSetScroll(elmID,l,restore)
{
	var objPopCal=objPopCalList[l]
	if(objPopCal.ie)
	{
		if(objPopCal.ctl)
		{
			if(PopCalIsObjectVisible(objPopCal.ctl))
			{
				var objParent=objPopCal.ctl.offsetParent
				while((objParent)&&(objParent.tagName!="BODY")&&(objParent.tagName!="HTML"))
				{
					if(objParent.tagName.toLowerCase()==elmID.toLowerCase())
					{
						if(restore)
						{
							objParent.onscroll=null
							if(objParent.savedScroll) objParent.onscroll=objParent.savedScroll
							objParent.savedScroll=null
						}
						else
						{
							objParent.savedScroll=objParent.onscroll
							objParent.onscroll=new Function("PopCalScroll("+l+");")
						}
					}
					objParent=objParent.offsetParent
				}
			}
		}
	}
}

function PopCalSwapImage(srcImg,destImg,l)
{
	var objPopCal=objPopCalList[l]
	PopCalGetById(srcImg).src=objPopCal.imgDir+destImg
}

function PopCalHideCalendar(l,HideNow)
{
	var objPopCal=objPopCalList[l]
	if(!objPopCal)
	{
		objPopCal=null
		return(false)
	}
	var PopCal=objPopCal.Object
	if(PopCal.popupSuperCalendar.style.visibility!="hidden")
	{
		PopCalSetScroll("Div",l,true)
		if(objPopCal.ie)
		{
			document.onkeyup=objPopCal.onKeyPress
		}
		else
		{
			document.releaseEvents(Event.KEYUP)
			document.onkeyup=objPopCal.onKeyPress
		}
		document.onclick=objPopCal.onClick
		if(objPopCal.ie)
		{
			document.onselectstart=objPopCal.onSelectStart
			document.oncontextmenu=objPopCal.onContextMenu
		}
		if(objPopCal.ie)
		{
			if(PopCal.move==1)
			{
				document.onmousemove=objPopCal.onmousemove
			}
			document.onmouseup=objPopCal.onmouseup
			window.onresize=objPopCal.onresize
			if(PopCal.keepInside==1)
			{
				window.onscroll=objPopCal.onscroll
			}
		}
		objPopCal.onKeyPress=null
		objPopCal.onClick=null
		objPopCal.onSelectStart=null
		objPopCal.onContextMenu=null
		objPopCal.onmousemove=null
		objPopCal.onmouseup=null
		objPopCal.onresize=null
		objPopCal.onscroll=null
		if(PopCal.popupSuperMonth)
		{
			PopCal.popupSuperMonth.style.display="none"
			if(PopCal.popupSuperMonth.OverSelect)
			{
				PopCal.popupSuperMonth.OverSelect.style.display="none"
				PopCal.popupSuperMonth.OverSelect.style.height='1px'
				PopCal.popupSuperMonth.OverSelect.style.width='1px'
			}
		}
		if(PopCal.popupSuperYear)
		{
			PopCal.popupSuperYear.style.display="none"
			if(PopCal.popupSuperYear.OverSelect)
			{
				PopCal.popupSuperYear.OverSelect.style.display="none"
				PopCal.popupSuperYear.OverSelect.style.height='1px'
				PopCal.popupSuperYear.OverSelect.style.width='1px'
			}
		}
		PopCalFadeOut(l,HideNow)
		if(!objPopCal)
		{
			objPopCal=null
			return(false)
		}
	}
}

function PopCalMozFadeIn(l)
{
	var objCal=objPopCalList[l].Object.popupSuperCalendar
	if((parseFloat(objCal.style.MozOpacity)+objCal.Opacity)>=.99)
	{
		objCal.style.MozOpacity=.99
		clearInterval(objCal.MozFadeInInterval)
		objCal.MozFadeInInterval=null
	}
	else
	{
		objCal.style.MozOpacity=(parseFloat(objCal.style.MozOpacity)+objCal.Opacity)
	}
}

function PopCalFadeIn(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var objCal=PopCal.popupSuperCalendar
	var objShdR=PopCal.popupSuperShadowRight
	var objShdB=PopCal.popupSuperShadowBottom
	var objOver=objCal.OverSelect
	var objOverShadow=objCal.ShadowOverSelect
	if(objCal.MozFadeOutInterval)
	{
		clearInterval(objCal.MozFadeOutInterval)
		objCal.MozFadeOutInterval=null
	}
	if((PopCal.fade>0)&&(objPopCal.executeFade))
	{
		if(objPopCal.ie)
		{
			objCal.filters.blendTrans.Stop()
			objCal.style.filter="blendTrans(duration="+PopCal.fade+")"
			if((objCal.style.visibility!="visible")&&(objCal.filters.blendTrans.status!=2))
			{
				if(PopCal.shadow==1)
				{
					objShdR.style.filter="alpha(opacity=50)"
					objShdB.style.filter="alpha(opacity=50)"
				}
				objCal.filters.blendTrans.Apply()
				objCal.style.visibility="visible"
				objCal.filters.blendTrans.Play()
				if(PopCal.shadow==1)
				{
					objShdR.style.visibility="visible"
					objShdB.style.visibility="visible"
				}
			}
			else
			{
				if(PopCal.shadow==1)
				{
					objShdR.style.visibility="visible"
					objShdB.style.visibility="visible"
				}
				objCal.style.visibility="visible"
			}
		}
		else
		{
			if(PopCal.shadow==1)
			{
				objShdR.style.display="none"
				objShdR.style.visibility="visible"
				objShdR.style.MozOpacity=.5
				objShdR.style.display=""
				objShdB.style.display="none"
				objShdB.style.visibility="visible"
				objShdB.style.MozOpacity=.5
				objShdB.style.display=""
			}
			objCal.style.display="none"
			objCal.style.visibility="visible"
			objCal.style.display=""
			if(!objCal.MozFadeInInterval)
			{
				objCal.Opacity=(1/(PopCal.fade*10))
				objCal.style.MozOpacity=0
				objCal.MozFadeInInterval=setInterval("PopCalMozFadeIn("+l+")", 50)
			}
			else
			{
				clearInterval(objCal.MozFadeInInterval)
				objCal.MozFadeInInterval=null
				objCal.style.MozOpacity=.99
			}
		}
	}
	else
	{
		if(PopCal.shadow==1)
		{
			objShdR.style.visibility="visible"
			objShdR.style.filter="alpha(opacity=50)"
			objShdR.style.MozOpacity=.5
			objShdB.style.visibility="visible"
			objShdB.style.filter="alpha(opacity=50)"
			objShdB.style.MozOpacity=.5
		}
		objCal.style.visibility="visible"
		objCal.style.MozOpacity=.99
		if(objCal.MozFadeInInterval)
		{
			clearInterval(objCal.MozFadeInInterval)
			objCal.MozFadeInInterval=null
		}
	}
	if(objOver) objOver.style.display=''
	if(objOverShadow) objOverShadow.style.display=''
}

function PopCalMozFadeOut(l)
{
	var objCal=objPopCalList[l].Object.popupSuperCalendar
	if((parseFloat(objCal.style.MozOpacity)-objCal.Opacity)<=0)
	{
		objCal.style.MozOpacity=0
		objCal.style.visibility="hidden"
		clearInterval(objCal.MozFadeOutInterval)
		objCal.MozFadeOutInterval=null
		PopCalMoveTo(0,0,l)
	}
	else
	{
		objCal.style.MozOpacity=(parseFloat(objCal.style.MozOpacity)-objCal.Opacity)
	}
}

function PopCalFadeOut(l,HideNow)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var objCal=PopCal.popupSuperCalendar
	var objShdR=PopCal.popupSuperShadowRight
	var objShdB=PopCal.popupSuperShadowBottom
	if(objCal.MozFadeInInterval)
	{
		clearInterval(objCal.MozFadeInInterval)
		objCal.MozFadeInInterval=null
	}
	if((objPopCal.ie)&&(PopCal.fade>0)&&(objPopCal.executeFade)&&(!HideNow))
	{
		objCal.filters.blendTrans.Stop()
		objCal.style.filter="blendTrans(duration="+PopCal.fade+")"
		if((objCal.style.visibility!="hidden")&&(objCal.filters.blendTrans.status!=2))
		{
			if(PopCal.shadow==1)
			{
				objShdR.style.filter="alpha(opacity=2)"
				objShdB.style.filter="alpha(opacity=2)"
			}
			objCal.filters.blendTrans.Apply()
			objCal.style.visibility="hidden"
			objCal.filters.blendTrans.Play()
			objPopCal.timeoutID3=setTimeout("PopCalMoveTo(0,0,"+l+")",(PopCal.fade+.05)*1000)
		}
		else
		{
			objCal.style.visibility="hidden"
			PopCalMoveTo(0,0,l)
		}
	}
	else if((!objPopCal.ie)&&(PopCal.fade>0)&&(objPopCal.executeFade)&&(!HideNow)&&(!objCal.MozFadeOutInterval))
	{
		if(typeof(objCal.style.MozOpacity)=='string')
		{
			if(PopCal.shadow==1)
			{
				objShdR.style.MozOpacity=.02
				objShdB.style.MozOpacity=.02
			}
			objCal.Opacity=(1/(PopCal.fade*10))
			objCal.style.MozOpacity=.99
			objCal.MozFadeOutInterval=setInterval("PopCalMozFadeOut("+l+")", 75)
		}
		else
		{
			objCal.style.visibility="hidden"
			PopCalMoveTo(0,0,l)
		}
	}
	else
	{
		objCal.style.visibility="hidden"
		PopCalMoveTo(0,0,l)
	}
}

function PopCalMoveTo(x,y,l)
{
	if(!objPopCalList) return(true)
	var objPopCal=objPopCalList[l]
	if(!objPopCal) return(true)
	if(PopCalCalendarVisible()==null)
	{
		var PopCal=objPopCal.Object
		var objCal=PopCal.popupSuperCalendar
		var objShdR=PopCal.popupSuperShadowRight
		var objShdB=PopCal.popupSuperShadowBottom
		var objOver=objCal.OverSelect
		var objOverShadow=objCal.ShadowOverSelect
		if(objCal.MozFadeOutInterval)
		{
			clearInterval(objCal.MozFadeOutInterval)
			objCal.MozFadeOutInterval=null
		}
		objCal.style.left=x+'px'
		objCal.style.top=y+'px'
		if(PopCal.shadow==1)
		{
			objShdR.style.filter="alpha(opacity=50)"
			objShdB.style.filter="alpha(opacity=50)"
			objShdR.style.MozOpacity=.5
			objShdB.style.MozOpacity=.5
		}
		if(objOver)
		{
			objOver.style.left=x+'px'
			objOver.style.top=y+'px'
			objOver.style.display="none"
		}
		if(objOverShadow)
		{
			objOverShadow.style.left=x+'px'
			objOverShadow.style.top=y+'px'
			objOverShadow.style.display="none"
		}
		objShdR.style.visibility="hidden"
		objShdR.style.left=x+'px'
		objShdR.style.top=y+'px'
		objShdB.style.visibility="hidden"
		objShdB.style.left=x+'px'
		objShdB.style.top=y+'px'
	}
	if(objPopCal.timeoutID3)
	{
		clearTimeout(objPopCal.timeoutID3)
		objPopCal.timeoutID3=null
	}
}

function PopCalIsObjectVisible(obj)
{
	var bVisible=((obj.style.display!='none')&&(obj.style.visibility!='hidden'))
	var objParent=obj.offsetParent
	while((objParent)&&(objParent.tagName!="BODY")&&(objParent.tagName!="HTML")&&(bVisible))
	{
		bVisible=((objParent.style.display!='none')&&(objParent.style.visibility!='hidden'))
		objParent=objParent.offsetParent
	}
	return(bVisible)
}

function PopCalConstructDate(d,m,y,format,l)
{
	var objPopCal=objPopCalList[l]
	var sTmp=format
	sTmp=sTmp.replace("dd","<e>")
	sTmp=sTmp.replace("d","<d>")
	sTmp=sTmp.replace("<e>",PopCalPad(d,2,"0","L"))
	sTmp=sTmp.replace("<d>",d)
	sTmp=sTmp.replace("mmmm","<l>")
	sTmp=sTmp.replace("mmm","<s>")
	sTmp=sTmp.replace("mm","<n>")
	sTmp=sTmp.replace("m","<m>")
	sTmp=sTmp.replace("yyyy",PopCalPad(y,4,"0","L"))
	sTmp=sTmp.replace("yy",PopCalPad(y,4,"0","L").substr(2))
	sTmp=sTmp.replace("<m>",m+1)
	sTmp=sTmp.replace("<n>",PopCalPad(m+1,2,"0","L"))
	sTmp=sTmp.replace("<s>",objPopCal.monthNameShort[m])
	sTmp=sTmp.replace("<l>",objPopCal.monthName[m])
	return(sTmp)
}

function PopCalCloseCalendar(l)
{
	var objPopCal=objPopCalList[l]
	clearInterval(objPopCal.intervalID1)
	clearTimeout(objPopCal.timeoutID1)
	clearInterval(objPopCal.intervalID2)
	clearTimeout(objPopCal.timeoutID2)
	PopCalHideCalendar(l)
	if(!objPopCal)
	{
		objPopCal=null
		return(false)
	}
	// Save Result here
	//alert('CloseCal-dt='+ objPopCal.dateSelected + ' - ' + objPopCal.monthSelected + ' ' + objPopCal.yearSelected);
	//objPopCal.ctl.value=PopCalConstructDate(objPopCal.dateSelected,objPopCal.monthSelected,objPopCal.yearSelected,objPopCal.dateFormat,l)
	SetResult(objPopCal.dateSelected,objPopCal.monthSelected,objPopCal.yearSelected, objPopCalList[l].calendarName)
	if(objPopCal.commandExecute)
	{
		eval(objPopCal.commandExecute)
	}
	else
	{
		PopCalSetFocus(objPopCal.ctl)
	}
}

function PopCalClickDocumentBody(l)
{
	var objPopCal=objPopCalList[l]
	if(objPopCal.ie)
	{
		if(event.keyCode==82)
		{
			var obj=objPopCal.ctl
			if(obj)
			{
				if((obj.CalendarLeft)&&(obj.CalendarTop))
				{
					PopCalMoveDefault(l)
					PopCalDrop(l)
					if(document.body)
					{
						PopCalSetFocus(document.body)
					}
				}
			}
		}
	}
	PopCalGetById("popupSuperHighLight"+objPopCal.id).style.borderColor="#a0a0a0"
	objPopCal.PopCalDragClose=false
	if(!objPopCal.bShow)
	{
		PopCalHideCalendar(l)
	}
	if(!objPopCal)
	{
		objPopCal=null
		return(false)
	}
	objPopCal.bShow=false
}

function PopCalStartDecMonth(l)
{
	var objPopCal=objPopCalList[l]
	PopCalDownMonth(l)
	PopCalDownYear(l)
	clearInterval(objPopCal.intervalID1)
	clearTimeout(objPopCal.timeoutID1)
	clearInterval(objPopCal.intervalID2)
	clearTimeout(objPopCal.timeoutID2)
	objPopCal.intervalID1=setInterval("PopCalDecMonth("+l+")",80)
}

function PopCalStartIncMonth(l)
{
	var objPopCal=objPopCalList[l]
	PopCalDownMonth(l)
	PopCalDownYear(l)
	clearInterval(objPopCal.intervalID1)
	clearTimeout(objPopCal.timeoutID1)
	clearInterval(objPopCal.intervalID2)
	clearTimeout(objPopCal.timeoutID2)
	objPopCal.intervalID1=setInterval("PopCalIncMonth("+l+")",80)
}

function PopCalIncMonth(l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.monthSelected++
	if(objPopCal.monthSelected>11)
	{
		objPopCal.monthSelected=0
		objPopCal.yearSelected++
	}
	if((objPopCal.yearSelected>objPopCal.yearUpTo)||((objPopCal.yearSelected==objPopCal.yearUpTo)&&(objPopCal.monthSelected>objPopCal.monthUpTo)))
	{
		PopCalDecMonth(l)
	}
	else
	{
		PopCalConstructCalendar(l)
		if(objPopCal.lr==0)
		{
			PopCalMoveDefaultPos(l)
			PopCalMoveShadow(l)
		}
	}
}

function PopCalDecMonth(l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.monthSelected--
	if(objPopCal.monthSelected<0)
	{
		objPopCal.monthSelected=11
		objPopCal.yearSelected--
	}
	if((objPopCal.yearSelected<objPopCal.yearFrom)||((objPopCal.yearSelected==objPopCal.yearFrom)&&(objPopCal.monthSelected<objPopCal.monthFrom)))
	{
		PopCalIncMonth(l)
	}
	else
	{
		PopCalConstructCalendar(l)
		if(objPopCal.lr==0)
		{
			PopCalMoveDefaultPos(l)
			PopCalMoveShadow(l)
		}
	}
}

function PopCalConstructMonth(l)
{
	var objPopCal=objPopCalList[l]
	PopCalDownYear(l)
	if(!objPopCal.monthConstructed)
	{
		var beginMonth=0
		var endMonth=11
		objPopCal.countMonths=0
		if(objPopCal.yearSelected==objPopCal.yearFrom)
		{
			beginMonth=objPopCal.monthFrom
		}
		if(objPopCal.yearSelected==objPopCal.yearUpTo)
		{
			endMonth=objPopCal.monthUpTo
		}
		var sHTML=""
		for(var i=beginMonth;i<=endMonth;i++)
		{
			objPopCal.countMonths++
			var sName=objPopCal.monthName[i]
			if(i==objPopCal.monthSelected)
			{
				sName="<b>"+sName+"</b>"
			}
			sHTML+="<tr><td id='popupSuperMonth"+i+"' class='OptionStyle' onmouseover='objPopCalList["+l+"].bShow=true;this.className=\"OptionOverStyle\"' onmouseout='objPopCalList["+l+"].bShow=false;this.className=\"OptionOutStyle\"' style='cursor:default;' onclick='objPopCalList["+l+"].bShow=false;objPopCalList["+l+"].monthConstructed=false;objPopCalList["+l+"].monthSelected="+i+";PopCalConstructCalendar("+l+");PopCalDownMonth("+l+");'>&nbsp;"+sName+"&nbsp;</td></tr>"
		}
		var PopCal=objPopCal.Object
		PopCal.popupSuperMonth.className=objPopCal.CssClass
		PopCal.popupSuperMonth.innerHTML="<table dir='"+((objPopCal.lr==1)?"ltr":"rtl")+"' width='100%' style='border:1px solid #a0a0a0;' class='ListStyle' cellspacing=0 onmouseover='clearTimeout(objPopCalList["+l+"].timeoutID1)' onmouseout='clearTimeout(objPopCalList["+l+"].timeoutID1);'>"+sHTML+"</table>"
		objPopCal.monthConstructed=true
	}
}

function PopCalUpMonth(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var objSpanMonth=PopCalGetById("popupSuperSpanMonth"+PopCal.id)
	if((objPopCal.yearSelected==objPopCal.yearFrom)||(objPopCal.yearSelected==objPopCal.yearUpTo))
	{
		objPopCal.monthConstructed=false
	}
	else if(objPopCal.countMonths!=12)
	{
		objPopCal.monthConstructed=false
	}
	PopCalConstructMonth(l)
	PopCal.popupSuperMonth.style.display=""
	if(PopCal.popupSuperMonth.OverSelect) PopCal.popupSuperMonth.OverSelect.style.display=""
	var lTop=parseInt(PopCal.popupSuperCalendar.style.top,10)+objSpanMonth.offsetTop+objSpanMonth.offsetHeight+6
	var lLeft=parseInt(PopCal.popupSuperCalendar.style.left,10)+objSpanMonth.offsetLeft
	if(objPopCal.lr==0)
	{
		if(objPopCal.ie)
		{
			lLeft=parseInt(PopCal.popupSuperCalendar.style.left,10)+PopCal.popupSuperCalendar.offsetWidth-(objSpanMonth.offsetLeft+objSpanMonth.offsetWidth)
			lLeft-=8
		}
		else
		{
			var _tl=PopCalGetTopLeft(objSpanMonth)
			lLeft=_tl[1]
		}
	}
	else
	{
		lLeft+=((objPopCal.ie)?4:5)
	}
	PopCalSetPosition(PopCal.popupSuperMonth,lTop,lLeft,objSpanMonth.offsetHeight,objSpanMonth.offsetWidth)
	if((objPopCal.lr==0)&&(objPopCal.ie))
	{
		if(objSpanMonth.offsetWidth<PopCal.popupSuperMonth.offsetWidth)
		{
			lLeft-=(PopCal.popupSuperMonth.offsetWidth-objSpanMonth.offsetWidth)
		}
		PopCalSetPosition(PopCal.popupSuperMonth,lTop,lLeft)
	}
}

function PopCalDownMonth(l)
{
	var objPopCal=objPopCalList[l]
	var obj=objPopCal.Object.popupSuperMonth
	if(obj.style.display!="none")
	{
		if(!objPopCal.keepMonth)
		{
			clearInterval(objPopCal.intervalID1)
			clearTimeout(objPopCal.timeoutID1)
			clearInterval(objPopCal.intervalID2)
			clearTimeout(objPopCal.timeoutID2)
			obj.style.display="none"
			obj=obj.OverSelect
			if(obj)
			{
				obj.style.display="none"
				obj.style.height='1px'
				obj.style.width='1px'
			}
		}
	}
	objPopCal.keepMonth=false
}

function PopCalWheelYear(l)
{
	var objPopCal=objPopCalList[l]
	if(PopCalIsObjectVisible(objPopCal.Object.popupSuperYear))
	{
		if(event.wheelDelta>=120)
		{
			for(var i=0;i<3;i++)
			{
				PopCalDecYear(l)
			}
		}
		else if(event.wheelDelta<=-120)
		{
			for(var i=0;i<3;i++)
			{
				PopCalIncYear(l)
			}
		}
	}
}

function PopCalIncYear(l)
{
	var objPopCal=objPopCalList[l]
	if((objPopCal.nStartingYear+(objPopCal.HalfYearList*2+1))<=objPopCal.yearUpTo)
	{
		var PopCal=objPopCal.Object
		for(var i=0;i<(objPopCal.HalfYearList*2+1);i++)
		{
			var newYear=(i+objPopCal.nStartingYear)+1
			var txtYear
			if(newYear==objPopCal.yearSelected)
			{
				txtYear="&nbsp;<b>"+newYear+"</b>&nbsp;"
			}
			else
			{
				txtYear="&nbsp;"+newYear+"&nbsp;"
			}
			PopCal.popupSuperYearList[i].innerHTML=txtYear
		}
		objPopCal.nStartingYear++
	}
	objPopCal.bShow=true
}

function PopCalDecYear(l)
{
	var objPopCal=objPopCalList[l]
	if(objPopCal.nStartingYear-1>=objPopCal.yearFrom)
	{
		var PopCal=objPopCal.Object
		for(var i=0;i<(objPopCal.HalfYearList*2+1);i++)
		{
			var newYear=(i+objPopCal.nStartingYear)-1
			var txtYear
			if(newYear==objPopCal.yearSelected)
			{
				txtYear="&nbsp;<b>"+ newYear+"</b>&nbsp;"
			}
			else
			{
				txtYear="&nbsp;"+newYear+"&nbsp;"
			}
			PopCal.popupSuperYearList[i].innerHTML=txtYear
		}
		objPopCal.nStartingYear--
	}
	objPopCal.bShow=true
}

function PopCalSelectYear(nYear,l)
{
	var objPopCal=objPopCalList[l]
	objPopCal.yearSelected=nYear+objPopCal.nStartingYear
	if((objPopCal.yearSelected==objPopCal.yearFrom)&&(objPopCal.monthSelected<objPopCal.monthFrom))
	{
		objPopCal.monthSelected=objPopCal.monthFrom
	}
	else if((objPopCal.yearSelected==objPopCal.yearUpTo)&&(objPopCal.monthSelected>objPopCal.monthUpTo))
	{
		objPopCal.monthSelected=objPopCal.monthUpTo
	}
	objPopCal.yearConstructed=false
	PopCalConstructCalendar(l)
	PopCalDownYear(l)
}

function PopCalConstructYear(l)
{
	var objPopCal=objPopCalList[l]
	PopCalDownMonth(l)
	var sHTML=""
	var longList=true
	if(!objPopCal.yearConstructed)
	{
		var beginYear=objPopCal.yearSelected-objPopCal.HalfYearList
		var endYear=objPopCal.yearSelected+objPopCal.HalfYearList
		if((objPopCal.yearUpTo-objPopCal.yearFrom+1)<=(objPopCal.HalfYearList*2+1))
		{
			beginYear=objPopCal.yearFrom
			endYear=objPopCal.yearUpTo
			longList=false
		}
		else if(beginYear<objPopCal.yearFrom)
		{
			beginYear=objPopCal.yearFrom
			endYear=beginYear+objPopCal.HalfYearList*2
		}
		else if(endYear>objPopCal.yearUpTo)
		{
			endYear=objPopCal.yearUpTo
			beginYear=endYear-(objPopCal.HalfYearList*2)
		}
		objPopCal.nStartingYear=beginYear
		if(longList)
		{
			sHTML+="<tr><td align='center' class='OptionStyle' onmouseover='objPopCalList["+l+"].bShow=true;this.className=\"OptionOverStyle\"' onmouseout='objPopCalList["+l+"].bShow=false;clearInterval(objPopCalList["+l+"].intervalID1);this.className=\"OptionOutStyle\"' style='cursor:default;border-bottom:1px #a0a0a0 solid;' onmousedown='clearInterval(objPopCalList["+l+"].intervalID1);objPopCalList["+l+"].intervalID1=setInterval(\"PopCalDecYear("+l+")\",10)' onmouseup='clearInterval(objPopCalList["+l+"].intervalID1)'><img id='popupSuperUpYear' ondrag='return(false)' src='"+objPopCal.imgDir+"up.gif' border=0 /></td></tr>"
		}
		var j=0
		for(var i=(beginYear);i<=(endYear);i++)
		{
			var sName=i
			if(i==objPopCal.yearSelected)
			{
				sName="<b>"+sName+"</b>"
			}
			sHTML+="<tr><td id='popupSuperYear"+j+"' class='OptionStyle' align='center' onmouseover='objPopCalList["+l+"].bShow=true;this.className=\"OptionOverStyle\"' onmouseout='objPopCalList["+l+"].bShow=false;this.className=\"OptionOutStyle\"' style='cursor:default;' onclick='objPopCalList["+l+"].bShow=false;PopCalSelectYear("+j+","+l+");'>&nbsp;"+sName+"&nbsp;</td></tr>"
			j++
		}
		if(longList)
		{
			sHTML+="<tr><td align='center' class='OptionStyle' onmouseover='objPopCalList["+l+"].bShow=true;this.className=\"OptionOverStyle\"' onmouseout='objPopCalList["+l+"].bShow=false;clearInterval(objPopCalList["+l+"].intervalID2);this.className=\"OptionOutStyle\"' style='cursor:default;border-top:1px #a0a0a0 solid;' onmousedown='clearInterval(objPopCalList["+l+"].intervalID2);objPopCalList["+l+"].intervalID2=setInterval(\"PopCalIncYear("+l+")\",10)' onmouseup='clearInterval(objPopCalList["+l+"].intervalID2)'><img id='popupSuperDownYear' ondrag='return(false)' src='"+objPopCal.imgDir+"down.gif' border=0 /></td></tr>"
		}
		var PopCal=objPopCal.Object
		PopCal.popupSuperYear.className=objPopCal.CssClass
		PopCal.popupSuperYear.innerHTML="<table dir='"+((objPopCal.lr==1)?"ltr":"rtl")+"' width='100%' style='border:1px solid #a0a0a0;' class='ListStyle' onmouseover='clearTimeout(objPopCalList["+l+"].timeoutID2)' onmouseout='clearTimeout(objPopCalList["+l+"].timeoutID2);' cellspacing=0>"	+ sHTML	+ "</table>"
		PopCal.popupSuperYearList=[]
		for(var i=0;i<j;i++)
		{
			PopCal.popupSuperYearList[i]=PopCalGetById("popupSuperYear"+i)
		}
		objPopCal.yearConstructed=true
	}
}
function PopCalDownYear(l)
{
	var objPopCal=objPopCalList[l]
	obj=objPopCal.Object.popupSuperYear
	if(obj.style.display!="none")
	{
		if(!objPopCal.keepYear)
		{
			clearInterval(objPopCal.intervalID1)
			clearTimeout(objPopCal.timeoutID1)
			clearInterval(objPopCal.intervalID2)
			clearTimeout(objPopCal.timeoutID2)
			PopCalYearDown=true
			obj.style.display="none"
			obj=obj.OverSelect
			if(obj)
			{
				obj.style.display="none"
				obj.style.height='1px'
				obj.style.width='1px'
			}
		}
	}
	objPopCal.keepYear=false
}

function PopCalUpYear(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var objSpanYear=PopCalGetById("popupSuperSpanYear"+PopCal.id)
	PopCalConstructYear(l)
	PopCal.popupSuperYear.style.display=""
	if(PopCal.popupSuperYear.OverSelect) PopCal.popupSuperYear.OverSelect.style.display=""
	var lTop=parseInt(PopCal.popupSuperCalendar.style.top,10)+objSpanYear.offsetTop+objSpanYear.offsetHeight+6
	var lLeft=parseInt(PopCal.popupSuperCalendar.style.left,10)+objSpanYear.offsetLeft
	if(objPopCal.lr==0)
	{
		if(objPopCal.ie)
		{
			lLeft=parseInt(PopCal.popupSuperCalendar.style.left,10)+PopCal.popupSuperCalendar.offsetWidth-(objSpanYear.offsetLeft+objSpanYear.offsetWidth)
			lLeft-=8
		}
		else
		{
			var _tl=PopCalGetTopLeft(objSpanYear)
			lLeft=_tl[1]
		}
	}
	else
	{
		lLeft+=((objPopCal.ie)?4:5)
	}
	PopCalSetPosition(PopCal.popupSuperYear,lTop,lLeft,objSpanYear.offsetHeight,objSpanYear.offsetWidth)
}

function PopCalGetWeekNumber1(_d,l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	return(PopCalWeekNbr(_d,PopCal.startAt,PopCal.weekNumberFormula))
}

function PopCalWeekNbr(_n,_s,_c)
{
	var _y=_n.getFullYear()
	var _m=_n.getMonth()
	var _d=_n.getDate()
	_w0=PopCalGetWeekNumber(_y,_m,_d,_s,_c)
	if(_c==1)
	{
		if(_w0>52)
		{
			var _d0=new Date(_n-(-(86400000*7)))
			var _d1=new Date(_y+1,0,1)
			if(_d0>_d1) _w0=1
		}
	}
	else
	{
		var _w1=0
		if(_w0==0)
		{
			_w1=PopCalGetWeekNumber(_y-1,11,31,_s,_c);
		}
		else if(_w0>52)
		{
			_w1=PopCalGetWeekNumber(_y+1,0,1,_s,_c)
		}
		if(_w1>0) _w0=_w1
	}
	return(_w0)
}

function PopCalConstructCalendar(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var aNumDays=[31,0,31,30,31,30,31,31,30,31,30,31]
	var startDate=new Date(objPopCal.yearSelected,objPopCal.monthSelected,1)
	var endDate
	var numDaysInMonth
	var notSelect
	var selectWeekends=PopCal.selectWeekend
	var selectHolidays=PopCal.selectHoliday
	var _DayOfWeek=0
	var sAlign=((objPopCal.lr==1)?"right":"left")
	var sPad="&nbsp;"
	if(PopCal.showHolidays==0)
	{
		selectHolidays=1
	}
	if(objPopCal.monthSelected==1)
	{
		endDate=new Date(objPopCal.yearSelected,2,1)
		endDate=new Date(endDate-(86400000))
		numDaysInMonth=endDate.getDate()
	}
	else
	{
		numDaysInMonth=aNumDays[objPopCal.monthSelected]
	}
	var datePointer=0
	dayPointer=startDate.getDay()-PopCal.startAt
	if(dayPointer<0)
	{
		dayPointer=(7-PopCal.startAt)+startDate.getDay()
	}
	var sHTML="<table border=0 cellpadding=0 cellspacing=0 class='BodyStyle'><tr>"
	if(PopCal.showWeekNumber==1)
	{
		sHTML+="<td class='HeaderStyle' align='"+sAlign+"' style='border-"+sAlign+":1px solid #a0a0a0!important;'>&nbsp;</td>"
	}
	for(var i=PopCal.startAt;i<7;i++)
	{
		sHTML+="<td class='HeaderStyle' align='"+sAlign+"'>"+sPad+objPopCal.dayName[i]+"</td>"
	}
	for(var i=0;i<PopCal.startAt;i++)
	{
		sHTML+="<td class='HeaderStyle' align='"+sAlign+"'>"+sPad+objPopCal.dayName[i]+"</td>"
	}
	sHTML+="</tr><tr>"
	if(PopCal.showWeekNumber==1)
	{
		sHTML+="<td class='DateStyle WeekNumberStyle' align='"+sAlign+"' style='border-"+sAlign+":1px solid #a0a0a0!important;'>"+PopCalWeekNbr(startDate,PopCal.startAt,PopCal.weekNumberFormula)+sPad+"</td>"
	}
	for(var i=1;i<=dayPointer;i++)
	{
		sHTML+="<td class='DateStyle'>&nbsp;</td>"
	}
	//Martes de Carnaval y Viernes Santo para el aņo actual
	if((PopCal.addCarnival>=1)||(PopCal.addGoodFriday>=1))
	{
		var dtDomingoPascuas=PopCalDomingoPascuas(objPopCal.yearSelected)
		if(PopCal.addCarnival>=1)
		{
			var dtDate=new Date(dtDomingoPascuas-(47*86400000))
			if(PopCal.addCarnival==1)
			{
				PopCalAddHoliday(dtDate.getDate(),dtDate.getMonth()+1,dtDate.getFullYear(),objPopCal.CarnivalString,l)
			}
			else
			{
				PopCalAddSpecialDay(dtDate.getDate(),dtDate.getMonth()+1,dtDate.getFullYear(),objPopCal.CarnivalString,l)
			}
		}
		if(PopCal.addGoodFriday>=1)
		{
			var dtDate=new Date(dtDomingoPascuas-(2*86400000))
			if(PopCal.addGoodFriday==1)
			{
				PopCalAddHoliday(dtDate.getDate(),dtDate.getMonth()+1,dtDate.getFullYear(),objPopCal.GoodFridayString,l)
			}
			else
			{
				PopCalAddSpecialDay(dtDate.getDate(),dtDate.getMonth()+1,dtDate.getFullYear(),objPopCal.GoodFridayString,l)
			}
		}
	}
	for(var datePointer=1;datePointer<=numDaysInMonth;datePointer++)
	{
		dayPointer++
		sHTML+="<td align="+sAlign+" class='DateStyle'>"
		var sStyle=""
		var _date=new Date(objPopCal.yearSelected,objPopCal.monthSelected,datePointer)
		if((datePointer==objPopCal.odateSelected)&&(objPopCal.monthSelected==objPopCal.omonthSelected)&&(objPopCal.yearSelected==objPopCal.oyearSelected))
		{
			sStyle+=" SelectedDateStyle"
		}
		notSelect=false
		var bHoliday=false
		var bSpecial=false
		var _IsDate=false
		var sHint=""
		var _reason=""
		for(var k=0;k<objPopCal.HolidaysCounter;k++)
		{
			_IsDate=false
			if(objPopCal.Holidays[k].type=="Type 1")
			{
				_IsDate=PopCalValidateType1(_date,objPopCal.Holidays[k])
			}
			else if(objPopCal.Holidays[k].type=="Type 2")
			{
				_IsDate=PopCalValidateType2(_date,objPopCal.Holidays[k])
			}
			else if(objPopCal.Holidays[k].type=="Type 3")
			{
				_IsDate=PopCalValidateType3(_date,objPopCal.Holidays[k])
			}
			if(_IsDate)
			{
				if((PopCal.showHolidays==1)&&(objPopCal.Holidays[k].tipo==1))
				{
					bHoliday=true
					sHint+=(sHint==""?"":(objPopCal.ie?"\n":", "))+objPopCal.Holidays[k].desc
				}
				else if((PopCal.showSpecialDay==1)&&(objPopCal.Holidays[k].tipo==0))
				{
					bSpecial=true
					sHint+=(sHint==""?"":(objPopCal.ie?"\n":", "))+objPopCal.Holidays[k].desc
				}
				if((selectHolidays!=1)&&(objPopCal.Holidays[k].tipo==1))
				{
					notSelect=true
					if(_reason!="") _reason+=","
					_reason+="Holiday"
				}
			}
		}
		var regexp=/\"/g
		sHint=sHint.replace(regexp,"&quot;")
		if((objPopCal.yearSelected==objPopCal.yearFrom)&&(objPopCal.monthSelected==objPopCal.monthFrom))
		{
			if(datePointer<objPopCal.dateFrom)
			{
				notSelect=true
				if(_reason!="") _reason+=","
				_reason+="RangeFrom"
			}
		}
		if((objPopCal.yearSelected==objPopCal.yearUpTo)&&(objPopCal.monthSelected==objPopCal.monthUpTo))
		{
			if(datePointer>objPopCal.dateUpTo)
			{
				notSelect=true
				if(_reason!="") _reason+=","
				_reason+="RangeTo"
			}
		}
		if(selectWeekends!=1)
		{
			if((_date.getDay()==6)||(_date.getDay()==0))
			{
				notSelect=true
				if(_reason!="") _reason+=","
				_reason+="Weekend"
			}
		}
		if((datePointer==objPopCal.dateNow)&&(objPopCal.monthSelected==objPopCal.monthNow)&&(objPopCal.yearSelected==objPopCal.yearNow))
		{
			sStyle+=" CurrentDateStyle"
		}
		var _Style=''
		var _S1=''
		var _S2=''
		var _S3=''
		var _S4=''
		if(((_date.getDay()==6)||(_date.getDay()==0))&&(PopCal.showWeekend==1))
		{
			if(objPopCal.ClientScriptWeekendDateStyle!='')
			{
				if(typeof(eval("window."+objPopCal.ClientScriptWeekendDateStyle))=="function")
				{
					_S1=eval("window."+objPopCal.ClientScriptWeekendDateStyle+"(_date,objPopCal,sHint)")
					if(typeof(_S1)!="string") _S1=''
				}
			}
			if(_S1!='')
			{
				_Style=_S1
			}
			else
			{
				sStyle+=" WeekendStyle"
			}
		}
		if(bSpecial)
		{
			if(objPopCal.ClientScriptSpecialDateStyle!='')
			{
				if(typeof(eval("window."+objPopCal.ClientScriptSpecialDateStyle))=="function")
				{
					_S2=eval("window."+objPopCal.ClientScriptSpecialDateStyle+"(_date,objPopCal,sHint)")
					if(typeof(_S2)!="string") _S2=''
				}
			}
			if(_S2!='')
			{
				_Style=_S2
			}
			else
			{
				sStyle+=" SpecialDayStyle"
			}
		}
		if(bHoliday)
		{
			if(objPopCal.ClientScriptHolidayDateStyle!='')
			{
				if(typeof(eval("window."+objPopCal.ClientScriptHolidayDateStyle))=="function")
				{
					_S3=eval("window."+objPopCal.ClientScriptHolidayDateStyle+"(_date,objPopCal,sHint)")
					if(typeof(_S3)!="string") _S3=''
				}
			}
			if(_S3!='')
			{
				_Style=_S3
			}
			else
			{
				sStyle+=" HolidayStyle"
			}
		}
		if(notSelect)
		{
			if(objPopCal.ClientScriptDisabledDateStyle!='')
			{
				if(typeof(eval("window."+objPopCal.ClientScriptDisabledDateStyle))=="function")
				{
					_S4=eval("window."+objPopCal.ClientScriptDisabledDateStyle+"(_date,objPopCal,sHint,_reason)")
					if(typeof(_S4)!="string") _S4=''
				}
			}
			if(_S4!='')
			{
				_Style=_S4
			}
			else
			{
				sStyle+=" DisableDateStyle"
			}
		}
		if((_S4!='')&&(_S3!=''))
		{
			sStyle+=" HolidayStyle"
		}
		if(((_S4+_S3)!='')&&(_S2!=''))
		{
			sStyle+=" SpecialDayStyle"
		}
		if(((_S4+_S3+_S2)!='')&&(_S1!=''))
		{
			sStyle+=" WeekendStyle"
		}
		if(_Style.indexOf(":")!=-1)
		{
			_Style=" Style='"+_Style+"'"
		}
		else
		{
			if(_Style!='') sStyle+=(" "+_Style)
			_Style=""
		}
		if(notSelect)
		{
			sHTML+="<span title=\""+sHint+"\" class='"+sStyle+"' "+_Style+">&nbsp;"+datePointer+"&nbsp;</span>"
		}
		else
		{
			var _formatMsg=''
			if(objPopCal.lr==0)
			{
				for(var i=objPopCal.dateFormat.length-1;i>=0;i--)
				{
					_formatMsg+=objPopCal.dateFormat.substr(i,1)
				}
			}
			else
			{
				_formatMsg=objPopCal.dateFormat
			}
			var dateMessage="onmouseover='window.status=\""+objPopCal.selectDateMessage.replace("[Date]",PopCalConstructDate(datePointer,objPopCal.monthSelected,objPopCal.yearSelected,_formatMsg,l))+"\";this.className+=\" DayOverStyle\";' onmouseout='window.status=\"\";this.className=this.getAttribute(\"CSS\");' "
			sHTML+="<span "+dateMessage+" title=\""+sHint+"\" class='"+sStyle+"' CSS='"+sStyle+"' "+_Style+" onclick='objPopCalList["+l+"].dateSelected="+datePointer+";PopCalCloseCalendar("+l+");'>&nbsp;"+datePointer+"&nbsp;</span>"
		}
		sHTML+="</td>"
		if((dayPointer+PopCal.startAt)%7==PopCal.startAt)
		{
			sHTML+="</tr><tr>"
			if((PopCal.showWeekNumber==1)&&(datePointer<numDaysInMonth))
			{
				sHTML+="<td class='DateStyle WeekNumberStyle' align='"+sAlign+"' style='border-"+sAlign+":1px solid #a0a0a0!important;'>"+(PopCalWeekNbr(new Date(objPopCal.yearSelected,objPopCal.monthSelected,datePointer+1),PopCal.startAt,PopCal.weekNumberFormula))+sPad+"</td>"
			}
		}
	}
	while((dayPointer+PopCal.startAt)%7!=PopCal.startAt)
	{
		sHTML+="<td class='DateStyle'>&nbsp;</td>"
		++dayPointer
	}
	sHTML+="</tr></table>"
	if(PopCal.addGoodFriday>=1)
	{
		objPopCal.Holidays.length=--objPopCal.HolidaysCounter
	}
	if(PopCal.addCarnival>=1)
	{
		objPopCal.Holidays.length=--objPopCal.HolidaysCounter
	}
	PopCalGetById("popupSuperContent"+PopCal.id).innerHTML=sHTML
	if(PopCalGetById("popupSuperCaption"+PopCal.id).dropDown)
	{
		PopCalGetById("popupSuperSpanMonth"+PopCal.id).innerHTML="&nbsp;"+objPopCal.monthName[objPopCal.monthSelected]+"&nbsp;<img id='popupSuperChangeMonth"+PopCal.id+"' ondrag='return(false)' src='"+objPopCal.imgDir+"drop1.gif' width='12' height='12' border='0' />"
		PopCalGetById("popupSuperSpanYear"+PopCal.id).innerHTML="&nbsp;"+objPopCal.yearSelected+"&nbsp;<img id='popupSuperChangeYear"+PopCal.id+"' ondrag='return(false)' src='"+objPopCal.imgDir+"drop1.gif' width='12' height='12' border='0' />"
	}
	else
	{
		PopCalGetById("popupSuperMoveCalendar"+PopCal.id).innerHTML=objPopCal.monthName[objPopCal.monthSelected]+"&nbsp;"+objPopCal.yearSelected
	}
	PopCalMoveShadow(l)
}

function PopCalMoveShadow(l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	PopCalSetPosition(PopCal.popupSuperCalendar)
	if(PopCal.shadow==1)
	{
		var objCal=PopCal.popupSuperCalendar
		var obj=PopCal.popupSuperShadowRight
		obj.style.height=(objCal.offsetHeight-10)+'px'
		obj.style.top=(objCal.offsetTop+10)+'px'
		if(objPopCal.lr==1)
		{
			obj.style.left=(objCal.offsetLeft+objCal.offsetWidth)+'px'
		}
		else
		{
			obj.style.left=(objCal.offsetLeft-10)+'px'
		}
		obj=PopCal.popupSuperShadowBottom
		obj.style.width=objCal.offsetWidth+'px'
		obj.style.top=(objCal.offsetTop+objCal.offsetHeight)+'px'
		if(objPopCal.lr==1)
		{
			obj.style.left=((objCal.offsetLeft+objCal.offsetWidth+10)-objCal.offsetWidth)+'px'
		}
		else
		{
			obj.style.left=(objCal.offsetLeft-10)+'px'
		}
	}
}

function PopCalDateNow(l)
{
	var objPopCal=objPopCalList[l]
	return(PopCalPad(objPopCal.yearNow,4,"0","L")+PopCalPad(objPopCal.monthNow,2,"0","L")+PopCalPad(objPopCal.dateNow,2,"0","L"))
}

function PopCalDateSelect(l)
{
	var objPopCal=objPopCalList[l]
	return(PopCalPad(objPopCal.yearSelected,4,"0","L")+PopCalPad(objPopCal.monthSelected,2,"0","L")+PopCalPad(objPopCal.dateSelected,2,"0","L"))
}

function PopCalDateFrom(l)
{
	var objPopCal=objPopCalList[l]
	return(PopCalPad(objPopCal.yearFrom,4,"0","L")+PopCalPad(objPopCal.monthFrom,2,"0","L")+PopCalPad(objPopCal.dateFrom,2,"0","L"))
}

function PopCalDateUpTo(l)
{
	var objPopCal=objPopCalList[l]
	return(PopCalPad(objPopCal.yearUpTo,4,"0","L")+PopCalPad(objPopCal.monthUpTo,2,"0","L")+PopCalPad(objPopCal.dateUpTo,2,"0","L"))
}

function PopCalGetSeparator(dateFormat)
{
	var Separator=' /-.'
	for(var i=0;i<Separator.length;i++)
	{
		var formatChar=Separator.substr(i,1)
		if(dateFormat.split(formatChar).length==3)
		{
			return(formatChar)
		}
	}
	return(null)
}

function PopCalCenturyOn(dateFormat)
{
	var formatChar=PopCalGetSeparator(dateFormat)
	if(formatChar)
	{
		var aFormat=dateFormat.toLowerCase().split(formatChar)
		for(var i=0;i<3;i++)
		{
			if(aFormat[i]=="yyyy")
			{
				return(true)
			}
		}
	}
	return(false)
}

function PopCalSetDMY(dateValue,dateFormat,l)
{
	var objPopCal=objPopCalList[l]
	var PopCal=objPopCal.Object
	var tokensChanged=0
	var formatChar=PopCalGetSeparator(dateFormat)
	var _p=""
	objPopCal.oDate=null
	objPopCal.oMonth=null
	objPopCal.oYear=null
	if(formatChar)
	{
		if(formatChar==".")
		{
			if(dateValue.indexOf("..")!=-1)
			{
				_p="."
			}
		}
		// use user's date
		var aFormat=dateFormat.toLowerCase().split(formatChar)
		var aData=dateValue.toLowerCase().replace("..",".").split(formatChar)
		for(var i=0;i<3;i++)
		{
			if((aFormat[i]=="d")||(aFormat[i]=="dd"))
			{
				objPopCal.oDate=parseInt(aData[i],10)
				tokensChanged++
			}
			else if((aFormat[i]=="m")||(aFormat[i]=="mm"))
			{
				if(((parseInt(aData[i],10)-1)>=0)&&((parseInt(aData[i],10)-1)<=11))
				{
					objPopCal.oMonth=parseInt(aData[i],10)-1
					tokensChanged++
				}
			}
			else if((aFormat[i]=="yy")||(aFormat[i]=="yyyy"))
			{
				objPopCal.oYear=parseInt(aData[i],10)
				if(objPopCal.oYear<=99)
				{
					tokensChanged++
					if(objPopCal.oYear<100)
					{
						if(objPopCal.oYear<PopCal.centuryLimit)
						{
							objPopCal.oYear+=100
						}
						objPopCal.oYear+=1900
					}
				}
				else if(objPopCal.oYear<=9999)
				{
					tokensChanged++
				}
			}
			else if(aFormat[i]=="mmm")
			{
				for(j=0;j<12;j++)
				{
					if(aData[i])
					{
						if(aData[i]+_p==objPopCal.monthNameShort[j].toLowerCase())
						{
							objPopCal.oMonth=j
							tokensChanged++
							break
						}
						else if(aData[i]==objPopCal.monthNameShort[j].toLowerCase())
						{
							objPopCal.oMonth=j
							tokensChanged++
							break
						}
					}
				}
			}
			else if(aFormat[i]=="mmmm")
			{
				for(j=0;j<12;j++)
				{
					if(aData[i])
					{
						if(aData[i]==objPopCal.monthName[j].toLowerCase())
						{
							objPopCal.oMonth=j
							tokensChanged++
							break
						}
					}
				}
			}
		}
	}
	return((tokensChanged==3)&&!isNaN(objPopCal.oDate)&&!isNaN(objPopCal.oMonth)&&!isNaN(objPopCal.oYear))
}

function PopCalGetDate(dateValue,dateFormat,l)
{
	var objPopCal=objPopCalList[l]
	if(PopCalIsToday(dateValue))
	{
		return(new Date(objPopCal.today.getFullYear(),objPopCal.today.getMonth(),objPopCal.today.getDate()))
	}
	else if(PopCalSetDMY(dateValue,dateFormat,l))
	{
		return(new Date(objPopCal.oYear,objPopCal.oMonth,objPopCal.oDate))
	}
	return(null)
}

function PopCalChangeCurrentMonth(l)
{
	var objPopCal=objPopCalList[l]
	if((PopCalDateFrom(l).substr(0,6)<=PopCalDateNow(l).substr(0,6))&&(PopCalDateNow(l).substr(0,6)<=PopCalDateUpTo(l).substr(0,6)))
	{
		objPopCal.monthSelected=objPopCal.monthNow
		objPopCal.yearSelected=objPopCal.yearNow
		objPopCal.yearConstructed=false
		objPopCal.monthConstructed=false
		PopCalConstructCalendar(l)
	}
}

function PopCalDomingoPascuas(y)
{
	var lnCentena=parseInt(y/100,10)
	var lnAux=(y+1)%19
	var lnNroAureo=lnAux+(19*parseInt((19-lnAux)/19,10))
	var lnDomingo=7+(1-y-parseInt(y/4,10)+lnCentena-parseInt(lnCentena/4,10))%7
	var lnEpactaJul=((11*lnNroAureo)-10)%30
	var lnCorrSolar=-(lnCentena-16)+parseInt((lnCentena-16)/4,10)
	var lnCorrLunar=parseInt((lnCentena-15-parseInt((lnCentena-17)/25,10))/3,10)
	var lnEpactaGreg=(30+lnEpactaJul+lnCorrSolar+lnCorrLunar)%30
	var lnDiasLunaP=24-lnEpactaGreg+(30*parseInt(lnEpactaGreg/24,10))
	var lnDiasLuna15=(27-lnEpactaGreg+(30*parseInt(lnEpactaGreg/24,10)))%7
	var lnDiasPascua=lnDiasLunaP+(7+lnDomingo-lnDiasLuna15)%7
	var dtFecIni=new Date(y,2,21)
	var dtFecPascua=new Date(dtFecIni-(-(lnDiasPascua*86400000)))
	return(dtFecPascua)
}

function PopCalGetWeekNumber(_y,_m,_d,_s,_c)
{
	var _dw=(7+(new Date(_y,0,1).getDay())-_s)%7
	var _cd=Date.UTC(_y,_m,_d)
	var _fdy=Date.UTC(_y,0,1)
	var _week=Math.ceil(((_cd-_fdy)/86400000+_dw-6)/7)
	if((_c==1)||(_dw<=3))
	{
		_week++
	}
	return(_week)
}

function PopCalPad(s,l,c,X)
{
	var x=X
	var r=s.toString()
	if(r.length>=l) return(r.substr(0,l))
	if(c==null) c=' '
	do
	{
		if(X=='C')
		{
			if(x=='L') x='R'
			else x='L'
		}
		if(x=='L') r=c+r
		else if(x=='R') r=r+c
	}
	while(r.length<l)
	return(r)
}

function PopCalIsToday(_hoy)
{
	return((',now,today,hoy,heute,oggi,hoje,').indexOf(','+_hoy.toLowerCase()+',')!=-1)
}

function PopCalIsGoodFriday(_date)
{
	var _goodFriday=new Date(PopCalDomingoPascuas(_date.getFullYear())-(2*86400000))
	return(_date.toString()==_goodFriday.toString())
}

function PopCalIsCarnival(_date)
{
	var _carnival=new Date(PopCalDomingoPascuas(_date.getFullYear())-(47*86400000))
	return(_date.toString()==_carnival.toString())
}

function PopCalGetById(_Id)
{
	return(document.getElementById(_Id))
}

function PopCalGetTopLeft(_obj)
{
	var t=_obj.offsetTop+_obj.offsetHeight
	var l=_obj.offsetLeft
	var objParent=_obj.offsetParent
	if(_obj.style.position.toLowerCase()!='absolute')
	{
		if(document.body)
		{
			if(document.body.offsetTop!=0)
			{
				if(document.body.currentStyle)
				{
					if(document.body.currentStyle.marginTop) t+=parseInt(document.body.currentStyle.marginTop,10)
					if(document.body.currentStyle.marginLeft) l+=parseInt(document.body.currentStyle.marginLeft,10)
				}
			}
		}
	}
	while((objParent.tagName!="BODY")&&(objParent.tagName!="HTML"))
	{
		t+=objParent.offsetTop-objParent.scrollTop
		l+=objParent.offsetLeft-objParent.scrollLeft
		if(objParent.tagName=="DIV")
		{
			if(!isNaN(parseInt(objParent.style.borderTopWidth,10))) t+=parseInt(objParent.style.borderTopWidth,10)
			if(!isNaN(parseInt(objParent.style.borderLeftWidth,10))) l+=parseInt(objParent.style.borderLeftWidth,10)
		}
		objParent=objParent.offsetParent
	}
	return([t,l])
}


if(typeof(__PopCalValidCalendarRanges)=='undefined')
{
	var __PopCalValidCalendarRanges=[]
	var PopCalendarFunctions={majorVersion:2,minorVersion:5.4}
}

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)
			{
				__PopCalSetBlur(o,e)
			}
		}
	}
}

function __PopCalSetFocus(o,e)
{
	o.valueOnFocus=o.value
}

function __PopCalSetBlur(o,e)
{
	o.TempValue=o.value
	__PopCalFormatControl(o)
	if(o.value=="")
	{
		o.value=o.TempValue
	}
	o.TempValue=null
	if(o.value!=o.valueOnFocus)
	{
		var _PopCal=eval(o.getAttribute("Calendar"))
		__PopCalSelectionChanged(o,_PopCal)
	}
}

function __PopCalValidateOnSubmit(val,args)
{
	var o=document.getElementById(val.controltovalidate)
	if(!o)
	{
		args.IsValid=true
		return
	}
	o.value=__PopCalValueTrim(o.value)
	if((__PopCalCheckDependencies)&&((o.value=="")||(o.blankfield)))
	{
		if(typeof(val._IsValid)!="undefined")
		{
			args.IsValid=val._IsValid
		}
		return
	}
	if(typeof(val._IsValid)!="undefined")
	{
		if(Math.abs(__PopCalGetTicks()-val._ticks)<1000)
		{
			args.IsValid=val._IsValid
			return
		}
	}
	val._IsValid=true
	val._ticks=__PopCalGetTicks()
	var _PopCal=eval(o.getAttribute("Calendar"))
	var _format=o.getAttribute("Format")
	var _textMessage=o.getAttribute("TextMessage")
	if(_textMessage==null) _textMessage=""
	o.TempValue=o.value
	if(!__PopCalFormatControl(o))
	{
		o.value=o.TempValue
		o.TempValue =null
		if (_PopCal.Object.clientValidator==0) return(true)
		var _invalidDate=o.getAttribute("InvalidDateMessage")
		if((_invalidDate=="")||(_invalidDate==null)) _invalidDate="Invalid Date"
		_invalidDate=__PopCalSetErrorMessage(val,_invalidDate,_textMessage)
		args.IsValid=false
		val._IsValid=false
		val._ticks=__PopCalGetTicks()
		__PopCalShowMessage(o.id,_invalidDate)
		return
	}
	o.TempValue =null
	if(_PopCal.Object.clientValidator==0) return(true)
	if((o.value=="")&&(o.getAttribute("Required")=="true"))
	{
		var _focus=null
		if(event)
		{
			if(event.srcElement)
			{
				if(event.srcElement.id==val.controltovalidate)
				{
					_focus=false
				}
			}
		}
		var _requiredDate=o.getAttribute("RequiredDateMessage")
		if((_requiredDate=="")||(_requiredDate==null)) _requiredDate="Date is Required"
		_requiredDate=__PopCalSetErrorMessage(val,_requiredDate,_textMessage)
		args.IsValid=false
		val._IsValid=false
		val._ticks=__PopCalGetTicks()
		__PopCalShowMessage(o.id,_requiredDate,_focus)
		return
	}
	else if((o.value!=""))
	{
		var __Holiday=false
		var _date=_PopCal.getDate(o.value,_format)
		if(_PopCal.Object.showHolidays=="1")
		{
			if(_PopCal.Object.selectHoliday=="0")
			{
				var _holiday=o.getAttribute("HolidayMessage")
				if((_holiday=="")||(_holiday==null))
				{
					_holiday="Disabled Holidays"
				}
				for(var k=0;k<_PopCal.HolidaysCounter;k++)
				{
					if(_PopCal.Holidays[k].tipo==1)
					{
						__Holiday=false
						if(_PopCal.Holidays[k].type=="Type 1")
						{
							__Holiday=PopCalValidateType1(_date,_PopCal.Holidays[k])
						}
						else if(_PopCal.Holidays[k].type=="Type 2")
						{
							__Holiday=PopCalValidateType2(_date,_PopCal.Holidays[k])
						}
						if(__Holiday)
						{
							_holiday=__PopCalSetErrorMessage(val,_holiday,_textMessage)
							args.IsValid=false
							val._IsValid=false
							val._ticks=__PopCalGetTicks()
							__PopCalShowMessage(o.id,_holiday)
							return
						}
					}
				}
				var _DomingoPascuas=PopCalDomingoPascuas(_date.getFullYear())
				var _HolidayDate=new Date()
				if(_PopCal.Object.addCarnival=="1")
				{
					_HolidayDate=new Date(_DomingoPascuas-(47*86400000))
					if(_HolidayDate.toString()==_date.toString())
					{
						_holiday=__PopCalSetErrorMessage(val,_holiday,_textMessage)
						args.IsValid=false
						val._IsValid=false
						val._ticks=__PopCalGetTicks()
						__PopCalShowMessage(o.id,_holiday)
						return
					}
				}
				if(_PopCal.Object.addGoodFriday=="1")
				{
					_HolidayDate=new Date(_DomingoPascuas-(2*86400000))
					if(_HolidayDate.toString()==_date.toString())
					{
						_holiday=__PopCalSetErrorMessage(val,_holiday,_textMessage)
						args.IsValid=false
						val._IsValid=false
						val._ticks=__PopCalGetTicks()
						__PopCalShowMessage(o.id,_holiday)
						return
					}
				}
			}
		}
		if(_PopCal.Object.selectWeekend=="0")
		{
			var _weekend=o.getAttribute("WeekendMessage")
			if((_weekend=="")||(_weekend==null)) _weekend="Disabled Weekends"
			_date=_PopCal.getDate(o.value,_format)
			if("06".indexOf(_date.getDay().toString())!=-1)
			{
				_weekend=__PopCalSetErrorMessage(val,_weekend,_textMessage)
				args.IsValid=false
				val._IsValid=false
				val._ticks=__PopCalGetTicks()
				__PopCalShowMessage(o.id,_weekend)
				return
			}
		}
		args.IsValid=__PopCalValidateRanges(o)
		val._IsValid=args.IsValid
		val._ticks=__PopCalGetTicks()
		if(args.IsValid)
		{
			if(!__PopCalCheckDependencies)
			{
				__PopCalCheckDependencies=true
				__PopCalValidateDependencies(o)
				__PopCalCheckDependencies=false
			}
		}
	}
	__PopCalUpdateSummaryValidator()
	if((o.valueOnFocus!=null)&&(o.value!=o.valueOnFocus)&&(args.IsValid)&&(o.blankfield==null))
	{
		__PopCalSelectionChanged(o,_PopCal)
	}
}

function __PopCalValidateRanges(o)
{
	var _PopCal=eval(o.getAttribute("Calendar"))
	var _format=o.getAttribute("Format")
	var _ValidControl=document.getElementById(o.getAttribute("Calendar")+"_MessageError")
	var _Range=null
	var _value=_PopCal.formatDate(o.value,_format,"yyyy-mm-dd")
	var _textMessage=o.getAttribute("TextMessage")
	if(_textMessage==null) _textMessage=""
	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		_Range=__PopCalValidCalendarRanges[i]
		if(_Range.Control==o.id)
		{
			break
		}
		_Range=null
	}
	if(_Range)
	{
		__PopCalTemporal=","
		var _DateFrom=__PopCalGetFromYYYYMMDD(o)
		if(_DateFrom!="")
		{
			if(_value<_DateFrom)
			{
				var _OutRange=_Range.FromMessage
				if(_OutRange=="") _OutRange="Out of Range"
				_OutRange=__PopCalSetErrorMessage(_ValidControl,_OutRange,_textMessage)
				__PopCalShowMessage(o.id,_OutRange)
				return(false)
			}
		}
		__PopCalTemporal=","
		var _DateTo=__PopCalGetToYYYYMMDD(o)
		if(_DateTo!="")
		{
			if(_value>_DateTo)
			{
				var _OutRange=_Range.ToMessage
				if(_OutRange=="") _OutRange="Out of Range"
				_OutRange=__PopCalSetErrorMessage(_ValidControl,_OutRange,_textMessage)
				__PopCalShowMessage(o.id,_OutRange)
				return(false)
			}
		}
	}
	return(true)
}

function __PopCalValidateDependencies(o)
{
	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		var _Range=__PopCalValidCalendarRanges[i]
		var _Control=document.getElementById(_Range.Control)
		if(_Control)
		{
			if(_Control.getAttribute("Buffer")!="true")
			{
				if(_Control.id!=o.id)
				{
					if((_Range.FromRange=="C:"+o.id)||(_Range.ToRange=="C:"+o.id))
					{
						if(typeof(Page_Validators)!="undefined")
						{
							for (j=0;j<Page_Validators.length;j++)
							{
								var val=Page_Validators[j]
								if(val.clientvalidationfunction=='__PopCalValidateOnSubmit')
								{
									if(val.controltovalidate==_Control.id)
									{
										if(val.isvalid)
										{
											if(_Control.value!="") _Control.valueOnFocus=_Control.value
											ValidatorValidate(val)
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

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=eval(o.getAttribute("Calendar"))
			if(_PopCal)
			{
				if(_PopCal.id==_id)
				{
					if(o.value!="") o.valueOnFocus=o.value
					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")
					}
					else if(o.valueOnFocus!=null)
					{
						if(o.value!=o.valueOnFocus)
						{
							__PopCalSelectionChanged(o,_PopCal)
						}
					}
					break
				}
			}
		}
	}
}

function __PopCalShowCalendar(_o,_span)
{
	var o=document.getElementById(_o)
	if(!o) return
	var _PopCal=eval(o.getAttribute("Calendar"))
	var _format=o.getAttribute("Format")
	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 _f = _format
			if(_f.indexOf("yyyy")==-1) _f=_f.replace("yy","yyyy")
			var _DateFrom=__PopCalGetFromYYYYMMDD(o)
			_from=_PopCal.formatDate(_DateFrom,"yyyy-mm-dd",_f)
			__PopCalTemporal=","
			var _DateTo=__PopCalGetToYYYYMMDD(o)
			_to=_PopCal.formatDate(_DateTo,"yyyy-mm-dd",_f)
			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=eval(o.getAttribute("Calendar"))
		if(o.getAttribute("Buffer")=="true")
		{
			eval(o.getAttribute("PostBack").toString().replace('9999x99x99',o.value))
		}
		else if((_PopCal)&&((_PopCal.ie))&&(_PopCal.Object.clientValidator==1))
		{
			if ((typeof(ValidatorOnChange)=="function")&&(o.fireEvent))
			{
				try{
				o.fireEvent("onchange");
				}
				catch(e){}
			}
			else if(!__PopCalCheckDependencies)
			{
				__PopCalCheckDependencies=true
				__PopCalValidateDependencies(o)
				__PopCalCheckDependencies=false
			}
			__PopCalUpdateSummaryValidator()
		}
		__PopCalSelectionChanged(o,_PopCal)
	}
}

function __PopCalUpdateSummaryValidator()
{
	if(__PopCalTimerSummary==null)
	{
		__PopCalTimerSummary=window.setTimeout("__PopCalDisplaySummaryValidator()",250)
	}
}

function __PopCalDisplaySummaryValidator()
{
	clearTimeout(__PopCalTimerSummary)
	__PopCalTimerSummary=null
	if (typeof(ValidationSummaryOnSubmit)=="function")
	{
		if(typeof(Page_ValidationSummaries)!="undefined")
		{
			var i
			var _summary
			for(i=0;i<Page_ValidationSummaries.length;i++)
			{
				_summary=Page_ValidationSummaries[i]
				_summary.saveshowmessagebox=_summary.showmessagebox
				_summary.showmessagebox="False"
			}
			ValidatorUpdateIsValid()
			ValidationSummaryOnSubmit()
			for(i=0;i<Page_ValidationSummaries.length;i++)
			{
				_summary=Page_ValidationSummaries[i]
				_summary.showmessagebox=_summary.saveshowmessagebox
			}
		}
	}
	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		var o=document.getElementById(__PopCalValidCalendarRanges[i].Control)
		if(o)
		{
			var _v=document.getElementById(o.getAttribute("Calendar")+"_MessageError")
			if(_v)
			{
				if(_v.popupOverMessage)
				{
					if((_v.style.visibility=='hidden')||(_v.style.display=='none'))
					{
						if(_v.popupOverMessage.style.display!='none')
						{
							_v.popupOverMessage.style.display='none'
						}
					}
				}
			}
		}
	}
}

function __PopCalFormatControl(o)
{
	if(o.value!="")
	{
		var _PopCal=eval(o.getAttribute("Calendar"))
		if(_PopCal)
		{
			var _format=o.getAttribute("Format")
			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)
{
	var o=document.getElementById(_o)
	if(o)
	{
		var _v=document.getElementById(o.getAttribute("Calendar")+"_MessageError")
		if (_v)
		{
			var _tl=PopCalGetTopLeft(o)
			if(_tl[0]==0)
			{
				window.setTimeout("__PopCalShowMessage('"+_o+"',null,null,true)",10)
			}
			else
			{
				__PopCalShowMessage(_o,null,null,true)
			}
			return
		}
	}
	window.setTimeout("__PopCalShowMessageWaitForControl('"+_o+"')",10)
}

function __PopCalShowMessage(_o,_m,_f,_w)
{
	var _focus=true
	var o=document.getElementById(_o)
	if(!o) return
	var _v=document.getElementById(o.getAttribute("Calendar")+"_MessageError")
	if(!_v) return
	if(_m) _v.innerHTML=_m
	if(_f!=null) _focus=_f
	if(!_w) __PopCalUpdateSummaryValidator()
	o.blankfield=true
	window.setTimeout("__PopCalBlankField('"+o.id+"')",500)
	if(_focus)
	{
		__PopCalControlFocus(o)
	}
	if(_v.getAttribute("ShowErrorMessage")=='false')
	{
		_v.style.visibility='hidden'
		_v.style.display='none'
		return
	}
	var _PopCal=eval(o.getAttribute("Calendar"))
	if(_PopCal)
	{
		if (_v.style.position.toLowerCase()=='absolute')
		{
			if((!_v.popupOverMessage)&&(_PopCal.ie)&&(_PopCal.ieVersion>=5.5))
			{
				if(document.body)
				{
					if(document.body.insertAdjacentHTML)
					{
						document.body.insertAdjacentHTML("afterBegin","<iframe id='popupOverMessage"+_PopCal.id+"' src='javascript:false;' scrolling=no frameborder=0 style='position:absolute;left:0px;top:0px;width:0px;height:0px;z-index:+10000;display:none;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);'></iframe>")
						_v.popupOverMessage=document.getElementById("popupOverMessage"+_PopCal.id)
					}
				}
			}
		}
	}
	var _tl
	var c=document.getElementById(o.getAttribute("CalendarControl"))
	if(!c) c=document.getElementById(o.getAttribute("Calendar")+"_Control")
	if(!c) c=o
	if(_v.getAttribute("MessageAlignment")!='MessageContainer')
	{
		if(_v.getAttribute("MessageAlignment")=='RightCalendarControl')
		{
			_tl=PopCalGetTopLeft(c)
			_tl[0]-=(c.offsetHeight-1)
			_tl[1]+=(c.offsetWidth+10)
		}
		else
		{
			_tl=PopCalGetTopLeft(o)
			if((_v.style.padding=='2px')||(_v.style.padding=='2px 2px 2px 2px')) _tl[0]+=4
		}
		_v.style.top=(_tl[0]+1)+'px'
		_v.style.left=_tl[1]+'px'
	}
	_v.style.zIndex=+10000
	if(_v.getAttribute("ShowMessageBox")=='true')
	{
		_v.style.visibility='hidden'
		_v.style.display='none'
		if(_v.innerText)
		{
			alert(_v.innerText)
		}
		else
		{
			alert(_v.innerHTML)
		}
	}
	else
	{
		if(_v.getAttribute("MessageAlignment")=='MessageContainer')
		{
			_v.style.visibility='visible'
			if (_PopCal.lr==0)
			{
				if (_v.style.position.toLowerCase()=='absolute')
				{
					if((_v.getAttribute("rtlLeft")!="")&&(_v.getAttribute("rtlLeft")!=null))
					{
						var _Right=-(_v.offsetWidth)
						_Right+=parseInt(_v.getAttribute("rtlLeft"),10)
						_Right+=parseInt(_v.getAttribute("rtlWidth"),10)
						_v.style.left=_Right+'px'
					}
				}
			}
		}
		else
		{
			_v.style.display=''
			if (_PopCal.lr==0)
			{
				if(_v.getAttribute("MessageAlignment")=='RightCalendarControl')
				{
					_tl=PopCalGetTopLeft(c)
					_v.style.left=(_tl[1]-(c.offsetWidth+_v.offsetWidth)+10)+'px'
				}
				else
				{
					_tl=PopCalGetTopLeft(o)
					_v.style.left=(_tl[1]+o.offsetWidth-_v.offsetWidth)+'px'
				}
			}
		}
		if(_v.popupOverMessage)
		{
			_v.popupOverMessage.style.top=parseInt(_v.style.top,10)+'px'
			_v.popupOverMessage.style.left=parseInt(_v.style.left,10)+'px'
			_v.popupOverMessage.style.height=_v.offsetHeight+'px'
			_v.popupOverMessage.style.width=_v.offsetWidth+'px'
			_v.popupOverMessage.style.display=''
		}
	}
}

function __PopCalBlankField(_o)
{
	var o=document.getElementById(_o)
	if(!o) return
	o.value=""
	o.blankfield=null
	if((o.valueOnFocus!=null)&&(o.valueOnFocus!=''))
	{
		var _PopCal=eval(o.getAttribute("Calendar"))
		__PopCalSelectionChanged(o,_PopCal)
	}
	o.valueOnFocus=null
}

function __PopCalSetErrorMessage(_ValidControl,_DateMsg,_textMessage)
{
	if(_ValidControl)
	{
		_ValidControl.errormessage=_DateMsg
		if(_textMessage!='')
		{
			return(_textMessage)
		}
	}
	return(_DateMsg)
}

function __PopCalGetYYYYMMDD(o)
{
	if(o)
	{
		var _PopCal=eval(o.getAttribute("Calendar"))
		if(_PopCal)
		{
			return(_PopCal.formatDate(o.value,o.getAttribute("Format"),"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=eval(o.getAttribute("Calendar"))
		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:")
				{
					var _From=document.getElementById(_Range.FromRange.substr(2))
					if (!_From.blankfield)
					{
						_DateFrom=__PopCalGetYYYYMMDD(_From)
						if(_DateFrom=="")
						{
							_DateFrom=__PopCalGetFromYYYYMMDD(_From)
						}
					}
				}
				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=eval(o.getAttribute("Calendar"))
		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:")
				{
					var _To=document.getElementById(_Range.ToRange.substr(2))
					if (!_To.blankfield)
					{
						_DateTo=__PopCalGetYYYYMMDD(_To)
						if(_DateTo=="")
						{
							_DateTo=__PopCalGetToYYYYMMDD(_To)
						}
					}
				}
				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'
	var _idx=__PopCalValidCalendarRanges.length
	for(var i=0;i<__PopCalValidCalendarRanges.length;i++)
	{
		if(__PopCalValidCalendarRanges[i].Control==_Range.Control)
		{
			_idx=i
			break
		}
	}
	__PopCalValidCalendarRanges[_idx]=_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)
		{
		}
	}
}

function __PopCalWaitForSetControlFocus()
{
	if (__PopCalLastControlFocus!="")
	{
		var o=document.getElementById(__PopCalLastControlFocus)
		window.setTimeout("__PopCalLastControlFocus=''",500)
		if(!o) return
		try
		{
			o.focus()
		}
		catch (e)
		{
		}
	}
}

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")
	{
		var o=document.getElementById(val.controltovalidate)
		if(o)
		{
			if(o.valueOnFocus==null) o.valueOnFocus=o.value
			value=o.value
		}
	}
	var args={Value:value,IsValid:true}
	if(typeof(val.clientvalidationfunction)=="string")
	{
		eval(val.clientvalidationfunction+"(val,args);")
	}
	return args.IsValid
}

function __PopCalSelectionChanged(_TextBox,_PopCal)
{
	if(_PopCal.ClientScriptOnDateChanged!='')
	{
		if(typeof(eval("window."+_PopCal.ClientScriptOnDateChanged))=="function")
		{
			eval("window."+_PopCal.ClientScriptOnDateChanged+"(_TextBox,_PopCal)")
		}
	}
}

function __PopCalGetTicks()
{
	return (new Date())-(new Date(2005,0,1))
}
