
		
			
		function isLeapYear(year) 
		{
			return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
		}
		
		function setMonth(monthid, selected, maxMonths, monthNames)
		{
			if (maxMonths == null) maxMonths = 12;
			if (monthNames == null) monthNames = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
		
			$('#'+monthid).empty("option");
						
			var date = new Date();
			date.setDate(1);
			var sMonth = '';
			
			for (i=0;i<maxMonths;i++)
			{			
				sMonth = (((date.getMonth() + 1) < 10) ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1));
				$('#'+monthid).append('<option value="' + date.getFullYear()+''+sMonth + '" ' + ((selected != null && selected == date.getFullYear()+''+sMonth) ? 'selected="selected"' : '') + '>' + monthNames[date.getMonth()] + ' ' + date.getFullYear().toString().substring(2) + '</option>');
				if (date.getMonth() == 11) 
				{
					date.setMonth(0); 
					date.setFullYear(date.getFullYear() + 1);
				}
				else date.setMonth(date.getMonth() + 1);

			}
		}
		
		function setDays(dayid, month, selected, monthNames)
		{
			var monthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
			if (parseInt(selected, 10) < 1) selected = $('#'+dayid).val();
			$('#'+dayid).empty("option");

			var dayCount = monthDays[(parseInt(month.substring(4), 10) - 1)];
									
			if (month.substring(4) == '02')
			{
				if (isLeapYear(month.substring(0, 4))) dayCount = 29;
			}
			
			if (parseInt(selected, 10) > dayCount) selected = dayCount;
			
			for (i=1;i<=dayCount;i++)
			{
//				$('#'+dayid).append('<option value="' + ((i < 10) ? '0' + i : i) + '" ' + ((selected != null && selected == i) ? 'selected="selected"' : '') + '>' + i + '</option>');
				$('#'+dayid).append('<option value="' + ((i < 10) ? '0' + i : i) + '">' + i + '</option>');
			}
			if (selected != null) setTimeout("document.getElementById('"+dayid+"').selectedIndex = (parseInt('"+selected+"' ,10) - 1)", 0);
			return;
		}
		
		function setDate(pmid, pdid, dmid, ddid, element, diff)
		{
			if (diff == null) diff = 24;
		
			var departureDate = Date.parse($('#'+pmid).val().substring(0, 4) + '/' + $('#'+pmid).val().substring(4) + '/' + $('#'+pdid).val());
			var returnDate = Date.parse($('#'+dmid).val().substring(0, 4) + '/' + $('#'+dmid).val().substring(4) + '/' + $('#'+ddid).val());
			var d;	
					
			if (element == 0)
			{
				if (departureDate >= returnDate)
				{
					// setting departuredate 'diff' hours before returndate
					departureDate = returnDate - (3600000 * diff);
				}
				setDays(ddid, $('#'+dmid).val(), $('#'+ddid).val());
				
				d = new Date(departureDate);
				setMonth(pmid, d.getFullYear()+''+(((d.getMonth()+1) < 10) ? '0'+(d.getMonth()+1) : (d.getMonth()+1)));	
				setDays(pdid, d.getFullYear()+''+(((d.getMonth()+1) < 10) ? '0'+(d.getMonth()+1) : (d.getMonth()+1)), d.getDate());	
				
			}

			if (element == 1)
			{
				if (departureDate >= returnDate)
				{
					// setting returndate 'diff' hours after departuredate
					returnDate = departureDate + (3600000 * diff);
				}
				setDays(pdid, $('#'+pmid).val(), $('#'+pdid).val());
			
				d = new Date(returnDate);
				setMonth(dmid, d.getFullYear()+''+(((d.getMonth()+1) < 10) ? '0'+(d.getMonth()+1) : (d.getMonth()+1)));	
				setDays(ddid, d.getFullYear()+''+(((d.getMonth()+1) < 10) ? '0'+(d.getMonth()+1) : (d.getMonth()+1)), d.getDate());	
			}
						
		}

