var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";

var dayArrayShort = new Array('א`', 'ב`', 'ג`', 'ד`', 'ה`', 'ו`', 'ש`');
var dayArrayMed = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var dayArrayLong = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
var monthArrayShort = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var monthArrayMed = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
var monthArrayLong = new Array('ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר');


var defaultDateSeparator = "/";
var defaultDateFormat = "dmy";
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;
var selectedDate = new Date();

function displayDatePicker(a, b, c, d) {




    if (a == 'txbEndDate') {
        document.sampleform.secondinput.value = document.sampleform.firstinput.value;
        TopTitleTXT = "<img src='https://www.gol.co.il/images/checkout5.png' width='245' height='23' border='0'>"
    } else {
        TopTitleTXT = "<img src='https://www.gol.co.il/images/chekin6.png' width='245' height='23' border='0'>"
    }

    var e = document.getElementById(a);
    if (!b) b = e;
    if (d) dateSeparator = d;
    else dateSeparator = defaultDateSeparator;
    if (c) dateFormat = c;
    else dateFormat = defaultDateFormat;
    var x = b.offsetLeft - 90;
    var y = b.offsetTop + b.offsetHeight;
    var f = b;
    while (f.offsetParent) {
        f = f.offsetParent;
        x += f.offsetLeft;
        y += f.offsetTop
    }
    var g = getFieldDate(e.value);
    selectedDate = new Date(g.getFullYear(), g.getMonth(), g.getDate());
    drawDatePicker(e, x, y)
}

function drawDatePicker(a, x, y) {
    if (!document.getElementById(datePickerDivID)) {
        var b = document.createElement("div");
        b.setAttribute("id", datePickerDivID);
        b.setAttribute("class", "dpDiv");
        b.setAttribute("style", "visibility: hidden;");
        document.body.appendChild(b)
    }
    var c = document.getElementById(datePickerDivID);
    c.style.position = "absolute";
    c.style.left = x + "px";
    c.style.top = y + "px";
    c.style.visibility = "visible";
    c.style.display = "block";
    c.style.zIndex = 10000;
    refreshDatePicker(a.id, selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate())
}

function hideDatePicker() {
    var a = document.getElementById(datePickerDivID);
    if (a) {
        a.style.visibility = "hidden";
        a.style.display = "none";
        adjustiFrame()
    }
}

function delayedHide() {
    setTimeout("hideDatePicker()", 100)
}

function refreshDatePicker(a, b, c, d) {
    var e = new Date();
    var f = new Date();
    if ((c >= 0) && (b > 1900)) {
        e = new Date(b, c, 1)
    } else {
        d = selectedDate.getDate();
        e.setDate(1)
    }
    var g = "\r\n";

    var h = "<table cols=7 class='dpTable' dir=rtl><tr><td colspan='7' style='color:red;'><strong>" + TopTitleTXT + "</strong></td></tr>" + g;
    var j = "</table>" + g;
    var k = "<tr class='dpTR'>";
    var l = "<tr class='dpTitleTR'>";
    var m = "<tr class='dpDayTR'>";
    var n = "<tr class='dpTodayButtonTR' style='background-color:#dae7ee;'>"; // color close
    var o = "</tr>" + g;
    var p = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' style=text-align:center;";
    var p_sof = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' style=background-color:#B7C6DD;text-align:center;";


    var qf = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' style=text-align:center;background-color:#8eaad5;";

    var q = "<td class='dpTDpast' style=text-align:center;>";
    var q_sof = "<td class='dpTDpast' style=background-color:#B7C6DD;text-align:center;color:black;>";
    var r = "<td colspan=3 class='dpTitleTD' style=text-align:center;>"
    var s = "<td colspan=2 class='dpButtonTD' style=text-align:center;>";
    var t = "<td colspan=7 class='dpTodayButtonTD' style=text-align:center; >";
    var u = "<td class='dpDayTD' style=text-align:center; >"; // color days
    var v = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' style=text-align:center;";
    var v_sof = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";'  style=background-color:#B7C6DD;text-align:center; ";
    var w = "</td>" + g;
    var x = "<div class='dpTitleText'>";
    var y = "<div class='dpDayHighlight'>";
    var z = "<div class='dpDayToday'>";
    var A = "<div class='dpDayTodayHighlight'>";
    var B = "</div>";
    var C = h;
    C += l;
    C += s;
    if (e.getFullYear() > f.getFullYear() || (e.getMonth() >= f.getMonth() + 1 && e.getFullYear() == f.getFullYear())) C += getButtonCode(a, e, -1, "קודם");
    C += w;
    C += r + x + monthArrayLong[e.getMonth()] + " " + e.getFullYear() + B + w;
    C += s + getButtonCode(a, e, 1, "הבא") + w;
    C += o;
    C += m;

    for (i = 0; i < dayArrayShort.length; i++)
        C += u + dayArrayShort[i] + w;
    C += o;
    C += k;



    /*****************NEW CODE****************************/
    var lastMonthLastDay = new Date(e.getFullYear(), e.getMonth(), 0);

    var ll = Number(lastMonthLastDay.getDate());
    //alert(ll)
    var lastMonthLastWeek = new Array()
    lastMonthLastWeek[0] = ll
    for (i = 7; i > 0; i--) {
        lastMonthLastWeek[i] = ll - i
    }

   /* for (i = 0; i < e.getDay(); i++) {
        C += q + Number(lastMonthLastWeek[lastMonthLastDay.getDay() - i]) + w;
    }*/
    /*****************END NEW CODE***********************************/


    /********OLD CODE****************************/
    for(i=0;i<e.getDay();i++)C+=q+"<span style='display:table-cell'></span>"+w;

    var D = (e.getMonth() == selectedDate.getMonth() && e.getFullYear() == selectedDate.getFullYear());

    var E = ((e.getMonth() < f.getMonth() && e.getFullYear() == f.getFullYear()) || e.getFullYear() < f.getFullYear());

    do {
        dayNum = e.getDate();

        if (a == 'txbEndDate') {
            TD_onclick = " onclick=\"updateDateField('" + a + "', '" + getDateString(e) + "');document.getElementById('loading').className='';AfterSelectOpenAreaDiv()\">";
        } else {
            TD_onclick = " onclick=\"updateDateField('" + a + "', '" + getDateString(e) + "');displayDatePicker('txbEndDate');\">";
        }


        if (E || (e.getMonth() == f.getMonth() && e.getFullYear() == f.getFullYear() && e.getDate() < f.getDate())) {

            if (e.getDay() == 5 || e.getDay() == 6) {
                C += q_sof + dayNum + w
            } else {
                C += q + dayNum + w
            }

        } else if (D && dayNum == selectedDate.getDate() && f.getDate() == dayNum && f.getMonth() == e.getMonth() && f.getYear() == e.getYear()) {
            if (e.getDay() == 5 || e.getDay() == 6) {
                C += v_sof + TD_onclick + A + dayNum + B + w // לפני
            } else {
                C += v + TD_onclick + A + dayNum + B + w // לפני
            }

        } else if (D && dayNum == selectedDate.getDate()) {
            C += v + TD_onclick + y + dayNum + B + w
        }
        //else if(dayNum==f.getDate()&&f.getMonth()==e.getMonth()&&f.getYear()==e.getYear()) // בוחר את היום בתאריך JS
        //{
        //	C+=p+TD_onclick+z+dayNum+B+w
        //}
        else {
            if (e.getDay() == 5 || e.getDay() == 6) {
                C += p_sof + TD_onclick + dayNum + w // אחרי
            } else {
                C += p + TD_onclick + dayNum + w // אחרי
            }

        }


        if (e.getDay() == 6) C += o + k;

        
		 e.setDate(e.getDate() + 1)
		
		 /***********************New*******************/
        var firstDay = new Date(e.getFullYear(), e.getMonth() , 1);
        var startNextMonth = Number(firstDay.getDate())
		/******************************************/
		
    } while (e.getDate() > 1) if (e.getDay() > 0) {
        /***********************New*******************/
		var fstDayInc=1
        for (i = 7; i > e.getDay(); i--)
		{
			if (a == 'txbEndDate') {
				TD_onclick = " onclick=\"updateDateField('" + a + "', '" + getDateString(firstDay) + "');document.getElementById('loading').className='';AfterSelectOpenAreaDiv()\">"
			} else {
				TD_onclick = " onclick=\"updateDateField('" + a + "', '" + getDateString(firstDay) + "');displayDatePicker('txbEndDate');\">";
			}
			
			C += qf +TD_onclick  + (startNextMonth++) + w
			firstDay = new Date(e.getFullYear(), e.getMonth(), ++fstDayInc);
		}
    }
    C += o;
    /******************************************/

    /**************OLD******/
    //for(i=6;i>e.getDay();i--)C+=q+"&nbsp;"+w}C+=o;
    /********************/


    var f = new Date();
    var F = "Today is " + dayArrayMed[f.getDay()] + ", " + monthArrayMed[f.getMonth()] + " " + f.getDate();


    C += n + t;
    C += "&nbsp;" //"<button class='dpTodayButton' onClick='refreshDatePicker(\""+a+"\");'>&nbsp;</button> ";
    C += "<button class='dpTodayButton' onClick=if(!document.getElementById('NewSearchP2')){document.getElementById('loading').className='';};updateDateField(\"" + a + "\");>סגור</button>";


    C += w + o;
    C += j;
    document.getElementById(datePickerDivID).innerHTML = C;
    adjustiFrame()
}

function getButtonCode(a, b, c, d) {
    var e = (b.getMonth() + c) % 12;
    var f = b.getFullYear() + parseInt((b.getMonth() + c) / 12);
    if (e < 0) {
        e += 12;
        f += -1
    }
    return "<button class='dpButton' onClick='refreshDatePicker(\"" + a + "\", " + f + ", " + e + ");'>" + d + "</button>"
}

function getDateString(a) {
    var b = "00" + a.getDate();
    var c = "00" + (a.getMonth() + 1);
    b = b.substring(b.length - 2);
    c = c.substring(c.length - 2);
    switch (dateFormat) {
        case "dmy":
            return b + dateSeparator + c + dateSeparator + a.getFullYear();
        case "ymd":
            return a.getFullYear() + dateSeparator + c + dateSeparator + b;
        case "mdy":
        default:
            return c + dateSeparator + b + dateSeparator + a.getFullYear()
    }
}

function getFieldDate(a) {
    var b;
    var c;
    var d, m, y;
    try {
        c = splitDateString(a);
        if (c) {
            switch (dateFormat) {
                case "dmy":
                    d = parseInt(c[0], 10);
                    m = parseInt(c[1], 10) - 1;
                    y = parseInt(c[2], 10);
                    break;
                case "ymd":
                    d = parseInt(c[2], 10);
                    m = parseInt(c[1], 10) - 1;
                    y = parseInt(c[0], 10);
                    break;
                case "mdy":
                default:
                    d = parseInt(c[1], 10);
                    m = parseInt(c[0], 10) - 1;
                    y = parseInt(c[2], 10);
                    break
            }
            b = new Date(y, m, d)
        } else if (a) {
            b = new Date(a)
        } else {
            b = new Date()
        }
    } catch (e) {
        b = new Date()
    }
    return b
}

function splitDateString(a) {
    var b;
    if (a.indexOf("/") >= 0) b = a.split("/");
    else if (a.indexOf(".") >= 0) b = a.split(".");
    else if (a.indexOf("-") >= 0) b = a.split("-");
    else if (a.indexOf("\\") >= 0) b = a.split("\\");
    else b = false;
    return b
}

function updateDateField(a, b) {
//alert(a)
//alert(b)
    var c = document.getElementById(a);
    if (b) c.value = b;
    var d = document.getElementById(datePickerDivID);
    d.style.visibility = "hidden";
    d.style.display = "none";
    adjustiFrame();
    c.focus();
    if ((b) && (typeof(datePickerClosed) == "function")) datePickerClosed(c)
}

function adjustiFrame(a, b) {
    var c = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
    if (c) return;
    try {
        if (!document.getElementById(iFrameDivID)) {
            var d = document.createElement("iFrame");
            d.setAttribute("id", iFrameDivID);
            d.setAttribute("src", "javascript:false;");
            d.setAttribute("scrolling", "no");
            d.setAttribute("frameborder", "0");
            document.body.appendChild(d)
        }
        if (!a) a = document.getElementById(datePickerDivID);
        if (!b) b = document.getElementById(iFrameDivID);
        try {
            b.style.position = "absolute";
            b.style.width = a.offsetWidth;
            b.style.height = a.offsetHeight;
            b.style.top = a.style.top;
            b.style.left = a.style.left;
            b.style.zIndex = a.style.zIndex - 1;
            b.style.visibility = a.style.visibility;
            b.style.display = a.style.display
        } catch (e) {}
    } catch (ee) {}
}

function hcalcValidateDates(a, b, c, d, e) {
    var f = getFieldDate(a.value);
    var g = new Date();
    g = new Date(g.getFullYear(), g.getMonth(), g.getDate());

    if (f < g) {
        alert("");
        a.value = "";
        document.getElementById(datePickerivID).style.visibility = "visible";
        adjustiFrame()
    } else if (a.id == b) {
        f.setTime(f.getTime() + (2 * 24 * 60 * 60 * 1000));
        var h = document.getElementById(c);
        h.value = getDateString(f)
    } else if (a.id == c) {
        var i = document.getElementById(b);
        if (f < getFieldDate(i.value)) {
            f.setTime(f.getTime() - (2 * 24 * 60 * 60 * 1000));
            if (f < g) i.value = getDateString(g);
            else i.value = getDateString(f)
        }
    }
    if (d) document.getElementById(d).value = document.getElementById(b).value;
    if (e) document.getElementById(e).value = document.getElementById(c).value
}