﻿var monthArray;
var monthArrayShort;
var dayArray;
var weekString;
var todayString;
var nullDateString;
var allowSelectNone = false;
var bottomString = '';
var exterDiv = '';
var imginfoString = '';
//var durationClientId = '';
//var languageCode;	// Possible values: 	en,ge,no,nl,es,pt-br,fr	
// en = english, ge = german, no = norwegian,nl = dutch, es = spanish, pt-br = portuguese, fr = french, da = danish, hu = hungarian(Use UTF-8 doctype for hungarian)

var calendar_display_time = true;

// Format of current day at the bottom of the calendar
// [todayString] = the value of todayString
// [dayString] = day of week (examle: mon, tue, wed...)
// [UCFdayString] = day of week (examle: Mon, Tue, Wed...) ( First letter in uppercase)
// [day] = Day of month, 1..31
// [monthString] = Name of current month
// [year] = Current year							
var todayStringFormat = '[todayString] [UCFdayString]. [day]. [monthString] [year]';
var pathToImages; // Relative to your HTML file

var speedOfSelectBoxSliding = 200; // Milliseconds between changing year and hour when holding mouse over "-" and "+" - lower value = faster
var intervalSelectBox_minutes = 5; // Minute select box - interval between each option (5 = default)

var calendar_offsetTop = 0; 	// Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
var calendar_offsetLeft = 0; // Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
var calendarDiv = false;

var autoPostBack = false;
var inputFieldId;

var MSIE = false;
var Opera = false;
if (navigator.userAgent.indexOf('MSIE') >= 0 && navigator.userAgent.indexOf('Opera') < 0) MSIE = true;
if (navigator.userAgent.indexOf('Opera') >= 0) Opera = true;

var daysInMonthArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var currentMonth;
var currentYear;
var currentHour;
var currentMinute;
var calendarContentDiv;
var returnDateTo;
var returnFormat;
var activeSelectBoxMonth;
var activeSelectBoxYear;
var activeSelectBoxHour;
var activeSelectBoxMinute;

var iframeObj = false;
//// fix for EI frame problem on time dropdowns 09/30/2006
var iframeObj2 = false;

function EIS_FIX_EI1(where2fixit) {

    if (!iframeObj2) return;
    iframeObj2.style.display = 'block';
    iframeObj2.style.height = document.getElementById(where2fixit).offsetHeight + 1;
    iframeObj2.style.width = document.getElementById(where2fixit).offsetWidth;
    iframeObj2.style.left = getleftPos(document.getElementById(where2fixit)) + 1 - calendar_offsetLeft;
    iframeObj2.style.top = getTopPos(document.getElementById(where2fixit)) - document.getElementById(where2fixit).offsetHeight - calendar_offsetTop;
}

function EIS_Hide_Frame()
{ if (iframeObj2) iframeObj2.style.display = 'none'; }
//// fix for EI frame problem on time dropdowns 09/30/2006
var returnDateToYear;
var returnDateToMonth;
var returnDateToDay;
var returnDateToHour;
var returnDateToMinute;

var inputYear;
var inputMonth;
var inputDay;
var inputHour;
var inputMinute;
var calendarDisplayTime = false;

var selectBoxHighlightColor = '#D60808'; // Highlight color of select boxes
var selectBoxRolloverBgColor = '#E2EBED'; // Background color on drop down lists(rollover)

var selectBoxMovementInProgress = false;
var activeSelectBox = false;

function cancelCalendarEvent() {
    return false;
}
function isLeapYear(inputYear) {
    if (inputYear % 400 == 0 || (inputYear % 4 == 0 && inputYear % 100 != 0)) return true;
    return false;

}
var activeSelectBoxMonth = false;
var activeSelectBoxDirection = false;

function highlightMonthYear() {
    if (activeSelectBoxMonth) activeSelectBoxMonth.className = '';
    activeSelectBox = this;


    if (this.className == 'monthYearActive') {
        this.className = '';
    } else {
        this.className = 'monthYearActive';
        activeSelectBoxMonth = this;
    }

    if (this.innerHTML.indexOf('-') >= 0 || this.innerHTML.indexOf('+') >= 0) {
        if (this.className == 'monthYearActive')
            selectBoxMovementInProgress = true;
        else
            selectBoxMovementInProgress = false;
        if (this.innerHTML.indexOf('-') >= 0) activeSelectBoxDirection = -1; else activeSelectBoxDirection = 1;

    } else selectBoxMovementInProgress = false;

}

function showMonthDropDown() {
    if (document.getElementById('monthDropDown').style.display == 'block') {
        document.getElementById('monthDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    } else {
        document.getElementById('monthDropDown').style.display = 'block';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE)
        { EIS_FIX_EI1('monthDropDown') }
        //// fix for EI frame problem on time dropdowns 09/30/2006

    }
}

function showYearDropDown() {
    if (document.getElementById('yearDropDown').style.display == 'block') {
        document.getElementById('yearDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    } else {
        document.getElementById('yearDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE)
        { EIS_FIX_EI1('yearDropDown') }
        //// fix for EI frame problem on time dropdowns 09/30/2006

    }

}
function showHourDropDown() {
    if (document.getElementById('hourDropDown').style.display == 'block') {
        document.getElementById('hourDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    } else {
        document.getElementById('hourDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE)
        { EIS_FIX_EI1('hourDropDown') }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    }

}
function showMinuteDropDown() {
    if (document.getElementById('minuteDropDown').style.display == 'block') {
        document.getElementById('minuteDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    } else {
        document.getElementById('minuteDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        if (MSIE)
        { EIS_FIX_EI1('minuteDropDown') }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    }

}

function selectMonth() {
    var currentTime = new Date();
    document.getElementById('calendar_month_txt').innerHTML = this.innerHTML

    currentMonth = this.id.replace(/[^\d]/g, '');
    if (currentMonth > 11) {
        currentMonth = currentMonth - 12;
    }
    var monthyear = this.innerHTML.split(" ");
    currentYear = monthyear[1];

    document.getElementById('monthDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    for (var no = 0 + currentTime.getMonth(); no < monthArray.length + currentTime.getMonth(); no++) {
        try {
            document.getElementById('monthDiv_' + no).style.color = '';
        }
        catch (Error) { }
    }
    // this.style.color = selectBoxHighlightColor;
    activeSelectBoxMonth = this;
    writeCalendarContent();

}

function selectHour() {
    document.getElementById('calendar_hour_txt').innerHTML = this.innerHTML
    currentHour = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('hourDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxHour) {
        activeSelectBoxHour.style.color = '';
    }
    activeSelectBoxHour = this;
    this.style.color = selectBoxHighlightColor;
}

function selectMinute() {
    document.getElementById('calendar_minute_txt').innerHTML = this.innerHTML
    currentMinute = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('minuteDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxMinute) {
        activeSelectBoxMinute.style.color = '';
    }
    activeSelectBoxMinute = this;
    this.style.color = selectBoxHighlightColor;
}


function selectYear() {
    document.getElementById('calendar_year_txt').innerHTML = this.innerHTML
    currentYear = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('yearDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxYear) {
        activeSelectBoxYear.style.color = '';
    }
    activeSelectBoxYear = this;
    this.style.color = selectBoxHighlightColor;
    writeCalendarContent();

}

function switchMonth() {

    var dateObj = new Date();
    var maximumMonth = dateObj.getMonth();
    var maximumYear = dateObj.getFullYear();

    if (maximumMonth == 0) {
        maximumMonth == 11;
    }
    else {
        maximumMonth--;
        maximumYear += 2;
    }


    if (this.src.indexOf('left') >= 0) {
        if (currentMonth - 1 >= dateObj.getMonth() || currentYear > dateObj.getFullYear()) {
            currentMonth = currentMonth - 1;
            if (currentMonth < 0) {
                currentMonth = 11;
                currentYear = currentYear - 1;
            }
        }
    } else {
        currentMonth = currentMonth + 1;
        if (currentMonth > 11) {
            currentMonth = 0;
            currentYear = currentYear / 1 + 1;
        }
        //        if (currentMonth > maximumMonth && currentYear >= maximumYear) {
        //            currentMonth--;
        //            if (currentMonth < 0) {
        //                currentMonth = 0
        //                currentYear--;
        //            }
        //        }
    }

    writeCalendarContent();


}

function createMonthDiv() {
    var div = document.createElement('DIV');
    div.className = 'monthYearPicker';
    div.id = 'monthPicker';
    var currentTime = new Date();

    for (var no = 0; no < 12; no++) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = monthArray[no];
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectMonth;
        subDiv.id = 'monthDiv_' + (no + currentTime.getMonth());
        subDiv.style.width = '95%';
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentMonth && currentMonth == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxMonth = subDiv;
        }

    }
    return div;

}

function changeSelectBoxYear(e, inputObj) {
    if (!inputObj) inputObj = this;
    var yearItems = inputObj.parentNode.getElementsByTagName('DIV');
    if (inputObj.innerHTML.indexOf('-') >= 0) {
        var startYear = yearItems[1].innerHTML / 1 - 1;
        if (activeSelectBoxYear) {
            activeSelectBoxYear.style.color = '';
        }
    } else {
        var startYear = yearItems[1].innerHTML / 1 + 1;
        if (activeSelectBoxYear) {
            activeSelectBoxYear.style.color = '';

        }
    }

    for (var no = 1; no < yearItems.length - 1; no++) {
        yearItems[no].innerHTML = startYear + no - 1;
        yearItems[no].id = 'yearDiv' + (startYear / 1 + no / 1 - 1);

    }
    if (activeSelectBoxYear) {
        activeSelectBoxYear.style.color = '';
        if (document.getElementById('yearDiv' + currentYear)) {
            activeSelectBoxYear = document.getElementById('yearDiv' + currentYear);
            activeSelectBoxYear.style.color = selectBoxHighlightColor; ;
        }
    }
}
function changeSelectBoxHour(e, inputObj) {
    if (!inputObj) inputObj = this;

    var hourItems = inputObj.parentNode.getElementsByTagName('DIV');
    if (inputObj.innerHTML.indexOf('-') >= 0) {
        var startHour = hourItems[1].innerHTML / 1 - 1;
        if (startHour < 0) startHour = 0;
        if (activeSelectBoxHour) {
            activeSelectBoxHour.style.color = '';
        }
    } else {
        var startHour = hourItems[1].innerHTML / 1 + 1;
        if (startHour > 14) startHour = 14;
        if (activeSelectBoxHour) {
            activeSelectBoxHour.style.color = '';

        }
    }
    var prefix = '';
    for (var no = 1; no < hourItems.length - 1; no++) {
        if ((startHour / 1 + no / 1) < 11) prefix = '0'; else prefix = '';
        hourItems[no].innerHTML = prefix + (startHour + no - 1);

        hourItems[no].id = 'hourDiv' + (startHour / 1 + no / 1 - 1);

    }
    if (activeSelectBoxHour) {
        activeSelectBoxHour.style.color = '';
        if (document.getElementById('hourDiv' + currentHour)) {
            activeSelectBoxHour = document.getElementById('hourDiv' + currentHour);
            activeSelectBoxHour.style.color = selectBoxHighlightColor; ;
        }
    }
}

function updateYearDiv() {
    var div = document.getElementById('yearDropDown');
    var yearItems = div.getElementsByTagName('DIV');
    for (var no = 1; no < yearItems.length - 1; no++) {
        //		yearItems[no].innerHTML = currentYear/1 -6 + no;	
        //		if(currentYear==(currentYear/1 -6 + no)){
        //yearItems[no].innerHTML = currentYear/1 - 1 + no;	
        if (currentYear == (currentYear / 1 - 1 + no)) {
            //yearItems[no].style.color = selectBoxHighlightColor;
            //activeSelectBoxYear = yearItems[no];				
        } else {
            yearItems[no].style.color = '';
        }
    }
}

function updateMonthDiv() {
    var currentTime = new Date();

    for (no = 0 + currentTime.getMonth(); no < 12 + currentTime.getMonth(); no++) {
        document.getElementById('monthDiv_' + no).style.color = '';
    }
    //document.getElementById('monthDiv_' + currentMonth).style.color = selectBoxHighlightColor;
    activeSelectBoxMonth = document.getElementById('monthDiv_' + currentMonth);
}


function updateHourDiv() {
    var div = document.getElementById('hourDropDown');
    var hourItems = div.getElementsByTagName('DIV');

    var addHours = 0;
    if ((currentHour / 1 - 6 + 1) < 0) {
        addHours = (currentHour / 1 - 6 + 1) * -1;
    }
    for (var no = 1; no < hourItems.length - 1; no++) {
        var prefix = '';
        if ((currentHour / 1 - 6 + no + addHours) < 10) prefix = '0';
        hourItems[no].innerHTML = prefix + (currentHour / 1 - 6 + no + addHours);
        if (currentHour == (currentHour / 1 - 6 + no)) {
            hourItems[no].style.color = selectBoxHighlightColor;
            activeSelectBoxHour = hourItems[no];
        } else {
            hourItems[no].style.color = '';
        }
    }
}

function updateMinuteDiv() {
    for (no = 0; no < 60; no += intervalSelectBox_minutes) {
        var prefix = '';
        if (no < 10) prefix = '0';

        document.getElementById('minuteDiv_' + prefix + no).style.color = '';
    }
    if (document.getElementById('minuteDiv_' + currentMinute)) {
        document.getElementById('minuteDiv_' + currentMinute).style.color = selectBoxHighlightColor;
        activeSelectBoxMinute = document.getElementById('minuteDiv_' + currentMinute);
    }
}



function createYearDiv() {

    if (!document.getElementById('yearDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    } else {
        var div = document.getElementById('yearDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }


    var d = new Date();
    var startYear = d.getFullYear()
    if (currentYear) {
        d.setFullYear(currentYear);
    }

    //var startYear = d.getFullYear()/1 - 5;


    //	var subDiv = document.createElement('DIV');
    //	subDiv.innerHTML = '&nbsp;&nbsp;- ';
    //	subDiv.onclick = changeSelectBoxYear;
    //	subDiv.onmouseover = highlightMonthYear;
    //	subDiv.onmouseout = function(){ selectBoxMovementInProgress = false;};	
    //	subDiv.onselectstart = cancelCalendarEvent;	
    //	div.appendChild(subDiv);

    for (var no = startYear; no < (startYear + 3); no++) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = no;
        subDiv.id = 'yearDiv' + no;

        subDiv.onselectstart = cancelCalendarEvent;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectYear;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    //	var subDiv = document.createElement('DIV');
    //	subDiv.innerHTML = '&nbsp;&nbsp;+ ';
    //	subDiv.onclick = changeSelectBoxYear;
    //	subDiv.onmouseover = highlightMonthYear;
    //	subDiv.onmouseout = function(){ selectBoxMovementInProgress = false;};		
    //	subDiv.onselectstart = cancelCalendarEvent;
    //	div.appendChild(subDiv);		
    return div;
}

/* This function creates the hour div at the bottom bar */

function slideCalendarSelectBox() {
    if (selectBoxMovementInProgress) {
        if (activeSelectBox.parentNode.id == 'hourDropDown') {
            changeSelectBoxHour(false, activeSelectBox);
        }
        if (activeSelectBox.parentNode.id == 'yearDropDown') {
            changeSelectBoxYear(false, activeSelectBox);
        }

    }
    setTimeout('slideCalendarSelectBox()', speedOfSelectBoxSliding);

}

function createHourDiv() {
    if (!document.getElementById('hourDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    } else {
        var div = document.getElementById('hourDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }

    if (!currentHour) currentHour = 0;
    var startHour = currentHour / 1;
    if (startHour > 14) startHour = 14;

    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = '&nbsp;&nbsp;- ';
    subDiv.onclick = changeSelectBoxHour;
    subDiv.onmouseover = highlightMonthYear;
    subDiv.onmouseout = function () { selectBoxMovementInProgress = false; };
    subDiv.onselectstart = cancelCalendarEvent;
    div.appendChild(subDiv);

    for (var no = startHour; no < startHour + 10; no++) {
        var prefix = '';
        if (no / 1 < 10) prefix = '0';
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = prefix + no;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectHour;
        subDiv.id = 'hourDiv' + no;
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = '&nbsp;&nbsp;+ ';
    subDiv.onclick = changeSelectBoxHour;
    subDiv.onmouseover = highlightMonthYear;
    subDiv.onmouseout = function () { selectBoxMovementInProgress = false; };
    subDiv.onselectstart = cancelCalendarEvent;
    div.appendChild(subDiv);

    return div;
}
/* This function creates the minute div at the bottom bar */

function createMinuteDiv() {
    if (!document.getElementById('minuteDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    } else {
        var div = document.getElementById('minuteDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }
    var startMinute = 0;
    var prefix = '';
    for (var no = startMinute; no < 60; no += intervalSelectBox_minutes) {

        if (no < 10) prefix = '0'; else prefix = '';
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = prefix + no;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectMinute;
        subDiv.id = 'minuteDiv_' + prefix + no;
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    return div;
}

function highlightSelect() {
    if (this.className == 'selectBoxTime') {
        this.className = 'selectBoxTimeOver';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_time_over.gif';
    } else if (this.className == 'selectBoxTimeOver') {
        this.className = 'selectBoxTime';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_time.gif';
    }

    if (this.className == 'selectBox') {
        this.className = 'selectBoxOver';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_over.gif';
    } else if (this.className == 'selectBoxOver') {
        this.className = 'selectBox';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down.gif';
    }
}

function highlightArrow() {
    if (this.src.indexOf('over') >= 0) {
        if (this.src.indexOf('left') >= 0) this.src = pathToImages + 'left.gif';
        if (this.src.indexOf('right') >= 0) this.src = pathToImages + 'right.gif';
    } else {
        if (this.src.indexOf('left') >= 0) this.src = pathToImages + 'left_over.gif';
        if (this.src.indexOf('right') >= 0) this.src = pathToImages + 'right_over.gif';
    }
}

function highlightClose() {
    if (this.src.indexOf('over') >= 0) {
        this.src = pathToImages + 'close.gif';
    } else {
        this.src = pathToImages + 'close_over.gif';
    }

}

function closeCalendar(e) {

    calendarDiv.style.display = 'none';
    document.getElementById('yearDropDown').style.display = 'none';
    document.getElementById('monthDropDown').style.display = 'none';
    document.getElementById('hourDropDown').style.display = 'none';
    document.getElementById('minuteDropDown').style.display = 'none';

    if (iframeObj) {
        iframeObj.style.display = 'none';
        //// //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    if (activeSelectBoxMonth) activeSelectBoxMonth.className = '';
    if (activeSelectBoxYear) activeSelectBoxYear.className = '';

}

function writeTopBar() {

    var topBar = document.createElement('DIV');
    topBar.className = 'topBar';
    topBar.id = 'topBar';
    calendarDiv.appendChild(topBar);

    // Left arrow
    var leftDiv = document.createElement('DIV');
    leftDiv.style.marginRight = '1px';
    leftDiv.className = 'leftarrow';
    var img = document.createElement('IMG');
    img.id = "calendarback";
    img.src = pathToImages + 'left.gif';
    //img.onmouseover = highlightArrow;
    img.onclick = switchMonth;
    //img.onmouseout = highlightArrow;
    leftDiv.appendChild(img);
    topBar.appendChild(leftDiv);
    if (Opera) leftDiv.style.width = '16px';




    // Month selector
    var monthDiv = document.createElement('DIV');
    monthDiv.id = 'monthSelect';
    monthDiv.onmouseover = highlightSelect;
    monthDiv.onmouseout = highlightSelect;
    monthDiv.onclick = showMonthDropDown;
    var span = document.createElement('SPAN');
    span.innerHTML = monthArray[currentMonth];
    span.id = 'calendar_month_txt';
    monthDiv.appendChild(span);

    var img = document.createElement('IMG');
    img.src = pathToImages + 'down.gif';
    img.style.position = 'absolute';
    img.style.right = '0px';
    monthDiv.appendChild(img);
    monthDiv.className = 'selectBox';
    if (Opera) {
        img.style.cssText = 'float:right;position:relative';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }
    topBar.appendChild(monthDiv);

    var monthPicker = createMonthDiv();
    monthPicker.style.left = '45px';
    monthPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 2 + 'px';
    monthPicker.style.width = '121px';
    monthPicker.id = 'monthDropDown';

    calendarDiv.appendChild(monthPicker);
    document.getElementById('monthDropDown').style.display = 'none';
    // Year selector
    var yearDiv = document.createElement('DIV');
    yearDiv.id = 'yearSelect';
    yearDiv.onmouseover = highlightSelect;
    yearDiv.onmouseout = highlightSelect;
    yearDiv.onclick = showYearDropDown;
    var span = document.createElement('SPAN');
    span.innerHTML = currentYear;
    span.id = 'calendar_year_txt';
    yearDiv.appendChild(span);

    var img = document.createElement('IMG');
    img.src = pathToImages + 'down.gif';
    img.style.position = 'absolute';
    img.style.right = '0px';
    yearDiv.appendChild(img);
    yearDiv.className = 'selectBox';
    if (Opera) {
        img.style.cssText = 'float:right;position:relative';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }

    topBar.appendChild(yearDiv);

    // New null date div
    var nullDiv = document.createElement('DIV');
    nullDiv.onclick = setDateToNull;
    nullDiv.id = 'nullDateString';
    nullDiv.style.width = '50px';
    nullDiv.className = 'selectBox';
    nullDiv.style.width = '35px';

    if (allowSelectNone) {
        nullDiv.innerHTML = nullDateString;
        topBar.appendChild(nullDiv);
    }
    // New null date div ENDS

    var img = document.createElement('IMG');
    img.src = pathToImages + 'down.gif';
    //	yearDiv.appendChild(img);
    yearDiv.className = 'selectBox';

    if (Opera) {
        yearDiv.style.width = '50px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }

    var yearPicker = createYearDiv();
    yearPicker.style.left = '113px';
    yearPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    yearPicker.style.width = '35px';
    yearPicker.id = 'yearDropDown';
    calendarDiv.appendChild(yearPicker);


    var img = document.createElement('IMG');
    img.src = pathToImages + 'right-disabled.gif';
    img.style.styleFloat = 'right';
    img.id = "calendarforward";
    //img.onmouseover = highlightArrow;
    //img.onmouseout = highlightArrow;
    img.onclick = switchMonth;
    topBar.appendChild(img);
    if (!document.all) {
        img.style.position = 'absolute';
        img.style.right = '2px';
    }
    // Right arrow

    //	var rightDiv = document.createElement('DIV');
    //	rightDiv.style.marginRight = '1px';
    //	rightDiv.style.styleFloat = 'right';
    //	var img = document.createElement('IMG');
    //	img.src = pathToImages + 'right.gif';
    //	img.onclick = switchMonth;
    //	img.onmouseover = highlightArrow;
    //	img.onmouseout = highlightArrow;
    //	rightDiv.appendChild(img);
    //	if (Opera) rightDiv.style.width = '16px';
    //	topBar.appendChild(rightDiv);

}

function writeCalendarContent() {
    var currentTime = new Date()
    var calendarContentDivExists = true;
    if (!calendarContentDiv) {
        calendarContentDiv = document.createElement('DIV');
        calendarContentDiv.className = 'calendarContentDiv';
        calendarDiv.appendChild(calendarContentDiv);
        calendarContentDivExists = false;
    }
    currentMonth = currentMonth / 1;
    var d = new Date();

    d.setFullYear(currentYear);
    d.setDate(1);
    d.setMonth(currentMonth);
    var tempWeek = getWeek(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate());

    var dayStartOfMonth = d.getDay();
    if (dayStartOfMonth == 0) dayStartOfMonth = 7;
    dayStartOfMonth--;


    var xmonth = currentMonth + 12 * (currentYear - currentTime.getFullYear()) - currentTime.getMonth();

    document.getElementById('calendar_month_txt').innerHTML = monthArray[xmonth];
    document.getElementById('calendar_hour_txt').innerHTML = currentHour;
    document.getElementById('calendar_minute_txt').innerHTML = currentMinute;

    var existingTable = calendarContentDiv.getElementsByTagName('TABLE');
    if (existingTable.length > 0) {
        calendarContentDiv.removeChild(existingTable[0]);
    }

    var calTable = document.createElement('TABLE');
    calTable.width = '100%';
    calTable.cellSpacing = '0';
    calendarContentDiv.appendChild(calTable);




    var calTBody = document.createElement('TBODY');
    calTable.appendChild(calTBody);
    var row = calTBody.insertRow(-1);
    row.className = 'calendar_week_row';
    var cell = row.insertCell(-1);
    cell.innerHTML = weekString;
    if (parseInt(weekString) >= tempWeek || currentYear > currentTime.getFullYear())
        cell.className = 'calendar_week_column_selectable';
    else
        cell.className = 'calendar_week_column';
    //cell.style.backgroundColor = selectBoxRolloverBgColor;

    for (var no = 0; no < dayArray.length; no++) {
        var cell = row.insertCell(-1);
        cell.innerHTML = dayArray[no];
    }

    var row = calTBody.insertRow(-1);
    var cell = row.insertCell(-1);

    //cell.style.backgroundColor = selectBoxRolloverBgColor;
    var week = getWeek(currentYear, currentMonth, 1);
    if (parseInt(weekString) >= tempWeek || currentYear > currentTime.getFullYear())
        cell.className = 'calendar_week_column_selectable';
    else
        cell.className = 'calendar_week_column';
    cell.innerHTML = week; 	// Week
    cell.onmouseover = hightlightPeriod;
    cell.onmouseout = unhightlightPeriod;
    cell.onclick = choosePeriod;

    if (week >= tempWeek || currentYear > currentTime.getFullYear())
        cell.className = 'calendar_week_column_selectable';
    else
        cell.className = 'calendar_week_column';

    for (var no = 0; no < dayStartOfMonth; no++) {
        var cell = row.insertCell(-1);
        cell.innerHTML = '';
        cell.className = 'empty_day'
        cell.className += ' week_' + week;
    }

    var colCounter = dayStartOfMonth;
    var daysInMonth = daysInMonthArray[currentMonth];
    if (daysInMonth == 28) {
        if (isLeapYear(currentYear)) daysInMonth = 29;
    }
    var saturdayCounter = 5;
    if (saturdayCounter < dayStartOfMonth)
        saturdayCounter += 7;

    for (var no = 1; no <= daysInMonth; no++) {
        d.setDate(no - 1);

        if (colCounter > 0 && colCounter % 7 == 0) {
            var row = calTBody.insertRow(-1);
            var cell = row.insertCell(-1);
            var week = getWeek(currentYear, currentMonth, no);

            if (week >= tempWeek || currentYear > currentTime.getFullYear())
                cell.className = 'calendar_week_column_selectable';
            else
                cell.className = 'calendar_week_column';

            cell.innerHTML = week; 	// Week
            cell.onmouseover = hightlightPeriod;
            cell.onmouseout = unhightlightPeriod;
            cell.onclick = choosePeriod;
            //cell.style.backgroundColor = selectBoxRolloverBgColor;
        }

        var cell = row.insertCell(-1);
        if (currentYear == inputYear && currentMonth == inputMonth && no == inputDay) {
            cell.className = 'activeDay';
        }

        if (colCounter == saturdayCounter) {
            cell.className = cell.className + ' saturday';
            saturdayCounter = saturdayCounter + 7;
        }
        cell.innerHTML = no;
        cell.className += ' week_' + week;

        if (currentYear < currentTime.getFullYear()
            || (currentYear <= currentTime.getFullYear() && currentMonth < currentTime.getMonth())
            || (currentYear <= currentTime.getFullYear() && currentMonth <= currentTime.getMonth() && no < currentTime.getDate())) {
            cell.className = "disabled";
        }
        else
            cell.onclick = pickDate;

        colCounter++;
    }

    while (colCounter > 0 && colCounter % 7 != 0) {
        var cell = row.insertCell(-1);
        cell.innerHTML = '';
        cell.className = 'empty_day'
        cell.className += ' week_' + week;
        colCounter++;
    }


    if (!document.all) {
        if (calendarContentDiv.offsetHeight)
            document.getElementById('topBar').style.top = calendarContentDiv.offsetHeight + document.getElementById('timeBar').offsetHeight + document.getElementById('topBar').offsetHeight - 1 + 'px';
        else {
            document.getElementById('topBar').style.top = '';
            document.getElementById('topBar').style.bottom = '0px';
        }

    }

    if (iframeObj) {
        if (!calendarContentDivExists) setTimeout('resizeIframe()', 350); else setTimeout('resizeIframe()', 10);
    }

    var maximumMonth = currentTime.getMonth();
    var maximumYear = currentTime.getFullYear();

    if (maximumMonth == 0) {
        maximumMonth == 11;
    }
    else {
        maximumMonth--;
        maximumYear += 2;
    }
    try {
        if (currentMonth == currentTime.getMonth() && currentYear == currentTime.getFullYear())
            document.getElementById("calendarback").src = document.getElementById("calendarback").src.replace("left.gif", "left-disabled.gif");
        else
            document.getElementById("calendarback").src = document.getElementById("calendarback").src.replace("left-disabled.gif", "left.gif");

        if (currentMonth == maximumMonth && currentYear == maximumYear) {
            document.getElementById("calendarforward").src = document.getElementById("calendarforward").src.replace("right-disabled.gif", "right.gif");
        }
        else
            document.getElementById("calendarforward").src = document.getElementById("calendarforward").src.replace("right-disabled.gif", "right.gif");
    }
    catch (Error)
    { }

}

function choosePeriod(e) {
    var weekNo = parseInt(this.innerHTML) - 1;
    var daysList = calendarDiv.getElementsByTagName("td");
    var saturdayFound = false;
    var dateObj = new Date();

    var week = getWeek(dateObj.getFullYear(), dateObj.getMonth(), dateObj.getDate());

    if (parseInt(weekNo) < week && currentYear <= dateObj.getFullYear())
        return;

    for (var i = 0; i <= daysList.length; i++) {
        try {
            if (daysList[i].className.match("empty") != null)
                continue;

            if (daysList[i].className.match('calendar_week_column') != null)
                continue;

            if (daysList[i].className.match('disabled') != null) {
                continue;
            }
            if (daysList[i].className.match('activeDay') != null
                || daysList[i].className.match('halfActiveDay') != null) {
                if (daysList[i].className.match('saturday') != null) {
                    saturdayFound = true;
                }
                var parsedDate = parseInt(daysList[i].innerHTML);

                if (!saturdayFound && parsedDate == 1) {
                    currentMonth -= 1;
                    parsedDate = daysInMonthArray[currentMonth];
                }

                pickDate(false, parsedDate);
                break;
            }
        }
        catch (Error) { }
    }
}

function hightlightPeriod(e) {
    var weekNo = parseInt(this.innerHTML) - 1;

    var daysList = calendarDiv.getElementsByTagName("td");
    var nextWeek = parseInt(weekNo) + 1;
    var cellCounter = -1;
    var affectedCell = 0;
    var lastSaturdayFound = -1;

    for (var i = 0; i <= daysList.length; i++) {
        try {
            if (daysList[i].className.match("empty") != null)
                continue;

            if (daysList[i].className.match('calendar_week_column') != null)
                continue;

            if (daysList[i].className.match('activeDay') != null
                || daysList[i].className.match('halfActiveDay') != null) {
                daysList[i].className = daysList[i].className.replace("activeDay", "").replace("halfActiveDay", "")
            }

            if (cellCounter == 0) {
                daysList[i].className += ' halfActiveDay';
                affectedCell++;
            }

            if (cellCounter > 0) {
                daysList[i].className += ' activeDay';
                affectedCell++;
            }

            if (daysList[i].className.match("week_" + weekNo) != null) {
                if (daysList[i].className.match("saturday") != null) {
                    daysList[i].className += ' activeDay';
                    cellCounter = 7;
                    affectedCell++;
                }
            }



            if (daysList[i].className.match("week_" + nextWeek) != null) {
                if (daysList[i].className.match("saturday") != null) {
                    lastSaturdayFound = i;
                }
            }

            cellCounter--;

        } catch (Error) { }
    }

    if (affectedCell == 0 && lastSaturdayFound != -1) {

        cellCounter = 6;
        for (var c = lastSaturdayFound - 6; c <= lastSaturdayFound; c++) {
            if (daysList[c].className.match('calendar_week_column') != null)
                continue;
            if (cellCounter == 0)
                daysList[c].className += ' halfActiveDay';

            if (cellCounter > 0)
                daysList[c].className += ' activeDay';

            cellCounter--;
        }
    }
}
function unhightlightPeriod(e) {
    var weekNo = parseInt(this.innerHTML) - 1;
    var daysList = calendarDiv.getElementsByTagName("td");
    var nextWeek = parseInt(weekNo) + 1;
    var cellCounter = -1;
    var affectedCell = 0;
    var lastSaturdayFound = -1;

    for (var i = 0; i <= daysList.length; i++) {
        try {
            if (daysList[i].className.match("empty") != null)
                continue;

            if (daysList[i].className.match('calendar_week_column') != null)
                continue;

            if (daysList[i].className.match("week_" + weekNo) != null) {

                if (daysList[i].className.match("saturday") != null) {
                    daysList[i].className = daysList[i].className.replace("activeDay", "");
                    affectedCell++;
                    cellCounter = 7;
                }
            }

            if (cellCounter == 0) {
                daysList[i].className = daysList[i].className.replace("halfActiveDay", "");
                affectedCell++;
            }
            if (cellCounter > 0) {
                daysList[i].className = daysList[i].className.replace("activeDay", "")
            }

            if (daysList[i].className.match("week_" + nextWeek) != null) {
                if (daysList[i].className.match("saturday") != null) {
                    lastSaturdayFound = i;
                }
            }

            if (currentYear == inputYear && currentMonth == inputMonth && daysList[i].innerHTML == inputDay) {
                daysList[i].className += 'activeDay';
            }

            cellCounter--;
        } catch (Error) { }
    }

    if (affectedCell == 0 && lastSaturdayFound != -1) {

        cellCounter = 6;
        for (var c = lastSaturdayFound - 6; c <= lastSaturdayFound; c++) {
            if (daysList[c].className.match('calendar_week_column') != null)
                continue;
            if (cellCounter == 0)
                daysList[c].className = daysList[c].className.replace(" halfActiveDay", "");

            if (cellCounter > 0)
                daysList[c].className = daysList[c].className.replace(" activeDay", "")

            if (currentYear == inputYear && currentMonth == inputMonth && daysList[c].innerHTML == inputDay) {
                daysList[c].className += 'activeDay';
            }
            cellCounter--;
        }
    }
}

function resizeIframe() {
    iframeObj.style.width = calendarDiv.offsetWidth + 'px';
    iframeObj.style.height = calendarDiv.offsetHeight + 'px';


}

function pickTodaysDate() {
    var d = new Date();
    currentMonth = d.getMonth();
    currentYear = d.getFullYear();
    pickDate(false, d.getDate());

}

function setDateToNull() {
    returnDateTo.value = "";
    try {
        jQuery(returnDateTo).trigger('change');
        returnDateTo.onchange();
        //		if (autoPostBack)
        //		{
        MakePostBack();
        //		}
    } catch (e) {

    }
    closeCalendar();
}

function pickDate(e, inputDay) {
    var month = currentMonth / 1 + 1;
    if (month < 10) month = '0' + month;
    var day;
    if (!inputDay && this) day = this.innerHTML; else day = inputDay;

    if (day / 1 < 10) day = '0' + day;
    if (returnFormat) {
        returnFormat = returnFormat.replace('dd', day);
        returnFormat = returnFormat.replace('mm', month);
        returnFormat = returnFormat.replace('yyyy', currentYear);
        returnFormat = returnFormat.replace('hh', currentHour);
        returnFormat = returnFormat.replace('ii', currentMinute);
        returnFormat = returnFormat.replace('d', day / 1);
        returnFormat = returnFormat.replace('m', month / 1);

        returnDateTo.value = returnFormat;
        try {
            jQuery(returnDateTo).trigger('change');

            returnDateTo.onchange();
            if (autoPostBack) {
                MakePostBack();
            }
        } catch (e) {
        }
    } else {
        for (var no = 0; no < returnDateToYear.options.length; no++) {
            if (returnDateToYear.options[no].value == currentYear) {
                returnDateToYear.selectedIndex = no;
                break;
            }
        }
        for (var no = 0; no < returnDateToMonth.options.length; no++) {
            if (returnDateToMonth.options[no].value == parseInt(month)) {
                returnDateToMonth.selectedIndex = no;
                break;
            }
        }
        for (var no = 0; no < returnDateToDay.options.length; no++) {
            if (returnDateToDay.options[no].value == parseInt(day)) {
                returnDateToDay.selectedIndex = no;
                break;
            }
        }
        if (calendarDisplayTime) {
            for (var no = 0; no < returnDateToHour.options.length; no++) {
                if (returnDateToHour.options[no].value == parseInt(currentHour)) {
                    returnDateToHour.selectedIndex = no;
                    break;
                }
            }
            for (var no = 0; no < returnDateToMinute.options.length; no++) {
                if (returnDateToMinute.options[no].value == parseInt(currentMinute)) {
                    returnDateToMinute.selectedIndex = no;
                    break;
                }
            }
        }
    }
    closeCalendar();

}

// This function is from http://www.codeproject.com/csharp/gregorianwknum.asp
// Only changed the month add
function getWeek(year, month, day) {
    day = day / 1;
    year = year / 1;
    month = month / 1 + 1; //use 1-12
    var a = Math.floor((14 - (month)) / 12);
    var y = year + 4800 - a;
    var m = (month) + (12 * a) - 3;
    var jd = day + Math.floor(((153 * m) + 2) / 5) +
                 (365 * y) + Math.floor(y / 4) - Math.floor(y / 100) +
                 Math.floor(y / 400) - 32045;      // (gregorian calendar)
    var d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461;
    var L = Math.floor(d4 / 1460);
    var d1 = ((d4 - L) % 365) + L;
    NumberOfWeek = Math.floor(d1 / 7) + 1;
    return NumberOfWeek;
}

function writeTimeBar() {
    var timeBar = document.createElement('DIV');
    timeBar.id = 'timeBar';
    timeBar.className = 'timeBar';

    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = 'Time:';
    //timeBar.appendChild(subDiv);

    // Year selector
    var hourDiv = document.createElement('DIV');
    hourDiv.onmouseover = highlightSelect;
    hourDiv.onmouseout = highlightSelect;
    hourDiv.onclick = showHourDropDown;
    hourDiv.style.width = '30px';
    var span = document.createElement('SPAN');
    span.innerHTML = currentHour;
    span.id = 'calendar_hour_txt';
    hourDiv.appendChild(span);
    timeBar.appendChild(hourDiv);

    var img = document.createElement('IMG');
    img.src = pathToImages + 'down_time.gif';
    hourDiv.appendChild(img);
    hourDiv.className = 'selectBoxTime';

    if (Opera) {
        hourDiv.style.width = '30px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }

    var hourPicker = createHourDiv();
    hourPicker.style.left = '130px';
    //hourPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    hourPicker.style.width = '35px';
    hourPicker.id = 'hourDropDown';
    calendarDiv.appendChild(hourPicker);

    // Add Minute picker

    // Year selector
    var minuteDiv = document.createElement('DIV');
    minuteDiv.onmouseover = highlightSelect;
    minuteDiv.onmouseout = highlightSelect;
    minuteDiv.onclick = showMinuteDropDown;
    minuteDiv.style.width = '30px';
    var span = document.createElement('SPAN');
    span.innerHTML = currentMinute;

    span.id = 'calendar_minute_txt';
    minuteDiv.appendChild(span);
    timeBar.appendChild(minuteDiv);

    var img = document.createElement('IMG');
    img.src = pathToImages + 'down_time.gif';
    minuteDiv.appendChild(img);
    minuteDiv.className = 'selectBoxTime';

    if (Opera) {
        minuteDiv.style.width = '30px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }

    var minutePicker = createMinuteDiv();
    minutePicker.style.left = '167px';
    //minutePicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    minutePicker.style.width = '35px';
    minutePicker.id = 'minuteDropDown';
    calendarDiv.appendChild(minutePicker);


    return timeBar;

}

function writeBottomBar() {
    var d = new Date();
    var bottomBar = document.createElement('DIV');

    bottomBar.id = 'bottomBar';

    //bottomBar.style.cursor = 'pointer';
    bottomBar.className = 'todaysDate';
    // var todayStringFormat = '[todayString] [dayString] [day] [monthString] [year]';	;;

    var subDiv = document.createElement('DIV');
    //	subDiv.onclick = pickTodaysDate;
    subDiv.id = 'todaysDateString';
    //	subDiv.style.width = (calendarDiv.offsetWidth - 95) + 'px';
    //	var day = d.getDay();
    //	if(day==0)day = 7;
    //	day--;

    //	var bottomString = todayStringFormat;
    //	bottomString = bottomString.replace('[monthString]',monthArrayShort[d.getMonth()]);
    //	bottomString = bottomString.replace('[day]',d.getDate());
    //	bottomString = bottomString.replace('[year]',d.getFullYear());
    //	bottomString = bottomString.replace('[dayString]',dayArray[day].toLowerCase());
    //	bottomString = bottomString.replace('[UCFdayString]',dayArray[day]);
    //	bottomString = bottomString.replace('[todayString]',todayString);
    //	
    //
    //	subDiv.innerHTML = todayString + ': ' + d.getDate() + '. ' + monthArrayShort[d.getMonth()] + ', ' +  d.getFullYear() ;

    subDiv.className = 'bottomDiv';
    subDiv.innerHTML = bottomString;
    bottomBar.appendChild(subDiv);

    //    var divInfobox = document.createElement('DIV');
    //    var infobox = document.createElement('DIV');
    //    infobox.id = 'infobox';
    //    infobox.style.marginRight = '3px';
    //    infobox.cssFloat = 'right';


    if (window.exterDiv != undefined) {
        var nonediv = document.createElement('DIV');
        nonediv.style.display = 'none';
        nonediv.id = 'nonediv';
        nonediv.innerHTML = exterDiv;
        subDiv.appendChild(nonediv);
    }
    var timeDiv = writeTimeBar();
    bottomBar.appendChild(timeDiv);

    //AddInfoBox

    calendarDiv.appendChild(bottomBar);
    var imginfo = document.getElementById(imginfoString);
    if (imginfo != null) {
        if (window.exterDiv != undefined && exterDiv.length == 0) imginfo.style.display = 'none'
        else
            if (imginfo != null) {
                imginfo.onmouseover = addInfoBox;
                imginfo.onmouseout = removeInfoBox;
            }
    }
}

function addInfoBox() {
    jQuery("#nonediv").jqpopup_open(this.id);

}
function removeInfoBox() {
    jQuery("#nonediv").jqpopup_close(this.id);

}

function getTopPos(inputObj) {

    var returnValue = inputObj.offsetTop + inputObj.offsetHeight;
    while ((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetTop;
    return returnValue + calendar_offsetTop;
}

function getleftPos(inputObj) {
    var returnValue = inputObj.offsetLeft;
    while ((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetLeft;
    return returnValue + calendar_offsetLeft;
}

function positionCalendar(inputObj) {
    calendarDiv.style.left = getleftPos(inputObj) + 'px';
    calendarDiv.style.top = getTopPos(inputObj) + 'px';
    if (iframeObj) {
        iframeObj.style.left = calendarDiv.style.left;
        iframeObj.style.top = calendarDiv.style.top;
        //// fix for EI frame problem on time dropdowns 09/30/2006
        iframeObj2.style.left = calendarDiv.style.left;
        iframeObj2.style.top = calendarDiv.style.top;
    }

}

function initCalendar() {
    /*
    if(MSIE){
    iframeObj = document.createElement('IFRAME');
    iframeObj.style.filter = 'alpha(opacity=0)';
    iframeObj.style.position = 'absolute';
    iframeObj.border='0px';
    iframeObj.style.border = '0px';
    iframeObj.style.backgroundColor = '#FF0000';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    iframeObj2 = document.createElement('IFRAME');
    iframeObj2.style.position = 'absolute';
    iframeObj2.border='0px';
    iframeObj2.style.border = '0px';
    iframeObj2.style.height = '1px';
    iframeObj2.style.width = '1px';
    document.body.appendChild(iframeObj2);
    //// fix for EI frame problem on time dropdowns 09/30/2006
    // Added fixed for HTTPS
    iframeObj2.src = 'blank.html'; 
    iframeObj.src = 'blank.html'; 
    document.body.appendChild(iframeObj);
    }
    */

    calendarDiv = document.createElement('DIV');
    calendarDiv.id = 'calendarDiv';
    calendarDiv.style.zIndex = 1000;
    //slideCalendarSelectBox();

    document.body.appendChild(calendarDiv);
    writeBottomBar();
    writeTopBar();



    if (!currentYear) {
        var d = new Date();
        currentMonth = d.getMonth();
        currentYear = d.getFullYear();
    }
    writeCalendarContent();



}

function setTimeProperties() {
    if (!calendarDisplayTime) {
        document.getElementById('timeBar').style.display = 'none';
        document.getElementById('timeBar').style.visibility = 'hidden';
        document.getElementById('todaysDateString').style.width = '100%';


    } else {
        document.getElementById('timeBar').style.display = 'block';
        document.getElementById('timeBar').style.visibility = 'visible';
        document.getElementById('hourDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
        document.getElementById('minuteDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
        document.getElementById('minuteDropDown').style.right = '50px';
        document.getElementById('hourDropDown').style.right = '50px';
        document.getElementById('todaysDateString').style.width = '115px';
    }
}

function calendarSortItems(a, b) {
    return a / 1 - b / 1;
}


function displayCalendar(inputField, buttonObj, makePostBack, lang, dateFormat, pathToImagesUrl, outerDiv, imgId) {
    exterDiv = outerDiv;
    imginfoString = imgId;
    pathToImages = pathToImagesUrl;
    autoPostBack = makePostBack;
    var format = dateFormat;
    inputFieldId = inputField;
    inputField = document.getElementById(inputField);
    buttonObj = document.getElementById(buttonObj);
    var displayTime = false;

    if (displayTime) calendarDisplayTime = true; else calendarDisplayTime = false;
    if (inputField.value.length > 0) {

        if (!format.match(/^[0-9]*?$/gi)) {
            var items = inputField.value.split(/[^0-9]/gi);
            var positionArray = new Array();
            positionArray['m'] = format.indexOf('mm');
            if (positionArray['m'] == -1) positionArray['m'] = format.indexOf('m');
            positionArray['d'] = format.indexOf('dd');
            if (positionArray['d'] == -1) positionArray['d'] = format.indexOf('d');
            positionArray['y'] = format.indexOf('yyyy');
            positionArray['h'] = format.indexOf('hh');
            positionArray['i'] = format.indexOf('ii');

            var positionArrayNumeric = Array();
            positionArrayNumeric[0] = positionArray['m'];
            positionArrayNumeric[1] = positionArray['d'];
            positionArrayNumeric[2] = positionArray['y'];
            positionArrayNumeric[3] = positionArray['h'];
            positionArrayNumeric[4] = positionArray['i'];


            positionArrayNumeric = positionArrayNumeric.sort(calendarSortItems);
            var itemIndex = -1;
            currentHour = '00';
            currentMinute = '00';
            for (var no = 0; no < positionArrayNumeric.length; no++) {
                if (positionArrayNumeric[no] == -1) continue;
                itemIndex++;
                if (positionArrayNumeric[no] == positionArray['m']) {
                    currentMonth = items[itemIndex] - 1;
                    continue;
                }
                if (positionArrayNumeric[no] == positionArray['y']) {
                    currentYear = items[itemIndex];
                    continue;
                }
                if (positionArrayNumeric[no] == positionArray['d']) {
                    tmpDay = items[itemIndex];
                    continue;
                }
                if (positionArrayNumeric[no] == positionArray['h']) {
                    currentHour = items[itemIndex];
                    continue;
                }
                if (positionArrayNumeric[no] == positionArray['i']) {
                    currentMinute = items[itemIndex];
                    continue;
                }
            }

            currentMonth = currentMonth / 1;
            tmpDay = tmpDay / 1;
        } else {
            var monthPos = format.indexOf('mm');
            currentMonth = inputField.value.substr(monthPos, 2) / 1 - 1;
            var yearPos = format.indexOf('yyyy');
            currentYear = inputField.value.substr(yearPos, 4);
            var dayPos = format.indexOf('dd');
            tmpDay = inputField.value.substr(dayPos, 2);

            var hourPos = format.indexOf('hh');
            if (hourPos >= 0) {
                tmpHour = inputField.value.substr(hourPos, 2);
                currentHour = tmpHour;
            } else {
                currentHour = '00';
            }
            var minutePos = format.indexOf('ii');
            if (minutePos >= 0) {
                tmpMinute = inputField.value.substr(minutePos, 2);
                currentMinute = tmpMinute;
            } else {
                currentMinute = '00';
            }
        }
    } else {
        var d = new Date();
        currentMonth = d.getMonth();
        currentYear = d.getFullYear();
        currentHour = '08';
        currentMinute = '00';
        tmpDay = -1;
    }

    inputYear = currentYear;
    inputMonth = currentMonth;
    inputDay = tmpDay / 1;


    if (!calendarDiv) {
        initCalendar();
    } else {
        if (calendarDiv.style.display == 'block') {
            closeCalendar();
            return false;
        }
        writeCalendarContent();
    }



    returnFormat = format;
    returnDateTo = inputField;
    positionCalendar(buttonObj);
    calendarDiv.style.visibility = 'visible';
    calendarDiv.style.display = 'block';
    if (iframeObj) {
        iframeObj.style.display = '';
        iframeObj.style.height = '140px';
        iframeObj.style.width = '195px';
        iframeObj2.style.display = '';
        iframeObj2.style.height = '140px';
        iframeObj2.style.width = '195px';
    }

    setTimeProperties();
    updateYearDiv();
    updateMonthDiv();
    updateMinuteDiv();
    updateHourDiv();

    // Make sure clicks on the DIV don't bubble up to the document
    calendarDiv.onclick = function (e) {
        if (!e) var e = window.event;
        e.cancelBubble = true;
        if (e.stopPropagation) e.stopPropagation();
        //Event.cancelBubble(Event.resolve(e));
    };
    calendarDiv.onmouseup = calendarDiv.onclick;

    document.onmouseup = closeCalendar;

    document.getElementById('monthDropDown').style.display = 'block';
    document.getElementById('monthDropDown').style.display = 'none';
}

function displayCalendarSelectBox(yearInput, monthInput, dayInput, hourInput, minuteInput, buttonObj) {
    if (!hourInput) calendarDisplayTime = false; else calendarDisplayTime = true;

    currentMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
    currentYear = yearInput.options[yearInput.selectedIndex].value;
    if (hourInput) {
        currentHour = hourInput.options[hourInput.selectedIndex].value;
        inputHour = currentHour / 1;
    }
    if (minuteInput) {
        currentMinute = minuteInput.options[minuteInput.selectedIndex].value;
        inputMinute = currentMinute / 1;
    }

    inputYear = yearInput.options[yearInput.selectedIndex].value;
    inputMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
    inputDay = dayInput.options[dayInput.selectedIndex].value / 1;

    if (!calendarDiv) {
        initCalendar();
    } else {
        writeCalendarContent();
    }



    returnDateToYear = yearInput;
    returnDateToMonth = monthInput;
    returnDateToDay = dayInput;
    returnDateToHour = hourInput;
    returnDateToMinute = minuteInput;




    returnFormat = false;
    returnDateTo = false;
    positionCalendar(buttonObj);
    calendarDiv.style.visibility = 'visible';
    calendarDiv.style.display = 'block';
    if (iframeObj) {
        iframeObj.style.display = '';
        iframeObj.style.height = calendarDiv.offsetHeight + 'px';
        iframeObj.style.width = calendarDiv.offsetWidth + 'px';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        iframeObj2.style.display = '';
        iframeObj2.style.height = calendarDiv.offsetHeight + 'px';
        iframeObj2.style.width = calendarDiv.offsetWidth + 'px'
    }
    setTimeProperties();
    updateYearDiv();
    updateMonthDiv();
    updateHourDiv();
    updateMinuteDiv();

}

function MakePostBack() {
    setCookie2('IsPostBackFromCalendar', 'True', 1);
    var postBackTimeoutString = 'WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("' + inputFieldId + '", "", true, "HolidayHome", "", false, true))';
    setTimeout(postBackTimeoutString, 0)
}

function setCookie2(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}


