/*
*	Календарик. v0.0.2
*/

var cpDate			= new Date()
var cpDateCurrent	= cpDate.getDate()+"."+(cpDate.getMonth() + 1)+"."+cpDate.getFullYear()
var cpDateFormat	= /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/
var cpCounter		= 0
var cpFields		= new Array()
var cpMonthName		= new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь')
var cpMonthDays		= new Array()
var cpDatePrev		= cpDateCurrent
var cpDateNext		= cpDateCurrent
var cpImage			= '/media/icon_calendar.gif'
var cpBrowser		= calendarPopupGetBrowser()

function calendarPopupCreate(cpField) {
	if (cpBrowser) {
		cpFields[cpCounter] = cpField
		document.write('<a href="javascript:;" onclick="return false;"><img border="0" src="'+cpImage+'" name="calendarPopupImage_'+cpCounter+'" id="calendarPopupImage_'+cpCounter+'" width="14" height="12" onclick="calendarPopupBuild(cpFields[' + cpCounter + '].value, ' + cpCounter + ');event.cancelBubble=true;"></a>')
		if (cpBrowser == 'opera') {
			document.write('<div id="calendarPopup_'+cpCounter+'" style="position:absolute;visibility:hidden;" onclick="event.cancelBubble=true"></div>')
		} else {
			document.write('<iframe id="calendarPopup_'+cpCounter+'" name="calendarPopup_'+cpCounter+'" marginwidth="0" marginheight="0" frameborder="0" style="position:absolute;visibility:hidden;width:100px;height:100px;" onclick="event.cancelBubble=true"></iframe>')
			document.all['calendarPopup_'+cpCounter].document.open()
			document.all['calendarPopup_'+cpCounter].document.write('<html><body></body></html>')
			document.all['calendarPopup_'+cpCounter].document.close()
		}
		cpCounter++
	}
}

function calendarPopupGetBrowser() {
	if (navigator.userAgent.toLowerCase().indexOf('opera') != -1) {
		return 'opera'
	} else if (document.all) {
		return 'ie'
	}
	return false
}

function calendarPopupBuild(cpDateSelected, cpId) {
	calendarPopupHide()
	if (!cpDateSelected || !cpDateFormat.test(cpDateSelected)) {
		cpDateSelected = cpDateCurrent
	}
	var cpTmpDate	= cpDateSelected.match(cpDateFormat)
	var cpYear		= cpTmpDate[3]
	var cpMonth		= cpTmpDate[2]
	var cpDay		= cpTmpDate[1]
	cpMonthDays		= new Array(31, ((cpYear % 4) ? 28 : 29), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
	cpTmpDate		= new Date(cpYear, cpMonth - 2, cpDay)
	cpDatePrev		= "13." + ((cpTmpDate.getMonth() + 1 >= 10) ? cpTmpDate.getMonth() + 1 : '0' + (cpTmpDate.getMonth() + 1)) + "." + cpTmpDate.getFullYear()
	cpTmpDate		= new Date(cpYear, cpMonth, cpDay)
	cpDateNext		= "13." + ((cpTmpDate.getMonth() + 1 >= 10) ? cpTmpDate.getMonth() + 1 : '0' + (cpTmpDate.getMonth() + 1)) + "." + cpTmpDate.getFullYear()
	var cpContainer = document.getElementById("calendarPopup_" + cpId)
	cpHTML  = ''
	cpHTML += '<table id="calendarPopupTable" cellpadding="0" cellspacing="1" border="0" bgcolor="#7f7f7f"><tr><td>'
	cpHTML += '<table cellpadding="0" cellspacing="1" border="0" bgcolor="#ffffff"><tr><td>'
	cpHTML += '<table width="100%" cellpadding="0" cellspacing="0" border="0" bgcolor="#d5dbe0" style="height:24px;font-family:arial;font-weight:bold;font-size:11px;color:#333333;"><tr><td>&nbsp;<a href="javascript:;" style="font-family:arial;font-weight:bold;font-size:11px;color:#333333;text-decoration:underline;" onclick="' + ((cpBrowser == 'opera') ? '' : 'parent.') + 'calendarPopupBuild(\'' + cpDatePrev + '\', ' + cpId + ');return false;">&lt;&lt;</a></td>'
	cpHTML += '<td width="100%" align="center">' + cpMonthName[cpMonth - 1] + '&nbsp;' + cpYear + '</td><td><a href="javascript:;" style="font-family:arial;font-weight:bold;font-size:11px;color:#333333;text-decoration:underline;" onclick="' + ((cpBrowser == 'opera') ? '' : 'parent.') + 'calendarPopupBuild(\'' + cpDateNext + '\', ' + cpId + ');return false;">&gt;&gt;</a>&nbsp;</td><td style="padding-right:4px;"><a href="javascript:;" onclick="' + ((cpBrowser == 'opera') ? '' : 'parent.') + 'calendarPopupHide()"><img src="/media/btn_close.gif" width="16" height="15" border="0" alt="Закрыть"></a></td></tr></table></td></tr>'
	cpHTML += '<tr><td bgcolor="#e6eef2" style="padding:2px 5px 2px 5px;"><table cellpadding="0" cellspacing="1" border="0" style="font-family:arial;font-size:11px;color:#333333;">'
	cpHTML += '<tr align="right" style="font-weight:bold;"><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td></tr>'
	cpTmpDate.setDate('1')
	cpTmpDate.setMonth(cpMonth - 1)
	cpTmpDate.setFullYear(cpYear)
	var cpTmpDay			= 1
	var cpTmpWeekDay		= cpTmpDate.getDay() ? cpTmpDate.getDay() : 7
	var cpTmpWeeks			= Math.ceil((cpMonthDays[cpMonth - 1] + cpTmpWeekDay) / 7)
	var cpTmpMonthFlag		= false
	var cpTmpDateSelected	= cpDateFormat.test(cpFields[cpId].value) ? cpDateFormat.exec(cpFields[cpId].value) : cpDateFormat.exec(cpDateCurrent)
	var cpTmpDaySelected	= ((cpTmpDateSelected[2] == cpMonth) && (cpTmpDateSelected[3] == cpYear)) ? cpDay : 0
	if (cpMonth.substring(0, 1) == '0') {
		cpMonth = '0' + cpMonth.substring(1, 2)
	} else if (cpMonth.length == 1) {
		cpMonth = '0' + cpMonth
	}
	for (i=1; i<=cpTmpWeeks; i++) {
		cpHTML += '<tr>'
		for (j=1; j<=7; j++) {
			if (!cpTmpMonthFlag) {
				if (j != cpTmpWeekDay) {
					cpHTML += '<td></td>'
				} else {
					cpTmpMonthFlag = true
					if (cpTmpDay < 10) {
						tmpDay = '0' + cpTmpDay
					} else {
						tmpDay = cpTmpDay
					}
					tmpMonth = cpMonth
					cpHTML += '<td align="right" style="padding:0px 2px 0px 3px;cursor:hand;" onclick="' + ((cpBrowser == 'opera') ? '' : 'parent.') + 'calendarPopupSetDate(\'' + tmpDay + '.' + tmpMonth + '.' + cpYear + '\', ' + cpId + ');" onmouseover="" onmouseout="">' + ((cpTmpDaySelected == cpTmpDay) ? '<span style="font-weight:bold;">' + cpTmpDay + '</span>' : cpTmpDay) + '</td>'
				}
			} else {
				if (cpTmpDay < cpMonthDays[cpMonth - 1]) {
					++cpTmpDay;
					if (cpTmpDay < 10) {
						tmpDay = '0' + cpTmpDay
					} else {
						tmpDay = cpTmpDay
					}
					tmpMonth = cpMonth
					cpHTML += '<td align="right" style="padding:0px 2px 0px 3px;cursor:hand;" onclick="' + ((cpBrowser == 'opera') ? '' : 'parent.') + 'calendarPopupSetDate(\'' + tmpDay + '.' + tmpMonth + '.' + cpYear + '\', ' + cpId + ')" onmouseover="" onmouseout="">' + ((cpTmpDaySelected == cpTmpDay) ? '<span style="font-weight:bold;">' + cpTmpDay + '</span>' : cpTmpDay) + '</td>'
				} else {
					cpHTML += '<td></td>'
				}
			}
		}
		cpHTML += "</tr>"
	}
	cpHTML += '</table></td></tr></table></td></tr></table>'
	if (cpBrowser == 'opera') {
		cpContainer.innerHTML = cpHTML
	} else {
		document.frames[cpContainer.name].document.body.innerHTML = cpHTML
		cpContainer.style.width = document.frames[cpContainer.name].document.all['calendarPopupTable'].scrollWidth + 'px'
		cpContainer.style.height = document.frames[cpContainer.name].document.all['calendarPopupTable'].scrollHeight + 'px'
	}
	cpContainer.style.visibility = 'visible'
}

function calendarPopupSetDate(cpDate, cpId) {
	if (cpBrowser == 'opera') {
		cpFields[cpId].value = cpDate
	} else {
		parent.cpFields[cpId].value = cpDate
	}
	var cpContainer = document.getElementById("calendarPopup_" + cpId)
	cpContainer.style.visibility = 'hidden'
}

function calendarPopupHide() {
	for (i=0; i<cpFields.length; i++) {
		document.getElementById('calendarPopup_' + i).style.visibility = 'hidden'
	}
}