	function format_date(indexM,D,Y){
	if(indexM=='-1' || D=='' || Y==''){return(' ');}
	return(monthN[indexM]+'/'+D+'/'+Y);
	}

	function check_date(indexM,D,Y,status){
	if(status=='disabled'){return(true);}

	D=parseInt(D,10);
	Y=parseInt(Y,10);

	var thisDate=new Date();
	yearMax=9999;
	yearMin=1753;
	dayMin=1;

	switch(indexM){
		case -1:
			dayMax=0;	// not selected
			break;
		case 1:
			dayMax=29;	// Feb
			break;
		case 3:
			dayMax=30;	// Apr
			break;
		case 5:
			dayMax=30;	// Jun
			break;
		case 8:
			dayMax=30;	// Sep
			break;
		case 10:
			dayMax=30;	// Nov
			break;
		default:
			dayMax=31;
			break;
	}
	
	if((Y >= yearMin) && (Y <= yearMax) && (D >= dayMin) && (D <= dayMax)){return(true);}
	
	return(false);
	}


	function getMonthByName(month){
		for(i=1;i<=12;i++){
			ii=i-1; 
			tMonth=g_Calendar.months[ii];
			if(month==tMonth.substring(0,3)){return(i);}
		}
		return false;	
	}


	function set_date_lang(dateString){
		var argv = set_date_lang.arguments;
		if(argv.length==2){
			tform=argv[1];
		}
		else{
			tform=0;
		}



		eval('var monthSI=document.forms['+tform+'].'+dateString+'_month.selectedIndex');
		eval('var daySI=document.forms['+tform+'].'+dateString+'_day.selectedIndex');

		eval('var month=document.forms['+tform+'].'+dateString+'_month.value');
		eval('var day=document.forms['+tform+'].'+dateString+'_day.value');
		eval('var year=document.forms['+tform+'].'+dateString+'_year.value');

		if(monthSI < 0 ||  daySI < 0 || !year.match(/^\d{4,4}$/)){
			return(false);
		}

		if(!check_date(monthSI,day,year,'enabled')){
			return(false);
		}

		eval('document.forms['+tform+'].'+dateString+'.value="'+month+'/'+day+'/'+year+'"');

		return(true);
	}


	var regFullDate=/^\d{1,2}\.\d{1,2}\.\d{4,4}$/; 
	var regYearDate=/^\d{4,4}$/; 

	function set_date_cal(dateString){
	var argv = set_date_cal.arguments;
	if(argv.length==2){
		tform=argv[1];
	}
	else{
		tform=0;
	}

	
	eval('var DATEFIELD=document.forms['+tform+'].'+dateString);
	if(!DATEFIELD){return true;}		

	var dS=DATEFIELD.value;
	//eval('var dS=document.forms['+tform+'].'+dateString+'.value;');

	if(dS==''){
		ClearDate_cal(dateString,tform);
		return true;
	}


	if(dS.match(regFullDate)==null && dS.match(regYearDate)==null){
		alert('Некорректно введена дата');
		eval('document.forms['+tform+'].'+dateString+'.focus()');
		return false;
	}

	if(dS.match(regYearDate)){
		day=0;
		month=0;
		year=dS;
	}


	if(dS.match(regFullDate)){
		arrD=new Array();
		arrD=explode('.',dS);
		//if(arrD.length!=3){
		//	alert('Некорректно введена дата');
		//	eval('document.forms['+tform+'].'+dateString+'.focus()');
		//	return false;
		//}

		day=parseInt(arrD[0],10);
		month=getMonthByName(arrD[1]);
		year=parseInt(arrD[2],10);

		mmonth=month-1;
	
		if(day=='NaN' || !month || year=='NaN' || !check_date(mmonth,day,year,'enabled')){
			alert('Некорректно введена дата');
			eval('document.forms['+tform+'].'+dateString+'.focus()');
			return false;
		}
	}

	eval('document.forms['+tform+'].'+dateString+'_month.value='+month);
	eval('document.forms['+tform+'].'+dateString+'_day.value='+day);
	eval('document.forms['+tform+'].'+dateString+'_year.value='+year);

	return true;
	}	


	function compare_dates_cal(dateString1,dateString2){

	eval('D1=document.forms[0].'+dateString1+'_day.value');
	eval('M1=document.forms[0].'+dateString1+'_month.value');
	eval('Y1=document.forms[0].'+dateString1+'_year.value');

	eval('D2=document.forms[0].'+dateString2+'_day.value');
	eval('M2=document.forms[0].'+dateString2+'_month.value');
	eval('Y2=document.forms[0].'+dateString2+'_year.value');

	D1=new Date(parseInt(Y1,10),parseInt(M1,10)-1,parseInt(D1,10));
	D2=new Date(parseInt(Y2,10),parseInt(M2,10)-1,parseInt(D2,10));

	if((!isNaN(D1) && isNaN(D2)) || (isNaN(D1) && !isNaN(D2))){
		alert('Please enter a correct period or clear the dates!');
		return false;
	}	

	if((!isNaN(D1) && !isNaN(D2)) && (D1.getTime() > D2.getTime())){
		alert('Please enter a correct period or clear the dates!');
		return false;
	}	

	if(isNaN(D1) && isNaN(D2)){
		ClearDate(dateString1);
		ClearDate(dateString2);
	}

	return true;
	}

	function ClearDate(dateString){
	var argv = ClearDate.arguments;
	if(argv.length==2){
		tform=argv[1];
	}
	else{
		tform=0;
	}
	eval('document.forms['+tform+'].'+dateString+'_month.selectedIndex=-1');
	eval('document.forms['+tform+'].'+dateString+'_day.value=\'\'');
	eval('document.forms['+tform+'].'+dateString+'_year.value=\'\'');
	}
	
	function SetDateMode_cal(mode){
	if(mode=='enable'){EDIT_DISABLED_BOOL=0;}
	if(mode=='disable'){EDIT_DISABLED_BOOL=1;}
	}
	
	function ClearDate_cal(dateString){
	var argv = ClearDate_cal.arguments;
	if(argv.length==2){
		tform=argv[1];
	}
	else{
		tform=0;
	}
	if(EDIT_DISABLED_BOOL){return;}
	eval('document.forms['+tform+'].'+dateString+'.value=\'\'');
	eval('document.forms['+tform+'].'+dateString+'_month.value=\'\'');
	eval('document.forms['+tform+'].'+dateString+'_day.value=\'\'');
	eval('document.forms['+tform+'].'+dateString+'_year.value=\'\'');
	}
	

