var nameCalendar = "", fontFace = "verdana", fontSize = 9, titleWidth = 90, dayWidth = 12, dayDigits = 1, titleColor = "#FFFFFF", daysColor = "#E9E1CA", bodyColor2 = "#D6F2F8", dayColor = "#D6F2F8", dayColorExp = "#E9E9E9", currentDayColor = "#8CDBEC", footColor = "#E9E1CA", borderColor = "#E9E1CA", titleFontColor = "#333333", daysFontColor = "#000000", dayFontColor = "#999999", currentDayFontColor = "#000000", footFontColor = "#333333", calFormat = "dd-mm-yyyy", weekDay = 0, calWidth = 170, calHeight = 190, calOffsetX = -10, calOffsetY = 0, calWin = null, winX = 0, winY = 0, cal = "cal", cals = [], currentCal = null, isOpera = navigator.userAgent.indexOf("Opera") != -1 ? true : false, isOpera5 = navigator.appVersion.indexOf("MSIE 5") != -1 && navigator.userAgent.indexOf("Opera 5") != -1 ? true : false, isOpera6 = navigator.appVersion.indexOf("MSIE 5") != -1 && navigator.userAgent.indexOf("Opera 6") != -1 ? true : false, isN6 = navigator.userAgent.indexOf("Gecko") != -1, isN4 = document.layers ? true : false, isMac = navigator.userAgent.indexOf("Mac") != -1, isIE = document.all && !isOpera && (!isMac || navigator.appVersion.indexOf("MSIE 4") == -1) ? true : false, isIE7 = navigator.appVersion.indexOf("MSIE 7") > -1 ? true : false; if (isN4) fontSize += 2; function hideElement(b, a) { if (isIE && !isIE7) for (i = 0; i < document.all.tags(b).length; i++) { obj = document.all.tags(b)[i]; if (!obj || !obj.offsetParent) continue; objLeft = obj.offsetLeft; objTop = obj.offsetTop; objParent = obj.offsetParent; while (objParent.tagName.toUpperCase() != "BODY") { objLeft += objParent.offsetLeft; objTop += objParent.offsetTop; objParent = objParent.offsetParent } objHeight = obj.offsetHeight; objWidth = obj.offsetWidth; if (a.offsetLeft + a.offsetWidth > objLeft) if (a.offsetTop + a.offsetHeight > objTop) if (a.offsetTop < objTop + objHeight) if (a.offsetLeft < objLeft + objWidth) obj.style.visibility = "hidden" } } function showElement(a) { if (isIE && !isIE7) for (i = 0; i < document.all.tags(a).length; i++) { obj = document.all.tags(a)[i]; if (!obj || !obj.offsetParent) continue; obj.style.visibility = "" } } function setWidth(c, b, a) { if (c > 0) titleWidth = c; if (b > 0) dayWidth = b; if (a > 0) dayDigits = a } function addCalendar(g, e, a, b, f, h, c, d) { cals[cals.length] = new calOBJ(g, e, a, b, f, c, d) } function calOBJ(h, f, b, c, g, d, e) { var a = this; a.name = h; a.title = f; a.field = b; a.field_d = c; a.formName = g; a.form = null; a.TxtDate = $("#" + d); a.calWin = e } function findCalendar(b) { for (var a = 0; a < cals.length; a++) if (cals[a].name == b) { if (cals[a].form == null) if (cals[a].formName == "") { if (document.forms[0]) cals[a].form = document.forms[0] } else if (document.forms[cals[a].formName]) cals[a].form = document.forms[cals[a].formName]; return cals[a] } return null } function getDayName(d, c, b) { var a = new Date(d, c, b); return yxDays[a.getDay()].substring(0, 3) } function getMonthFromName(b) { for (var a = 0; a < yxMonthsLarge.length; a++) if (yxMonthsLarge[a].toLowerCase().substring(0, 3) == b.toLowerCase()) return a; return 0 } function getFormat() { var b = "\\w\\w\\w", a = calFormat; a = a.replace(/\\/g, "\\\\"); a = a.replace(/\\/g, "\\/"); a = a.replace(/\[/g, "\\["); a = a.replace(/\]/g, "\\]"); a = a.replace(/\(/g, "\\("); a = a.replace(/\)/g, "\\)"); a = a.replace(/\{/g, "\\{"); a = a.replace(/\}/g, "\\}"); a = a.replace(/\/g, "\\>"); a = a.replace(/\|/g, "\\|"); a = a.replace(/\*/g, "\\*"); a = a.replace(/\?/g, "\\?"); a = a.replace(/\+/g, "\\+"); a = a.replace(/\^/g, "\\^"); a = a.replace(/\$/g, "\\$"); a = a.replace(/dd/i, "\\d\\d"); a = a.replace(/mm/i, "\\d\\d"); a = a.replace(/yyyy/i, "\\d\\d\\d\\d"); a = a.replace(/day/i, b); a = a.replace(/mon/i, b); return new RegExp(a) } function getDateNumbers(a) { var h, g, f, e = calFormat.search(/yyyy/i), b = calFormat.search(/mm/i), c = calFormat.search(/mon/i), d = calFormat.search(/dd/i); h = a.substring(e, e + 4) - 0; if (b != -1) g = a.substring(b, b + 2) - 1; else var g = getMonthFromName(a.substring(c, c + 3)); f = a.substring(d, d + 2) - 0; return [h, g, f] } function hideCal() { for (var a = 0; a < cals.length; a++) cals[a].calWin.style.visibility = "hidden"; window.status = ""; showElement("SELECT"); showElement("APPLET") } function lastDay(c) { for (var e = c.getFullYear(), b = c.getMonth(), a = 31; a >= 28; a--) { var d = new Date(e, b, a); if (b == d.getMonth()) return a } } function firstDay(a) { var d = a.getFullYear(), c = a.getMonth(), b = new Date(d, c, 0); return b.getDay() } function dayDisplay(a) { return dayDigits == 0 ? yxDays[a] : yxDays[a].substring(0, dayDigits) } function get2Digits(a) { return (a < 10 ? "0" : "") + a } function clearDate() { currentCal.form[currentCal.field].value = ""; hideCal() } function actualday() { var a = new Date, e = a.getDate(), c = a.getMonth(), d = a.getFullYear(), b = e + "-" + c + "-" + d; return b } function checkDate(c) { var a = findCalendar(c); if (a != null && a.form != null && a.form[a.field]) { var b = getFormat(); return b.test(a.form[a.field].value) ? 0 : 1 } else return 2 } function getCurrentDate() { var a = calFormat, b = new Date; a = a.replace(/yyyy/i, b.getFullYear()); a = a.replace(/mm/i, get2Digits(b.getMonth() + 1)); a = a.replace(/dd/i, get2Digits(b.getDate())); return a } function compareDates(d, e) { var c = getFormat(), a, b; if (c.test(d)) a = getNumbers(d); else a = getNumbers(getCurrentDate()); if (c.test(e)) b = getNumbers(e); else b = getNumbers(getCurrentDate()); var f = a[0] + "" + a[1] + "" + a[2], g = b[0] + "" + b[1] + "" + b[2]; return f == g ? 0 : f > g ? 1 : -1 } function getNumbers(a) { var j = getFormat(), i, d, h; if (j.test(a)) { var g = calFormat.search(/yyyy/i), b = calFormat.search(/mm/i), e = calFormat.search(/mon/i), f = calFormat.search(/dd/i); i = a.substring(g, g + 4); if (b != -1) d = a.substring(b, b + 2); else { var c = getMonthFromName(a.substring(e, e + 3)) + 1; d = c < 10 ? "0" + c : "" + c } h = a.substring(f, f + 2); return [i, d, h] } else return ["", "", ""] } function calBody(c, x, i) { var r = "\n", q = " ", n = "\")'>‹‹\n", m = " \n"; a += l; a += "\t \n"; a += " \n"; var f = c.getFullYear(), t = yxMonthsLarge[c.getMonth()]; a += " \n"; if (f == yearmore && c.getMonth() == 11) { a += m + c.getMonth() + ',"' + i + n; a += o + t + " " + f + p; a += " \n" } else { var w = new Date, v = w.getMonth(); if (c.getMonth() == v && f == yearmore - 1) a += " \n"; else a += m + c.getMonth() + ',"' + i + n; a += o + t + " " + f + p; a += " \n" } a += " \n"; a += "
  ››
\n"; a += " \n"; a += g; a += "\t"; for (var e = weekDay; e < weekDay + 7; e++) a += " " + dayDisplay(e) + "\n"; a += g; var d = 1, j = firstDay(c), y = lastDay(c); if (weekDay > 0 && j == 0) j = 7; for (var e = 0; e < 6; e++) { a += "\t\n"; for (var k = weekDay; k < weekDay + 7; k++) if (e * 7 + k < j || d > y) a += "  \n"; else { var b = calFormat; b = b.replace(/yyyy/i, cY); b = b.replace(/mm/i, get2Digits(cM + 1)); b = b.replace(/MON/, yxMonths[cM].substring(0, 3).toUpperCase()); b = b.replace(/Mon/i, yxMonths[cM].substring(0, 3)); b = b.replace(/dd/i, get2Digits(d)); b = b.replace(/DAY/, getDayName(cY, cM, d).toUpperCase()); b = b.replace(/day/i, getDayName(cY, cM, d)); valueDate = compareDates(b, actualday()); var u = dayColor, h = "calendarday", s = "calendardaya"; if (d == x) { u = currentDayColor; h = "calendarcurrentDay"; s = "calendarcurrenta" } if (valueDate != -1) a += q + h + "'>
" + d++ + r; else a += q + h + "'>" + d++ + "\n" } a += " \n" } a += l; a += " \n"; a += " " + yxLinks[0] + " " + yxLinks[1] + r; a += g; a += "\n"; return a } function prepMonth(c, a) { cM = c - 1; if (cM < 0) { cM = 11; cY-- } var b = new Date(cY, cM, 1); changeCal(b, a) } function nextMonth(c, a) { cM = c + 1; if (cM > 11) { cM = 0; cY++ } var b = new Date(cY, cM, 1); changeCal(b, a) } function changeCal(b, d) { var c = 0; currentCal = findCalendar(d); if (currentCal != null) { var f = getFormat(); if (currentCal.form[currentCal.field].value != "" && f.test(currentCal.form[currentCal.field].value)) { var a = getDateNumbers(currentCal.form[currentCal.field].value); if (a[0] == b.getFullYear() && a[1] == b.getMonth()) c = a[2] } else { var a = new Date; if (a.getFullYear() == b.getFullYear() && a.getMonth() == b.getMonth()) c = a.getDate() } } var e = calBody(b, c, d); currentCal.calWin.innerHTML = e; currentCal.calWin.style.visibility = "visible" } function pickDate(c) { hideCal(); var a = calFormat; a = a.replace(/yyyy/i, cY); a = a.replace(/mm/i, get2Digits(cM + 1)); a = a.replace(/MON/, yxMonths[cM].substring(0, 3).toUpperCase()); a = a.replace(/Mon/i, yxMonths[cM].substring(0, 3)); a = a.replace(/dd/i, get2Digits(c)); a = a.replace(/DAY/, getDayName(cY, cM, c).toUpperCase()); a = a.replace(/day/i, getDayName(cY, cM, c)); var b = a.split("-"); currentCal.form[currentCal.field_d].value = b[0]; currentCal.form[currentCal.field].value = b[1] + "-" + b[2]; currentCal.TxtDate.val(a); $(currentCal.form[currentCal.field]).focus() } function markClick(c) { var b = null; if (isIE || isOpera6) { winX = event.screenX; winY = event.screenY; b = event.srcElement } else if (isN4 || isN6) { winX = c.screenX; winY = c.screenY; document.routeEvent(c); b = c.target } var d = 0, e = 0, a = b; if (a.offsetParent) { d = a.offsetLeft; e = a.offsetTop; while (a = a.offsetParent) { d += a.offsetLeft; e += a.offsetTop } } winX = d; winY = e + b.offsetHeight + 4; return true } function showCal(b, d, e, c, a) { showCal(b, a) } function showCal(d, k, f) { var e = "] not found.", b = null; hideCal(); nameCalendar = d; var h = currentCal, c = new Date, l = false; currentCal = findCalendar(d); if (currentCal != b && currentCal.form != b && currentCal.form[currentCal.field]) { var m = getFormat(); if (currentCal.form[currentCal.field].value != "") { var a = getDateNumbers(currentCal.form[currentCal.field_d].value + "-" + currentCal.form[currentCal.field].value); c = new Date(a[0], a[1], a[2]); cY = a[0]; cM = a[1]; dd = a[2] } else { cY = c.getFullYear(); cM = c.getMonth(); dd = c.getDate() } var i = calBody(c, dd, d); if (currentCal.calWin != b && currentCal.calWin.style.visibility == "visible") { hideCal(); return } currentCal.calWin.innerHTML = i; currentCal.calWin.style.visibility = "visible"; currentCal.calWin.style.left = winX + "px"; currentCal.calWin.style.top = winY + "px"; var j = $(currentCal.calWin), g = ($(f).is("a") ? $(f) : $(f).siblings().filter("a")).position(); j.css({ position: "absolute", top: g.top + 24, left: g.left - 145 }); hideElement("SELECT", currentCal.calWin); hideElement("APPLET", currentCal.calWin) } else { if (currentCal == b) window.status = "Calendar [" + d + e; else if (!currentCal.form) window.status = "Form [" + currentCal.formName + e; else if (!currentCal.form[currentCal.field]) window.status = "Form Field [" + currentCal.formName + "." + currentCal.field + e; if (h != b) currentCal = h } } (isN4 || isN6) && document.captureEvents(Event.CLICK); document.onclick = markClick; function printLayerWeekDay(layer, form, month, day) { var objMes = eval("document." + form + "." + month), objDia = eval("document." + form + "." + day); if (objDia.value != "" && objMes.value != "") { var ent_mesano = objMes.value.split("-"), diasem2 = new Date(parseInt(ent_mesano[1]) + "/" + ent_mesano[0] + "/" + objDia.value), diasemana2 = diasem2.getDay(); if (diasemana2 == 0) diasemana2 = 6; else diasemana2--; document.getElementById(layer).innerHTML = yxDays[diasemana2] } else document.getElementById(layer).innerHTML = "" } function validate() { today = new Date; if (validateDate(today)) document.searchForm.submit(); else return } function validateDate(today) { var arrivalday = eval("document.getElementById(cals[0].field_d)"), arrivalmnthyr = eval("document.getElementById(cals[0].field)"); if (!arrivalday || !arrivalmnthyr) return false; var departureday = eval("document.getElementById(cals[1].field_d)"), departuremnthyr = eval("document.getElementById(cals[1].field)"); if (!departureday && !departuremnthyr) return false; var txtArrival = arrivalday.value + "-" + arrivalmnthyr.value, txtDepature = departureday.value + "-" + departuremnthyr.value, spl_arrival = txtArrival.split("-"), spl_departure = txtDepature.split("-"); String.IsNullOrWhiteSpace(spl_arrival[0]) || String.IsNullOrWhiteSpace(spl_arrival[1]) || String.IsNullOrWhiteSpace(spl_arrival[2]) || String.IsNullOrWhiteSpace(spl_departure[0]) || String.IsNullOrWhiteSpace(spl_departure[1]) || String.IsNullOrWhiteSpace(spl_departure[2]); var dateArrival = new Date(new Number(spl_arrival[2]), new Number(spl_arrival[1]) - 1, new Number(spl_arrival[0]), 0, 0, 0), dateDeparture = new Date(new Number(spl_departure[2]), new Number(spl_departure[1]) - 1, new Number(spl_departure[0]), 0, 0, 0); if (dateArrival.getTime() < today.getTime()) { alert(Calendar_errors[1]); return false } if (dateDeparture.getTime() < today.getTime()) { alert(Calendar_errors[2]); return false } if (dateArrival.getTime() >= dateDeparture.getTime()) { alert(Calendar_errors[3]); return false } var dateArrival2 = dateArrival.getTime() + 54432e5; if (dateDeparture.getTime() >= dateArrival2) { alert(Calendar_errors[5]); return false } return true } function DateAdd(j, b, i, h, f, e) { var c = "", g = new Date(i, b, j, 0, 0, 0), a = new Date(g.getTime()), d = e, b = a.getMonth() + f; if (b > 11) { d = Math.floor((b + 1) / 12); b -= 12 * d; d += e } a.setMonth(b); a.setFullYear(a.getFullYear() + d); a.setDate(a.getDate() + h); if (a.getDate() < 10) c += "0"; c += a.getDate() + "/"; if (a.getMonth() + 1 < 10) c += "0"; c += a.getMonth() + 1 + "/" + a.getFullYear(); return c };