function make_period_popup( retfun )
    {
    var popup= new CalendarPopup();

    popup.setMonthNames('Jan','Feb','Mar','Apr','Mei/May','Jun',
			'Jul','Aug','Sep','Oct','Nov','Dec');

    popup.setDayHeaders('Zo/Sun','Ma/Mon','Di/Tue','Wo/Wed',
			'Do/Thu','Vr/Fri','Za/Sat');

    popup.setTodayText("Vandaag/Today");
    popup.showYearNavigation();
    popup.setReturnFunction( retfun );

    return popup;
    }

function make_date_popup()
    {
    var popup= new CalendarPopup();

    popup.setMonthNames('Jan','Feb','Mar','Apr','Mei/May','Jun',
			'Jul','Aug','Sep','Oct','Nov','Dec');

    popup.setDayHeaders('Zo/Sun','Ma/Mon','Di/Tue','Wo/Wed',
			'Do/Thu','Vr/Fri','Za/Sat');

    popup.setTodayText("Vandaag/Today");
    popup.showYearNavigation();

    return popup;
    }

function set_period_fr( per, fr, to, y, m, d )
    {
    var frval= LZ(d)+ '-'+ LZ(m)+ '-'+ y;
    var toval= to.value;

    var res= toval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( res )
	{
	var ny= Number( y );
	var nm= Number( m );
	var nd= Number( d );
	var ry= Number( res[3] );
	var rm= Number( res[2] );
	var rd= Number( res[1] );

	if  ( 10000* ry+ 100* rm+ rd >= 10000* ny+ 100* nm+ nd )
	    {
	    fr.value= frval;
	    per.value= frval+ '..'+ toval;
	    }
	}
    else{
	fr.value= frval;
	}
    }

function set_period_to( per, fr, to, y, m, d )
    {
    var frval= fr.value;
    var toval= LZ(d)+ '-'+ LZ(m)+ '-'+ y;

    var res= frval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( res )
	{
	var ny= Number( y );
	var nm= Number( m );
	var nd= Number( d );
	var ry= Number( res[3] );
	var rm= Number( res[2] );
	var rd= Number( res[1] );

	if  ( 10000* ry+ 100* rm+ rd <= 10000* ny+ 100* nm+ nd )
	    {
	    to.value= toval;
	    per.value= frval+ '..'+ toval;
	    }
	}
    else{
	to.value= toval;
	}
    }

function onchange_period_fr( per, fr, to )
    {
    var frval= fr.value;
    var toval= to.value;

    var res;

    if  ( frval == "" )
	{ return true;	}

    res= frval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( ! res )
	{ fr.value= ""; return false; }

    var ny= Number( res[3] );
    var nm= Number( res[2] );
    var nd= Number( res[1] );

    res= toval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( res )
	{
	var ry= Number( res[3] );
	var rm= Number( res[2] );
	var rd= Number( res[1] );

	if  ( 10000* ry+ 100* rm+ rd >= 10000* ny+ 100* nm+ nd )
	    { per.value= frval+ '..'+ toval;		}
	else{ fr.value= per.value= ""; return false;	}
	}

    return true;
    }

function onchange_period_to( per, fr, to )
    {
    var frval= fr.value;
    var toval= to.value;

    var res;

    if  ( toval == "" )
	{ return true;	}

    res= toval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( ! res )
	{ to.value= ""; return false; }

    var ny= Number( res[3] );
    var nm= Number( res[2] );
    var nd= Number( res[1] );

    res= frval.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( res )
	{
	var ry= Number( res[3] );
	var rm= Number( res[2] );
	var rd= Number( res[1] );

	if  ( 10000* ry+ 100* rm+ rd <= 10000* ny+ 100* nm+ nd )
	    { per.value= frval+ '..'+ toval;		}
	else{ to.value= per.value= ""; return false;	}
	}

    return true;
    }

function set_period( per, fr, to )
    {
    var cal_res= per.value.match( /^([0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9])\.\.([0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9])$/ );
    if  ( cal_res )
	{
	fr.value= cal_res[1];
	to.value= cal_res[2];
	}
    }

function onchange_date( date )
    {
    var val= date.value;

    var res;

    if  ( val == "" )
	{ return true;	}

    res= val.match( /^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9])$/ );
    if  ( ! res )
	{ date.value= ""; return false; }

    return true;
    }
