var currDate = new Date();
var showCalendarId = '';
var showCalendarBtn = null;
var monthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
var monthNamesR = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
var weekdayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var weekdayInits = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
var frameWindow = self; //окно где лежит фрейм
var targetWindow = self; //окно с полями календаря
var shCal = 0; //индикатор добавления к документу события show/hide

function initLayerCalendar(targetWindow) {

frameWindow = targetWindow;
var cal_wnd = frameWindow.document;
if (!cal_wnd.getElementById('calLeer')) {
var place_obj = cal_wnd.body.appendChild(cal_wnd.createElement('span'));
if (targetWindow == self) {
place_obj.innerHTML = '<div id=\'calLeer\' style=\'position: absolute; top: 0; left: 0; z-index: 3; visibility: hidden;\'></div>';
} else {
place_obj.innerHTML = '<iframe id=\'calLeer\' style=\'position: absolute; top: 0; left: 0; z-index: 3; border: 0px; width: 148px; height: 135px; visibility: hidden;\' frameborder=\'0\' scrolling=\'no\' noresize=\'noresize\'></iframe>';
}
}
}

function showCalendar(btnElem, leerId, fieldName, formName) {
if (!checkAllowDateValue(fieldName, formName)) return;

if (showCalendarId != '') {
hideCurrCalendar();
} else {
// if (showColorId && showColorId != '')
// hideCurrColor(); // проверяем show color
if (showCalendarBtn != btnElem) {
currHiddenField = document.forms[formName].elements["ms_" + fieldName];
if (currHiddenField && currHiddenField.value.length > 0) {
currDate.setTime(currHiddenField.value);
//alert(currHiddenField.value);
} else {
currDate = new Date();
//alert(currDate);
}
showCalendarBtn = btnElem;
showCalendarId = leerId;
drawCalendar(leerId, fieldName, formName, null, null);
}
if (!shCal) {
activateCalSH();
}
}

//bug();
}

//непонятно что за функция - видимо какая-то отладочная
/*
function bug()
{
//document.body.childNodes[0].style.visibility = "hidden";
//document.body.childNodes[0].style.visibility = "visible";
}
*/

function calSH(e)
{
if(showCalendarId != '')
{
if(/firefox/i.test(navigator.userAgent))
event = e;

var calC = document.getElementById(showCalendarId);
var leftC = parseInt(calC.style.left);
var topC = parseInt(calC.style.top);
var widthC = parseInt(calC.clientWidth);
var heightC = parseInt(calC.clientHeight);

var xC = event.x ? event.x : event.clientX;
var yC = event.y ? event.y : event.clientY;

xC += document.body.parentNode.scrollLeft;
yC += document.body.parentNode.scrollTop;

if((xC < leftC) || (xC > (leftC + widthC)) || (yC < (topC - 30)) || yC > (topC + heightC))
hideCurrCalendar();
}
}

function activateCalSH()
{
if(/firefox/i.test(navigator.userAgent))
document.addEventListener("click", calSH, true);
else
{
if(document.onclick)
var lstr = document.onclick.toString().match(/{[^}]+}/).toString().replace(/[{}]/g, "");

var clickFunc = "calSH()";

if(lstr)
clickFunc = lstr + "; " + clickFunc;

document.onclick = new Function(clickFunc);

//if(shCol) shCol = 0;
}
shCal = 1;
}


function hideCurrCalendar() {
if (targetWindow.showCalendarId != '') {
if (document.layers) {
frameWindow.document.layers[showCalendarId].visibility = 'hide';
} else if (document.getElementById) {
frameWindow.document.getElementById(showCalendarId).style.visibility = 'hidden';
var parent_fr = frameWindow.frames[showCalendarId];
if (parent_fr) {
var cal_fr = parent_fr.document.getElementById(showCalendarId);
if (cal_fr) {
cal_fr.style.visibility = 'hidden';
}
}
}
if (targetWindow.showCalendarBtn != null) {
//targetWindow.showCalendarBtn.src = "/_phpsf2/_calendar3/_i/cal_btn.gif";
targetWindow.showCalendarBtn.className = "cc_btn_out";
}
targetWindow.showCalendarId = '';
targetWindow.showCalendarBtn = null;
}

HidePopupDiv('calLeer');

//bug();
}

function setDate(daySet, monthSet, yearSet, hourSet, minuteSet, secondSet, fieldName, formName) {
if (!checkAllowDateValue(fieldName, formName)) return;

var dateToSet = new Date(yearSet, monthSet, daySet, hourSet, minuteSet, secondSet);
var month = monthSet + 1;

var currField = targetWindow.document.forms[formName]["show_" + fieldName];
if (currField) {
currField.value = formatValue(daySet) + '.' + formatValue(month) + '.' + yearSet;
currField.style.color = "";
}
var currHiddenField = targetWindow.document.forms[formName]["ms_" + fieldName];
if (currHiddenField) {
currHiddenField.value = Date.parse(dateToSet.toString());
}
refreshDates(fieldName, formName);
hideCurrCalendar();
}

function refreshDates(fieldName, formName) {

var d = new Date();
var form_obj = targetWindow.document.forms[formName];
d.setTime(form_obj["ms_" + fieldName].value);
form_obj[fieldName].value = '' + formatValue(d.getDate()) + '.' + formatValue((d.getMonth()+1)) + '.' + d.getFullYear();
if (form_obj["time_" + fieldName]) {
form_obj[fieldName].value += ' ' + form_obj["time_" + fieldName].value;
var time_arr = form_obj["time_" + fieldName].value.split(":");
form_obj["h_" + fieldName].value = formatValue(parseInt(time_arr[0], 10));
form_obj["m_" + fieldName].value = formatValue(parseInt(time_arr[1], 10));
form_obj["s_" + fieldName].value = formatValue(parseInt(time_arr[2], 10));
}
}

function updateDate(fieldName, formName) {

//if (!checkAllowDateValue(fieldName, formName)) return;
//alert("show_"+fieldName);
var form_obj = targetWindow.document.forms[formName];
var dateSet = $("#show_"+fieldName).val(); //form_obj.elements["show_" + fieldName].value;
//alert(dateSet+"show_"+fieldName);
var date_arr = dateSet.split('.');
var timeSet = null;

//alert(dateSet);
if (form_obj.elements["time_" + fieldName]) {
timeSet = form_obj.elements["time_" + fieldName].value;
}
var time_arr = ((timeSet) ? timeSet : "0:0:0").split(':');

if ((date_arr.length == 3) && (time_arr.length == 3))
{
if (date_arr[2]!='')
{
var dateToSet = new Date(date_arr[2], (date_arr[1]-1), date_arr[0], time_arr[0], time_arr[1], time_arr[2]);
}else
{
var dateToSet = new Date();
}
form_obj.elements["ms_" + fieldName].value = Date.parse(dateToSet.toString());
refreshDates(fieldName, formName);
}

//blurDateCtrl(form_obj.elements["show_" + fieldName],fieldName, formName)
}

function getCalendarPosition(fieldName)
{
this.find = false;

if(typeof getCustomCalendarPosition == 'function')
{
getCustomCalendarPosition(this, fieldName);
}
else
{
this.find = false;
for (var i = 0; i < document.anchors.length; i++)
{
if (document.anchors[i].name == "apos_" + fieldName)
{
this.x = ancPosX(document.anchors[i]) - 76;
this.y = ancPosY(document.anchors[i]) + 2;
this.find = true;
break;
}
}
}


return this;
}

function ancPosX(anchorPtr) {
if (document.layers) {
return anchorPtr.x;
} else if (document.getElementById) {
var pos = anchorPtr.offsetLeft;
while (anchorPtr.offsetParent != null) {
anchorPtr = anchorPtr.offsetParent;
pos += anchorPtr.offsetLeft;
}
return pos;
}
}

function ancPosY(anchorPtr) {
if (document.layers) {
return anchorPtr.y;
} else if (document.getElementById) {
var pos = anchorPtr.offsetTop;
while (anchorPtr.offsetParent != null) {
anchorPtr = anchorPtr.offsetParent;
pos += anchorPtr.offsetTop;
}
return pos;
}
}

function drawCalendar(leerId, fieldName, formName, showYear, showMonth) {
if (showCalendarBtn != null)
{
targetWindow.showCalendarBtn.className = "cc_btn_in";
//showCalendarBtn.src = "/_phpsf2/_calendar3/_i/cal_btna.gif";
}

var month = new Date();
if (showMonth != null) month.setMonth(showMonth, 1); else month.setMonth(currDate.getMonth());
if (showYear != null) month.setYear(showYear); else month.setYear(currDate.getFullYear());
var thisMonth = month.getMonth();
var nextMonth = (thisMonth == 11)? 0 : thisMonth + 1;
var prevMonth = (thisMonth == 0)? 11 : thisMonth - 1;
var thisYear = month.getFullYear();
var nextYear = (thisMonth == 11)? thisYear + 1 : thisYear;
var prevYear = (thisMonth == 0)? thisYear - 1 : thisYear;
var isThisMonth = (month.getFullYear() == currDate.getFullYear() && month.getMonth() == currDate.getMonth())? true : false;
var time_arr = ((!targetWindow.document.forms[formName]["time_" + fieldName]) ? "0:0:0" : targetWindow.document.forms[formName]["time_" + fieldName].value).split(':');

// table starts
var calendarHTML = '<table cellpadding="0" cellspacing="0" border="0"><tr><td class="calendar_bg"><table cellspacing="1" style="border-collapse: separate" class="calendar"><tr>'
// link back
calendarHTML += '<td class="cheader"><a class="cal_arr_left" href=""' + 'onClick="targetWindow.drawCalendar(\'' + leerId + '\', \''+fieldName+'\', \''+formName+'\', ' + prevYear + ', ' + prevMonth + '); return false;"><img src="\/_phpsf2/_calendar3/_i\/_.gif" alt="Предыдущий месяц" width="12" height="11" border="0" o1nmousedown="this.src=\'\/_phpsf2/_calendar3/_i\/cal_arr_la.gif\';" o1nmouseup="this.src=\'\/_phpsf2/_calendar3/_i\/cal_arr_l.gif\';"><\/a><\/td>';
// month, year row
calendarHTML += '<td class="cheader" colspan="3" style="color: #ffffff; font-weight: bold;" align="left">' + monthNames[month.getMonth()] + '<\/td><td class="cheader" colspan="2" align="left"><input type="text" name="" class="txt dateInput" style="width: 36px; color: #414141; font-size:11px;" maxlength="4" onchange="targetWindow.drawCalendar(\''+leerId+'\', \''+fieldName+'\', \''+formName+'\', this.value, \''+thisMonth+'\');" onkeypress="if ((event.keyCode == 13) && (!isNaN(parseInt(this.value)))) {targetWindow.drawCalendar(\''+leerId+'\', \''+fieldName+'\', \''+formName+'\', parseInt(this.value), \''+thisMonth+'\');}" value="' + month.getFullYear() + '"><\/td>';
// link fwd
calendarHTML += '<td class="cheader"><a href="" class="cal_arr_right" onClick="targetWindow.drawCalendar(\'' + leerId + '\', \''+fieldName+'\', \''+formName+'\', ' + nextYear + ', ' + nextMonth + '); return false;"><img src="\/_phpsf2/_calendar3/_i\/_.gif" alt="Следущий месяц" width="12" height="11" border="0" o1nmousedown="this.src=\'\/_phpsf2/_calendar3/_i\/cal_arr_ra.gif\';" o1nmouseup="this.src=\'\/_phpsf2/_calendar3/_i\/cal_arr_r.gif\';"><\/a><\/td><\/tr>';
// starting the calendar table...
// appending day initials
for (var i = 0; i < weekdayInits.length; i++) calendarHTML += '<td class="cweek">' + weekdayInits[i] + '<\/td>'
calendarHTML += '<tr>'
// getting the first day of the month
month.setDate(1);
var daysToStart = (month.getDay() == 0)? 7 : month.getDay();
// drawing empty cells
for (var i = 0; i < daysToStart - 1; i++) {
var prev_month = new Date(month);
prev_month.setDate(prev_month.getDate() + (i - daysToStart + 1));
calendarHTML += '<td>'+prev_month.getDate()+'<\/td>';
}
// drawing the calendar itself
for (var i = 1; i < 33; i++) {
month.setDate(i);
if (month.getMonth() == thisMonth) {
if (isThisMonth && currDate.getDate() == i) {
//calendarHTML += '<td class="curdate">' + i + '<\/td>';
calendarHTML += '<td class="curdate"><a href="" onClick="targetWindow.setDate(' + i + ', ' + thisMonth + ', ' + thisYear + ', ' + time_arr[0] + ', ' + time_arr[1] + ', ' + time_arr[2] + ', \''+fieldName+'\', \''+formName+'\'); return false;">' + i + '<\/a><\/td>';
} else {
calendarHTML += '<td><a style="cursor: pointer;" onClick="targetWindow.setDate(' + i + ', ' + thisMonth + ', ' + thisYear + ', ' + time_arr[0] + ', ' + time_arr[1] + ', ' + time_arr[2] + ', \''+fieldName+'\', \''+formName+'\'); return false;">' + i + '<\/a><\/td>';
}
if (month.getDay() == 0) calendarHTML += '<\/tr><tr>';
} else {
var htmlLenght = calendarHTML.length;
if (calendarHTML.substring(htmlLenght - 4, htmlLenght) == "<tr>") {
calendarHTML = calendarHTML.substring(0, htmlLenght - 4);
}
break;
}
}
// drawing empty cells if any
var next_month = new Date();

if (month.getDay() != 1) {
var finalDay = (month.getDay() == 0)? 7 : month.getDay();
var daysToEnd = 8 - finalDay;
for (var i = 0; i < daysToEnd; i++) calendarHTML += '<td>'+(i+1)+'<\/td>';
}
// tables ends
calendarHTML += '<\/tr><\/table><\/td><\/tr><\/table>';

if (frameWindow == self) {
var leerElem = document.getElementById(leerId);
leerElem.innerHTML = calendarHTML;
var leerPos = new getCalendarPosition(fieldName);
if (leerPos.find) {
leerElem.style.left = leerPos.x + "px";
leerElem.style.top = leerPos.y + "px";
}

ShowPopupDiv('calLeer');
leerElem.style.visibility = 'visible';

/*if (document.getElementById) {
var leerElem = frameWindow.document.getElementById(leerId);
leerElem.innerHTML = calendarHTML;
if (leerPos.find) {
leerElem.style.left = leerPos.x;
leerElem.style.top = leerPos.y;
leerElem.style.visibility = 'visible';
}
alert("ownerWnd" + leerElem.ownerWnd);
} else if (document.layers) {
document.layers[leerId].left = leerPos.x;
document.layers[leerId].top = leerPos.y;
document.layers[leerId].document.open();
document.layers[leerId].document.write(calendarHTML);
document.layers[leerId].document.close();
document.layers[leerId].visibility = 'show';
}*/
} else {
var leerElem = frameWindow.document.getElementById(leerId);
leerElem.contentWindow.document.open();
leerElem.contentWindow.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="stylesheet" href="/style.css" type="text/css"><script type="text/javascript" src="/_tools/calendar/js/calendar.js"></script></head><body style="margin:0px; padding: 0px; background-color: #b4b4b4;"><div id=\"calLeer\" style=\"width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; visibility: visible;\"\">' + calendarHTML + '</div><script>var o1; var o2; function setTargetWindow(obj, obj2) {targetWindow = obj; frameWindow = obj2; o1 = obj; o2 = obj2;} function setTargetWindowTimer() {targetWindow = o1; frameWindow = o2;}</script></body></html>');
leerElem.contentWindow.document.close();
leerElem.contentWindow.setTargetWindow(targetWindow, frameWindow);
leerElem.contentWindow.setTimeout(leerElem.contentWindow.setTargetWindowTimer, 100);
setFramePosition(leerId, fieldName);




/* frameWindow.frames[leerId].document.open();
frameWindow.frames[leerId].document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="stylesheet" href="/style.css" type="text/css"><script type="text/javascript" src="/_tools/calendar/js/calendar.js"></script></head><body style="margin:0px; padding: 0px; background-color: #b4b4b4;"><div id=\"calLeer\" style=\"width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; visibility: visible;\"\">' + calendarHTML + '</div><script>var o1; var o2; function setTargetWindow(obj, obj2) {targetWindow = obj; frameWindow = obj2; o1 = obj; o2 = obj2;} function setTargetWindowTimer() {targetWindow = o1; frameWindow = o2;}</script></body></html>');
frameWindow.frames[leerId].document.close();
frameWindow.frames[leerId].setTargetWindow(targetWindow, frameWindow);
frameWindow.frames[leerId].setTimeout(frameWindow.frames[leerId].setTargetWindowTimer, 100);
setFramePosition(leerId, fieldName);*/
}
}

function setFramePosition(leerId, fieldName) {
for (var i = 0; i < frameWindow.document.frames.length; i++) {
var leerFrame = frameWindow.document.frames[i];
if (leerFrame == self) {
var leerFrameObj = frameWindow.document.getElementById(leerFrame.name);
var leerElem = frameWindow.document.getElementById(leerId);
//targetWindow = leerElem.ownerWnd;
var leerPos = new getCalendarPosition(fieldName);
leerElem.style.left = leerFrameObj.offsetLeft + leerPos.x + 1;
leerElem.style.top = leerFrameObj.offsetTop + leerPos.y + 1;
leerElem.style.visibility = 'visible';
}
}
}

/*
if (document.layers) {
origWidth = window.innerWidth;
origHeight = window.innerHeight;
}

function resizing() {
if (document.layers) {
if (window.innerWidth != origWidth || window.innerHeight != origHeight) location.reload();
} else hideCurrCalendar();
}
window.onresize = resizing;
*/

/* работа с временем*/
var lastTargetTimeCtrl;

function focusTimeCtrl(obj) {
lastTargetTimeCtrl = obj;
obj.select();
}

function formatValue(value) {
return ((parseInt(value, 10) < 10) ? ("0" + value) : value);
}

function blurTimeCtrl(obj, fieldName, formName) {
var accept = true;
var value = parseInt(obj.value, 10);
if (isNaN(parseInt(obj.value, 10))) {
accept = false;
} else {
if (value < 0) {
accept = false;
} else {
if (obj.name.indexOf("h_") == 0) {
if (value > 23) {
accept = false;
}
} else {
if (value > 59) {
accept = false;
}
}
}
}

if (accept) {
obj.value = formatValue(value);
} else {
obj.value = obj.defaultValue;
}
updateTime(fieldName, formName);
}


function validateDate(fieldName, formName)
{
if (!checkAllowDateValue(fieldName, formName)) return true;

var obj = $("#show_" + fieldName)[0];
var date_arr = obj.value.split('.');
return !((date_arr.length != 3) || ((date_arr.length == 3) && (isNaN(new Date(date_arr[2], (date_arr[1]-1), date_arr[0])))) || (date_arr[2] < 1950 || date_arr[2] > 2049));
}

function blurDateCtrl(obj, fieldName, formName) {

if (!validateDate(fieldName, formName)) {
obj.style.color = "#ff0000";
//obj.focus();
return true;
}

var form_obj = document.forms[formName];
obj.value = (form_obj["time_" + fieldName]) ? form_obj[fieldName].value.substring(0, form_obj[fieldName].value.indexOf(" ")) : form_obj[fieldName].value;
obj.style.color = "";
return true;
}

function setDefaultTargetTimeCtrl(fieldName, formName) {
if (lastTargetTimeCtrl) {
if (lastTargetTimeCtrl.name.indexOf("_" + fieldName) == -1) {
lastTargetTimeCtrl = document.forms[formName]["h_" + fieldName];
}
} else {
lastTargetTimeCtrl = document.forms[formName]["h_" + fieldName];
}
return lastTargetTimeCtrl;
}

function timeUp(fieldName, formName) {
if (!checkAllowDateValue(fieldName, formName)) return;

if (setDefaultTargetTimeCtrl(fieldName, formName)) {
var value = parseInt(lastTargetTimeCtrl.value, 10) + 1;
if (((lastTargetTimeCtrl.name.indexOf("h_") == 0) && (value > 23)) || (value > 59)) {
value = 0;
}
lastTargetTimeCtrl.value = formatValue(value);
updateTime(fieldName, formName);
lastTargetTimeCtrl.focus();
}
}

function timeDown(fieldName, formName) {
if (!checkAllowDateValue(fieldName, formName)) return;

if (setDefaultTargetTimeCtrl(fieldName, formName)) {
var value = parseInt(lastTargetTimeCtrl.value, 10) - 1;
if (value < 0) {
value = (lastTargetTimeCtrl.name.indexOf("h_") == 0) ? "23" : "59";
}
lastTargetTimeCtrl.value = formatValue(value);
updateTime(fieldName, formName);
lastTargetTimeCtrl.focus();
}
}

function keyDownTimeCtrl(fieldName, formName, event) {
if (!event) event = window.event;
if (event.keyCode == 38) {
timeUp(fieldName, formName);
}
if (event.keyCode == 40) {
timeDown(fieldName, formName);
}
return false;
}

function updateTime(fieldName, formName) {
if (!checkAllowDateValue(fieldName, formName)) return;

var form_obj = document.forms[formName];
if (form_obj["time_" + fieldName]) {
form_obj["time_" + fieldName].value = form_obj["h_" + fieldName].value + ":" + form_obj["m_" + fieldName].value + ":" + form_obj["s_" + fieldName].value;
updateDate(fieldName, formName);
}
}

function checkAllowDateValue(fieldName, formName) {

var allow_change_obj = document.forms[formName]['allow_change_' + fieldName];

return (((allow_change_obj) && (allow_change_obj.checked)) || (!allow_change_obj));
}


function setAllowNullEnable(obj)
{
obj.removeAttr("readonly");

obj.get(0).className = obj.get(0).className.replace(/ dateDisabled/gi, "");
}

function setAllowNullDisable(obj)
{
obj.attr("readonly", "readonly");
obj.get(0).className += " dateDisabled";
}



function setAllowNull(fieldName, formName, allow) {

$("#allow_change_" + fieldName).attr('checked', allow);

if (!allow) {


$("#time_" + fieldName).val('00:00:00');
updateDate(fieldName, formName);

$("#show_" + fieldName).val('');
$("#ms_" + fieldName).val('');

/*
$('input[@name = show_' + fieldName + ']').attr("readonly", "readonly");
$('input[@name = h_' + fieldName + ']').attr("readonly", "readonly");
$('input[@name = m_' + fieldName + ']').attr("readonly", "readonly");
$('input[@name = s_' + fieldName + ']').attr("readonly", "readonly");

/*$('input[@name = timeBlock_' + fieldName + ']').attr("disabled", "disabled");*/


setAllowNullDisable($('input[@name = show_' + fieldName + ']'));
setAllowNullDisable($('input[@name = h_' + fieldName + ']').parent());
setAllowNullDisable($('input[@name = h_' + fieldName + ']'));
setAllowNullDisable($('input[@name = m_' + fieldName + ']'));
setAllowNullDisable($('input[@name = s_' + fieldName + ']'));


$('input[@name = ' + fieldName + ']').val("");
} else {
/*
$('input[@name = show_' + fieldName + ']').removeAttr("readonly");
$('input[@name = h_' + fieldName + ']').removeAttr("readonly");
$('input[@name = m_' + fieldName + ']').removeAttr("readonly");
$('input[@name = s_' + fieldName + ']').removeAttr("readonly");

/*$('input[@name = timeBlock_' + fieldName + ']').removeAttr("disabled");*/


setAllowNullEnable($('input[@name = show_' + fieldName + ']'));
setAllowNullEnable($('input[@name = h_' + fieldName + ']').parent());
setAllowNullEnable($('input[@name = h_' + fieldName + ']'));
setAllowNullEnable($('input[@name = m_' + fieldName + ']'));
setAllowNullEnable($('input[@name = s_' + fieldName + ']'));

}

updateDate(fieldName, formName);
}


function stringToDate(stringDate)
{
var date_arr;
if (date_arr = stringDate.match(/([0-9]{2})\.([0-9]{2})\.([0-9]{4})( ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}))?/))
{
var dateToSet = new Date(date_arr[3], date_arr[2], date_arr[1], date_arr[5], date_arr[6], date_arr[7]);

return parseInt(Date.parse(dateToSet.toString()));
}
else
{
return false;
}
}


function compareDates(fieldName1, fieldName2, formName)
{
if (!checkAllowDateValue(fieldName1, formName) || !checkAllowDateValue(fieldName2, formName)) return -1;

if (!validateDate(fieldName1, formName) || !validateDate(fieldName2, formName)) return -1;

var date1 = document.forms[formName][fieldName1].value;
var date2 = document.forms[formName][fieldName2].value;

return(stringToDate(date1) - stringToDate(date2))
}

////проверка на правильность приведения строки, содержащей дату к дате
//function checkDate(str_value) {
// var d_arr = str_value.split(" ")[0].split(".");
// var m = (parseInt(d_arr[1], 10) - 1);
// var target_date = new Date(d_arr[2], m, d_arr[0]);
//// alert(target_date.getFullYear() + "==" + d_arr[2]);
//// alert(target_date.getMonth() + "==" + m);
//// alert(target_date.getDate() + "==" + d_arr[0]);
// return ((target_date.getFullYear() == d_arr[2]) && (target_date.getMonth() == m) && (target_date.getDate() == d_arr[0]));
//}




var g_PopupIFrame;

function IsIE()
{

return ( navigator.appName=="Microsoft Internet Explorer" );

}

function HidePopupDiv(divID)
{

var divPopup;
divPopup=document.getElementById(divID);
divPopup.style.visibility = "hidden";

if (IsIE() && g_PopupIFrame)
{

document.body.removeChild(g_PopupIFrame);
g_PopupIFrame=null;
}
}

function ShowPopupDiv(divID)
{
//alert(divID);
var divPopup=document.getElementById(divID);

if (!IsIE())
{
//Just display the div
divPopup.style.visibility ="visible";
return;

}

//Increase default zIndex of div by 1, so that DIV appears before IFrame
divPopup.style.zIndex=divPopup.style.zIndex+1;

if(!g_PopupIFrame)
{
iFrame= document.createElement('IFRAME');
}
else
{
iFrame = g_PopupIFrame;
}

iFrame.setAttribute("src", "/_nopub/blank.html");

//Match IFrame position with divPopup
iFrame.style.position="absolute";
iFrame.style.left =divPopup.offsetLeft + 'px';
iFrame.style.top =divPopup.offsetTop + 'px';
iFrame.style.width =divPopup.offsetWidth + 'px';
iFrame.style.height =divPopup.offsetHeight + 'px';

document.body.appendChild(iFrame);

//Store iFrame in global variable, so it can get removed when divPopup is hidden
g_PopupIFrame=iFrame;
divPopup.style.visibility ="visible";

}
