
function check_form_dates(formname)
{

	not_exist=new Array("931","1131","431","631","230","231" ) ;

	var leap_year_g ='';
	var leap_year_r ='';
	var go=new Date();
	var datum_g = document.forms[formname].go_month.value;
	  var p1=datum_g.length-4;
	  var yr_g = datum_g.substring(p1,datum_g.length);
	  var mn_g = datum_g.substring(0,p1);


	go.setFullYear(yr_g);
	go.setMonth(mn_g-1);
    go.setDate(document.forms[formname].go_day.value);

	var ret=new Date();
	var datum_r = document.forms[formname].ret_month.value;
	  var p2=datum_r.length-4;
	  var yr_r = datum_r.substring(p2,datum_r.length);
	  var mn_r = datum_r.substring(0,p2);


	ret.setFullYear(yr_r);
	ret.setMonth(mn_r-1);
    ret.setDate(document.forms[formname].ret_day.value);

	if ( ( (yr_g%4 == 0)&&(yr_g%100 != 0) ) || (yr_g%400 == 0) ) { // leap year
		 leap_year_g = 'leap';
		}

	if ( ( (yr_r%4 == 0)&&(yr_r%100 != 0) ) || (yr_r%400 == 0) ) { // leap year
		 leap_year_r = 'leap';
		}


	  var m_d_g = mn_g.toString() + document.forms[formname].go_day.value  ;
	  var m_d_r = mn_r.toString() + document.forms[formname].ret_day.value ;

//  Last days from Februar, not leap year

	if (( m_d_g == 230 || m_d_g == 231 || m_d_g == 229) && leap_year_g != 'leap' ) {
		document.forms[formname].go_day.value = 28;
		}

		if (( m_d_r == 230 || m_d_r == 231 || m_d_r == 229) && leap_year_r != 'leap' ) {
		document.forms[formname].ret_day.value = 28;
		}


 if(not_exist.inArray(m_d_g)){

       document.forms[formname].go_day.value=document.forms[formname].go_day.value-1;
       go.setDate(document.forms[formname].go_day.value-1);
               if(leap_year_g == 'leap' && m_d_g == '231')
                document.forms[formname].go_day.value=document.forms[formname].go_day.value-1;

		}

 if(not_exist.inArray(m_d_r)){

       document.forms[formname].ret_day.value=document.forms[formname].ret_day.value-1;
       ret.setDate( document.forms[formname].ret_day.value-1 );
           if(leap_year_r == 'leap' && m_d_r == '231')
             document.forms[formname].ret_day.value=document.forms[formname].ret_day.value-1;
		}

    var today = new Date();


    if(go.getTime() < today.getTime()){
       document.forms[formname].go_day.value=today.getDate()
       }

/*
	if(go.getTime()>ret.getTime())
	{
		var go_time=go.getTime();
		go_time+=604800000;

		ret.setTime(go_time);


    var yr_to_set = ret.getFullYear().toString();
		document.forms[formname].ret_day.value=ret.getDate();
  //  For date over one year an the same month as today - only for ie

        var retYear   = yr_to_set;
        var todayYear = today.getFullYear().toString();
        var retMonth   = ret.getMonth().toString();
        var todayMonth = today.getMonth().toString();

        if (retYear > todayYear && retMonth == todayMonth )
           document.forms[formname].ret_month.value=(ret.getMonth()).toString()+ yr_to_set;
        else
           document.forms[formname].ret_month.value=(ret.getMonth()+1).toString()+ yr_to_set;

	}
*/
}

Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};