var Calendar=
	new Class(
	{
		initialize:
			function(a,b)
			{
				this.input=$(a);
				var c=new Date();
				var d=(c.getMonth()>4)?c.getFullYear()+1:c.getFullYear();
				this.config=
				{
					Lng:lng,imgNext:'images/calendar/next.gif',
					imgPrev:'images/calendar/prev.gif',
					imgCancel:'images/calendar/close.gif',
					maxDate:new Date(d,11,31,0,0,0),minDate:c,format:'d/m/y'
				};
				f=this;
				if(b)
					this.config=$merge(this.config,b);
				this.month_name=this.config.Lng.month;
				this.day_name=this.config.Lng.day;
				this.create_calendar();
				var f=this;
				document.addEvent('mousedown',function(e){f.isBlur(e)})
			},
		create_calendar:
			function()
			{
				var a=this.input.getCoordinates();
				if($('ncalendar'))
				{
					$('ncalendar').destroy();
					$('nFrame').destroy();
				}
				this.div=
					new Element('div').setStyles(
					{
						'top':(a.top)+'px',
						'left':(a.left+a.width+2)+'px',
						'z-index':'104'
					}).setProperty('id','ncalendar').injectInside(document.body);
				this.fra=
					new Element('iframe').setStyles(
					{
						'border':'0',
						'background':'transparent',
						'position':'absolute',
						'top':(a.top)+'px',
						'left':(a.left+a.width+2)+'px',
						'z-index':'103',
						'width':'300px',
						'height':'177px'
					}).setProperty('id','nFrame');
				this.nav();
				this.setdate(this.input.getProperty('value'));
				this.effect(this.div,'show');
				this.fra.injectInside(document.body)
			},
		nav:
			function(c)
			{
				this.calendardiv=new Element('div').injectInside(this.div).addClass('header');
				this.title=new Element('span').injectInside(this.calendardiv).addClass('month');
				this.next=new Element('div',{'id':'c_next','html':'&gt;&gt;'}).injectAfter(this.title);
				this.before=new Element('div',{'id':'c_prev','html':'&lt;&lt;'}).injectBefore(this.title);
				this.close=new Element('div',{'id':'c_close','html':'X'}).injectAfter(this.next);
				this.table=new Element('table').injectInside(this.div).setProperty('cellspacing','1').setProperty('cellpadding','0');
				var d=new Element('thead').injectInside(this.table);
				var f=new Element('tr').injectInside(d);
				this.day_name.each(
					function(a)
					{
						var b=new Element('th').appendText(a).injectInside(f)
					}
				);
				var g=this;
				this.close.addEvent('click',
					function(e)
					{
						g.sup()
					}
				)
			},
		setdate:
			function(g)
			{
				this.next.removeEvents('click');
				this.before.removeEvents('click');
				this.title.removeEvents('click');
				if(!this.validate_date(g))
				{
					this.today=new Date();
					this.today.setDate(1)
				}
				else
				{
					var h=g.split('/');
					this.today=new Date(h[2],h[1]-1,h[0],0,0,0)
				}
				this.next_m=this.today.getMonth();
				this.next_m++;
				this.title.innerHTML=this.month_name[this.today.getMonth()]+' '+this.today.getFullYear();
				var j=this;
				this.title.addEvent('click',
									function(e)
									{
										if($('listYearUl'))
											$('listYear').destroy();
										else
										{
											var b=new Element('div').injectAfter(j.title).setProperty('id','listYear');
											var c=j.today;
											var d=new Element('ul').setProperty('id','listYearUl').injectInside(b);
											minyear=j.config.minDate.getFullYear();
											maxyear=j.config.maxDate.getFullYear();
											for(var a=minyear;a<=maxyear;a++)
											{
												var f=
													new Element('li').set('html',a).inject(d).setProperty('id',a).addEvent(
														'click',
														function(e)
														{
															j.tbody.destroy();
															m=parseInt(c.getMonth()+1);
															j.setdate(c.getDate()+'/'+m+'/'+this.getProperty('id'));
															b.destroy()
														}
													)
											}
										}
									}
				);
				var j=this;
				max_date=new Date(this.config.maxDate.getMonth()+'/10/'+this.config.maxDate.getFullYear());
				if(this.today<max_date)
				{
					this.next.set('html','&gt;&gt;');
					this.next.addEvent('click',
										function(e)
										{
											var a=j.today;
											a.setMonth(j.next_m+1,1);
											j.tbody.destroy();
											j.setdate(a.getDate()+'/'+a.getMonth()+'/'+a.getFullYear())
										}
					)
				}
				else
				{
					this.next.set('html','&nbsp;')
				}
				if(this.today>this.config.minDate)
				{
					this.before.set('html','&lt;&lt;');
					this.before.addEvent('click',
										function(e)
										{
											var a=j.today;a.setMonth(j.next_m-1,1);	
											j.tbody.destroy();	
											j.setdate(a.getDate()+'/'+a.getMonth()+'/'+a.getFullYear());
										}
					)
				}
				else
				{
					this.before.set('html','&nbsp;')
				}
				var k=
					new Date(
						this.today.getFullYear(),
						this.next_m-2,1,0,0,0
					);
				var l=k.getMonth();
				var n=0;
				for(var b=1;b<=(30+this.config.Lng.first);b++)
				{
					k.setDate(b);
					if(k.getMonth()==l){n++;}
				}
				this.tbody=
					new Element('tbody').injectInside(this.table);
					var o=this.today;
					var p=this.today;
					this.month=this.today.getMonth();
					var q=new Element('tr').injectInside(this.tbody);
					var r=0;
					o.setDate(1);
					var s=(!o.getDay())?6:o.getDay()-1;
					n=n-s;
					for(var i=this.config.Lng.first;i<=6;i++)
					{
						if(o.getDay()==i)
						{break}
						else
						{
							n++;
							k.setDate(n);
							if(k.getMonth()==this.today.getMonth())
								k.setMonth(this.today.getMonth()-1);
							u=(k<j.config.minDate)?'noday0':'noday';
							this.create_td(q,n,k,u)
						}
					}
					(this.config.Lng.first)?v=1:v=0;
					var t=this.today;
					var u;
					var v;
					var w=0;
					for(var i=1;i<=31;i++)
					{
						t.setDate(i);
						if(t.getMonth()==this.month)
						{
							w++;
							if(t.getDay()==v)
							{
								var q=new Element('tr').injectInside(this.tbody)
							}
							if(t<j.config.minDate||t>j.config.maxDate)
							{u='noday0'}
							else if(!t.getDay()){u='sunday'}
							else u='';this.create_td(q,i,t,u)
						}
					}
					this.today.setMonth(this.month);
					this.today.setDate(w);
					var x=new Date(this.today.getFullYear(),
					this.today.getMonth()+1,1,0,0,0);
					var y=t.getDay();
					y=(v)?7-y:6-y;
					var b;b=(v)?0:6;
					if(this.today.getDay()!=b)
					{
						for(var i=1;i<=(y);i++)
						{
							x.setDate(i);
							u=(x>j.config.maxDate)?'noday0':'noday';
							this.create_td(q,i,x,u)
						}
					}
					this.effect(this.tbody,'show')
			},
		create_td:
			function(a,i,b,c)
			{
				var d=this;
				var f=new Element('td');
				if(b)
				{
					var g=b.getDate();
					var h=(b.getMonth()+1);
					if(g<=9)g="0"+g;
					if(h<=9)h="0"+h;
					var j=d.config.format;
					var k=j.replace('d',g);
					k=k.replace('m',h);
					k=k.replace('y',b.getFullYear());
					f.setProperty('id',k)
				}
				if(this.config.minDate<=b)
				{
					if(this.config.maxDate>=b)
					{
						f.addEvent('click',
									function(e)
									{
										d.input.value=this.id;
										d.effect(d.div,'fade');
										d.sup()
									}
						)
					}
					else
					{
						f.addEvent('click',
									function(e)
									{
										message=cal_error+'\n( Max date : ';
										alert(message+d.config.maxDate.getDate()+' / '+(d.config.maxDate.getMonth()+1)+' / '+d.config.maxDate.getFullYear()+' )')
									}
						)
					}
				}
				else
				{
					f.addEvent('click',
								function(e)
								{
									message=cal_error+' \n(Min date ';
									alert(message+d.config.minDate.getDate()+' / '+(d.config.minDate.getMonth()+1)+' / '+d.config.minDate.getFullYear()+' )')
								}
					)
				}
				f.addEvent('mouseover',
							function(e)
							{
								this.addClass('dayselected')
							}
				);
				f.addEvent('mouseout',
							function(e)
							{
								this.removeClass('dayselected')
							}
				);
				if(c)
					f.addClass(c);
				var l=new Date();
				l=l.getDate()+"/"+(l.getMonth()+1)+"/"+l.getFullYear();
				if(b)
					var m=b.getDate()+"/"+(b.getMonth()+1)+"/"+b.getFullYear();
				if(l==m)
					f.addClass('isToday');
				f.appendText(i);
				f.injectInside(a)
			},
		isBlur:
			function(a){var b=this.div.getCoordinates();if(a.page.x<(b.left-5)||a.page.x>(b.left+b.width+5)||a.page.y<(b.top-5)||a.page.y>(b.top+b.height+5))this.sup()},effect:function(a,b){var c=new Fx.Tween(a,{duration:200});(b=='fade')?c.start('opacity',1,0):c.start('opacity',0,1)},sup:function(a){$$(this.div,this.fra).destroy()},validate_date:function(a){var b=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;return a.test(b)}});var heure=dateTahiti.getHours();var minute=dateTahiti.getMinutes()-1;var seconde=dateTahiti.getSeconds();var jour=dateTahiti.getDate();var mois=dateTahiti.getMonth();var nomJour=tabNomJour[dateTahiti.getDay()-1];var annee=dateTahiti.getYear();if(annee<999)annee+=1900;function heureTahiti(){if(minute<10)minute="0"+Math.round(minute);else if(minute>59){minute="00";heure++}if(heure<10)heure="0"+Math.round(heure);else if(heure>23)heure="00";heureTexte=heure+':'+minute;$("heures").innerHTML=heureTexte;minute++}function change_theme(){$$('.aff_ss_thm').setStyle('display','none');var a=$('themes_petit_pack').getProperty('value')+'neo';$(a).setStyle('display','block');var b=$(a).getElement('span input[type=radio]');b.setProperty("checked","checked")}if($('jours'))$("jours").innerHTML=nomJour.substr(0,3)+" "+jour+" "+tabMois[mois].substr(0,3);if($('heures')){heureTahiti();setInterval("heureTahiti()",60000)}var url=window.location.href;$$('input[name=arrival],input[name=dateArrivee],input[name=arrival_equote],input[name=departure_equote]').each(function(a){a.addEvent('click',function(e){if(a.getProperty('id')=='arrival'&&url.test(/\/package\/pearl\-resort\//))new Calendar(a,{maxDate:new Date(2020,2,31,0,0,0),minDate:new Date(2010,10,1,0,0,0)});else new Calendar(a)})});
$$('input[name=mpwedding]').each(function(a){a.addEvent('click',function(e){new Calendar(a,{minDate:new Date(2009,1,1,0,0,0)})})});

