function findObj(n, d) { //v4.01  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);  if(!x && d.getElementById) x=d.getElementById(n); return x;}/**
  * datePicker v.1.4
  */
function slct_rem(oSlct,val)
{
	len = oSlct.length;
	for ( i=0; i<len ; i++) {
		if (oSlct.options[i] != null) {
			if (oSlct.options[i].value == val ) {
				oSlct.options[i] = null;
				return true;
			}
		}
	}
}
function slct_add(oSlct,val)
{
	slct_rem(oSlct,val);
	len = oSlct.length;
	oSlct.options[len]= new Option(val,val);
}
function slct_select(oSlct,val)
{
	len = oSlct.length;
	for ( i=0; i<len ; i++) {
		if (oSlct.options[i].value == val ) {
			oSlct.options[i].selected = true;
		}
	}
}
function setdate(_id,year,month,day,hour,minute)
{
	var day_slct = findObj("date_day_"+_id);
	var month_slct = findObj("date_month_"+_id);
	var year_slct = findObj("date_year_"+_id);
	slct_select(day_slct,day);
	slct_select(month_slct,month);
	slct_select(year_slct,year);
	ondatechange(_id,year,month,day,hour,minute);
}
function datechange(_id)
{
	var day_slct = findObj("date_day_"+_id);
	var day = findObj("date_day_"+_id)[findObj("date_day_"+_id).selectedIndex].value
	var month = findObj("date_month_"+_id)[findObj("date_month_"+_id).selectedIndex].value
	var year = findObj("date_year_"+_id)[findObj("date_year_"+_id).selectedIndex].value

	var isDatetime = findObj("date_hour_"+_id) != null;
	
	if (isDatetime) {
		var hour = findObj("date_hour_"+_id).value;
		var minute = findObj("date_minute_"+_id).value;
	}
	
	slct_add(day_slct,29);	slct_add(day_slct,30);	slct_add(day_slct,31);

	// short month
	if (month==4 || month==6 || month==9 || month==11) {
		slct_rem(day_slct,31);
	}

	// februar
	if (month==2) {
		slct_rem(day_slct,31);
		slct_rem(day_slct,30);
	}
	// odd year
	for (var i=year; i>4; i=i-4) ;
	if ((month==2) && (i!=4)) {
		slct_rem(day_slct,29);
	}
	
	slct_select(day_slct, day);
	
	if (isDatetime) {
		ondatechange(_id,year,month,day,hour,minute);
	} else {
		ondatechange(_id,year,month,day);
	}
}
/**
  * user-changeable funtion ... don't mess with the other ones ...
  */
function ondatechange(_id,year,month,day,hour,minute)
{
	// output date as std. SQL DATE type
	var datetime = year+"-"+month+"-"+day;
	if (typeof(hour) != "undefined") {
		datetime = datetime+" "+hour+":"+minute+":00";
	}
	findObj("date_"+_id).value = datetime;
}