/**
 * @author bokahotell
 */
		
		var today = new Date();
		var nowyear = today.getFullYear();
		var nowmonth = today.getMonth()+1;
		var nowday = today.getDate();
		
		var arryear = nowyear;
		var depyear;
				
		var nowdate = new Date(nowyear, nowmonth - 1, nowday);
			
		function set_today(formname)
		{
			
			set_dates(nowyear, nowmonth, nowday, 1, formname);
			
			var depdate = new Date(nowyear, nowmonth, nowday+1);
			
			set_dates(depdate.getFullYear(), depdate.getMonth(), depdate.getDate(), 2, formname);
		}	
			
		function set_dates(year, month, day, n, formname)
		{
			//$('#' + formname); 
			var inputform = window.document.forms[formname];
		
			if (n==1) //rq_arrday
			{
				var date = new Date(get_year(new Date(nowdate.getFullYear(), month-1, day)), month-1, day);
				set_selMonth(inputform.rq_arrmonth, date);
				set_dayLength(inputform.rq_arrday, date);
				set_selDay(inputform.rq_arrday, date);
				change_dates(2, formname);
			}
			else if (n==2) //depday
			{
				var date = new Date(get_year(new Date(nowdate.getFullYear(), month-1, day)), month-1, day);
				set_selMonth(inputform.rq_depmonth, date);
				set_dayLength(inputform.rq_depday, date);
				set_selDay(inputform.rq_depday, date);
				change_dates(0, formname);
			}
			else if (n==3) // rq_arrday from calendar
			{
				var date = new Date(get_year(new Date(nowdate.getFullYear(), month-1, day)), month-1, day);
				set_selMonth(inputform.rq_arrmonth, date);
				set_dayLength(inputform.rq_arrday, date);
				set_selDay(inputform.rq_arrday, date);
				change_dates(1, formname);
			}

		}

		function change_dates(arrchange, formname)
		{

			var date = new Date();
			//var inputform = $(formname);//window.document.forms["inputform"];
			var inputform = window.document.forms[formname];
			
			var arrmonth = parseInt(inputform.rq_arrmonth.options[inputform.rq_arrmonth.selectedIndex].value, 10);	
			var arrday = parseInt(inputform.rq_arrday.options[inputform.rq_arrday.selectedIndex].value, 10);	
			var arryear = get_year(new Date(nowdate.getFullYear(), arrmonth-1, arrday));

			if (arrday > daysInMonth(arryear, arrmonth)) arrday = daysInMonth(arryear, arrmonth);
			var arrdate = new Date(arryear, arrmonth-1, arrday);			
			
			var depmonth = parseInt(inputform.rq_depmonth.options[inputform.rq_depmonth.selectedIndex].value, 10);	
			var depday = parseInt(inputform.rq_depday.options[inputform.rq_depday.selectedIndex].value, 10);	
			var depyear = get_year(new Date(nowdate.getFullYear(), depmonth-1, depday));

			if (depday > daysInMonth(depyear, depmonth)) depday = daysInMonth(depyear, depmonth);
			var depdate = new Date(depyear, depmonth-1, depday);

			//verify correct number of days in daySelect
			set_dayLength(inputform.rq_arrday, arrdate);

			//set depdate
			//var depmonth = parseInt(inputform.rq_depmonth.options[inputform.rq_depmonth.selectedIndex].value, 10);	
			//var depday = parseInt(inputform.rq_depday.options[inputform.rq_depday.selectedIndex].value, 10);
			
			if (arrchange!=0)
			{
				depdate = new Date(get_year(new Date(nowdate.getFullYear(), depmonth-1, depday)), depmonth-1, depday);

				if (arrchange==1)//day change
				{
					if (days_between(depdate, arrdate) < 1)
					{
						depdate = new Date(arrdate.getFullYear(), arrdate.getMonth(), arrdate.getDate()+1);
					}	
				}
				else if (arrchange==2)//month change
				{
					depdate = new Date(arrdate.getFullYear(), arrdate.getMonth(), arrdate.getDate()+1);	
				}
			}

			set_dayLength(inputform.rq_depday, depdate);
			
			set_selMonth(inputform.rq_depmonth, depdate);
			set_selDay(inputform.rq_depday, depdate);

			arrmonth = parseInt(inputform.rq_arrmonth.options[inputform.rq_arrmonth.selectedIndex].value, 10);	
			arrday = parseInt(inputform.rq_arrday.options[inputform.rq_arrday.selectedIndex].value, 10);	
			arryear = get_year(new Date(nowdate.getFullYear(), arrmonth-1, arrday));
			if (arrday > daysInMonth(arryear, arrmonth)) arrday = daysInMonth(arryear, arrmonth);
			
			depmonth = parseInt(inputform.rq_depmonth.options[inputform.rq_depmonth.selectedIndex].value, 10);	
			depday = parseInt(inputform.rq_depday.options[inputform.rq_depday.selectedIndex].value, 10);	
			depyear = get_year(new Date(nowdate.getFullYear(), depmonth-1, depday));
			if (depday > daysInMonth(depyear, depmonth)) depday = daysInMonth(depyear, depmonth);

			inputform.rq_arrdate.value = arryear + "-" + arrmonth + "-" + arrday;
			inputform.rq_depdate.value = depyear + "-" + depmonth + "-" + depday;
			
		}
		
		function get_year(date)
		{
			//get year
			if (days_between(date, nowdate) < 0) return parseInt(nowdate.getFullYear()) + 1;
			else return nowdate.getFullYear();
		}
		
		function set_selMonth(sel, date)
		{
			//sel.options[date.getMonth()].selected = true;
			sel.selectedIndex = date.getMonth();
		}
		
		function set_selDay(sel, date)
		{
			//sel.options[date.getDate()-1].selected = true;
			sel.selectedIndex = date.getDate()-1;
		}
	
		function set_dayLength(sel, date)
		{
			//alert(date);
			var days = daysInMonth(date.getFullYear(), date.getMonth()+1);
			
			//if (sel.selectedIndex+1 > days) sel.options[days-1].selected = true;
			if (sel.selectedIndex+1 > days) sel.selectedIndex = days-1;
				
			if (sel.length != days)
			{
				for (var n=28;n<=35;n++)
				{
					if (n<=days && sel.options[n-1] == null)//add a date 
					{
						if((n)<10){sel.options[n-1] = new Option("0" + (n), "0" + (n))}
						else{sel.options[n-1] = new Option(n, n)};
					}		
					if (n>days && sel.options[n-1] != null) //remove a date	
					{
						sel.options[n-1]=null;
						n=n-1;
					}
				}
			}
		
		}

		function days_between(date1, date2) {
	
			// Convert both dates to milliseconds
			var date1_ms = date1.getTime()
			var date2_ms = date2.getTime()
		
			// Calculate the difference in milliseconds
			var difference_ms = date1_ms - date2_ms
			
			// Convert back to days and return
			return Math.round(difference_ms/86400000)

		}
	
		function isLeapYear(y)
		{
			 return (y%4==0 && y%100!=0) || y%400==0;
		}
		
		function daysInMonth(y,m)
		{
			if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {
				return 31;
			} else if (m==4 || m==6 || m==9 || m==11) {
				return 30;
			} else {
				return isLeapYear(y) ? 29 : 28;
			}
		}