
var arCalendar = new Array();
var CalendarID = '';
var InputElementName = new Array();

function WriteMonth(y, m, ddd){
	var mArray = new Array(31, ((Math.round(y/4)*4 == y)? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mnArray = new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь')
	var someDate = new Date ();
	var sD = '';
    var today = {Y: someDate.getFullYear(), D: someDate.getDate(), M: someDate.getMonth()};
    var activ2 = {Y: y, D: ddd, M: m};

	someDate.setYear(y);
	someDate.setMonth(m);

	var d = 1;
	var yy = [((m==0)?y-1:y), (y-1), (y+1), ((m==11)?y+1:y)];
	var mm = [((m==0)?11:m-1), (m), (m), ((m==11)?0:m+1)];

	sD = '<table><tr class="cheader">'+
	'<th><a href="javascript:ShowMonth('+(yy[0])+', '+(mm[0])+', false)">&lt;</a></th>'+
	'<th><a href="javascript:ShowMonth('+(yy[1])+', '+(mm[1])+', false)">&lt;&lt;</a></th>'+
	'<th colspan="3">'+mnArray[m]+'&nbsp;'+y+'</th>'+
	'<th><a href="javascript:ShowMonth('+(yy[2])+', '+(mm[2])+', false)">&gt;&gt;<a></th>'+
	'<th><a href="javascript:ShowMonth('+(yy[3])+', '+(mm[3])+', false)">&gt;</a></th></tr>';

	sD = sD + '<tr><th>Пн</th> <th>Вт</th> <th>Ср</th> <th>Чт</th> <th>Пн</th> <th><font color="red">Сб</font></th> <th><font color="red">Вс</font></th></tr>';

	while(d <= mArray[m]){
		someDate.setDate(d);
		var k = someDate.getDay();
		var j;
		sD = sD + '<tr>';
		for(i = 1; i <= 7; i++){
			j = (k == 0)? 7 : k;
			if(i < j){
				 sD = sD + '<td></td>';
			}
			else if(d <= mArray[m]){
				var sMonth = new String(m+1), sDay = new String(d);
				sMonth = (sMonth.length == 1)? '0'+sMonth : sMonth;
				sDay = (sDay.length == 1)? '0'+sDay : sDay;
				var sDate = new String(sDay+'.'+sMonth+'.'+y);

				if(today.Y == y && today.D == d && today.M == m) {
					sD = sD + '<td onMouseOver="ActiveColor(this)" onMouseOut="noActiveColor(this)" onClick="DateClick(\''+sDate+'\')" style="border: 1px solid red;">'+d+'</td>';
				}
				else
					sD = sD + '<td onMouseOver="ActiveColor(this)" onMouseOut="noActiveColor(this)" onClick="DateClick(\''+sDate+'\')">'+d+'</td>';
				d++;
			}
		}
		sD = sD + '</tr>';
	}
	sD = sD + '</table>';
	return sD;
}

function ShowMonth(y, m, isNew){
	var sDate = document.getElementById(InputElementName[CalendarID]).value;
    var arDate = sDate.split(".");
	var d = 1;
    if(arDate.length == 3 && isNew) {
    	y = new Number(arDate[2]);
    	m = (new Number(arDate[1]))-1;
    	if(arDate[0].substr(0,1)=='0') arDate[0] = arDate[0].substr(1,1);
    	d = new Number(arDate[0]);
    }
	document.getElementById("calendar"+CalendarID).innerHTML = WriteMonth(y, m, d);
}

function ActiveColor(o){
	o.className = 'calendar-m-date-active';
}

function noActiveColor(o){
	o.className = 'calendar-m-date';
}

function DateClick(d){
	if(document.getElementById(InputElementName[CalendarID])){
		document.getElementById(InputElementName[CalendarID]).value = d;
		CalendarClick(CalendarID);
	}
}

function CalendarClick(id){
    CalendarID = id;
    var i;
	if(document.getElementById("calendar"+id).style.display == 'none'){
		for(i in arCalendar){
			if(document.getElementById("calendar"+i))
				document.getElementById("calendar"+i).style.display = 'none';
		}
		document.getElementById("calendar"+id).style.display = 'block';
	}
	else{
		for(i in arCalendar){
			if(document.getElementById("calendar"+i))
				document.getElementById("calendar"+i).style.display = 'none';
		}
		document.getElementById("calendar"+id).style.display = 'none';
	}
}

function CalendarOut(id, tElement, tElementValue, float, path){
	var someDate = new Date();
	CalendarID = id;
	arCalendar[CalendarID] = true;
	InputElementName[CalendarID] = tElement;

	document.write('<table align="'+float+'"><tr><td><input name="'+tElement+'" type="text" value="'+tElementValue+'" id="'+tElement+'"></td><td>');
	document.write('<div style="float:left; width:25px; height:25px;"><img src="'+path+'/calendar/calendar.gif" onClick="CalendarClick('+id+')" >');
 	document.write('<div class="calendar-m" id="calendar'+id+'" style="display:none;"></div>');
  	document.write('</div></td></tr></table>');

	ShowMonth(someDate.getFullYear(), someDate.getMonth(), true);
}

function CalendarInit(id, tElement){
	var someDate = new Date();
	CalendarID = id;
	arCalendar[CalendarID] = true;
	InputElementName[CalendarID] = tElement;
	ShowMonth(someDate.getFullYear(), someDate.getMonth(), true);	
}

var CL = {
	ID:1,
	Add: function(cls){
		CL.ID++;
		var span = document.createElement("SPAN");
		span.id = 'calendar_id'+CL.ID;
		span.className = cls;
		span.innerHTML = '<img src="/images/loder.gif"> Подождите';
		document.getElementById('calendar_id').appendChild(span);
		loadDocFn('/_ajax/?type=delivery_date&id='+CL.ID, function(req){
			document.getElementById(span.id).innerHTML = req.responseText;
			CalendarInit(CL.ID, 'delivery-date'+CL.ID);
		});
	},
	Del: function(i){
		var o = document.getElementById('calendar_id'+i);
		document.getElementById('calendar_id').removeChild(o);
	},
	Load: function(list, id){
		CL.ID = list.length;
		var url = '/_ajax/?type=delivery_date';		
		if(list.length) url += '&date='+list.join('&date=');
		else url += '&load=1';
		if(id) url += '&id='+id;
		//alert(url);
		loadDocFn(url, function(req){
			document.getElementById('calendar_id').innerHTML = req.responseText;
			var i = 1;
			while(document.getElementById('delivery-date'+i)){
				CalendarInit(i, 'delivery-date'+i);
				i++;
			}
			CL.ID = i;
		});
	}	
};

