Notice: Undefined index: idioma in /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php on line 815
Notice: Undefined index: idioma in /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php on line 824
Notice: Undefined index: idioma in /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php on line 833
Notice: Undefined index: idioma in /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php on line 842
Warning: Cannot modify header information - headers already sent by (output started at /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php:815) in /homepages/30/d312787004/htdocs/wsb5685429901/web/app/controllers/Front.controller.php on line 861
var JABB = JABB || {};
JABB.version = "0.3";
JABB.Ajax = {
onStart: null,
onStop: null,
onError: null,
XMLHttpFactories: [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
],
sendRequest: function (url, callback, postData) {
var req = this.createXMLHTTPObject();
if (!req) {
return;
}
var method = (postData) ? "POST" : "GET";
var calledOnce = false;
req.open(method, url, true);
//Refused to set unsafe header "User-Agent"
//req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
if (postData) {
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
}
req.onreadystatechange = function () {
switch (req.readyState) {
case 1:
if (!calledOnce) {
JABB.Ajax.onAjaxStart();
calledOnce = true;
}
break;
case 2:
return;
break;
case 3:
return;
break;
case 4:
JABB.Ajax.onAjaxStop();
if (req.status == 200) {
callback(req);
} else {
JABB.Ajax.onAjaxError();
}
delete req;
break;
}/*
if (req.readyState != 4) {
return;
}
if (req.status != 200 && req.status != 304) {
return;
}
callback(req);*/
};
if (req.readyState == 4) {
return;
}
req.send(postData);
},
onAjaxStart: function () {
if (typeof this.onStart == 'function') {
this.onStart();
}
},
onAjaxStop: function () {
if (typeof this.onStop == 'function') {
this.onStop();
}
},
onAjaxError: function () {
if (typeof this.onError == 'function') {
this.onError();
}
},
createXMLHTTPObject: function () {
var xmlhttp = false;
for (var i = 0; i < this.XMLHttpFactories.length; i++) {
try {
xmlhttp = this.XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
},
getJSON: function (url, callback) {
this.sendRequest(url, function (req) {
callback(eval("(" + req.responseText + ")"));
});
},
postJSON: function (url, callback, postData) {
this.sendRequest(url, function (req) {
callback(eval("(" + req.responseText + ")"));
}, postData);
},
get: function (url, container_id) {
this.sendRequest(url, function (req) {
document.getElementById(container_id).innerHTML = JABB.Utils.parseScript(req.responseText);
});
},
post: function (url, container_id, postData) {
this.sendRequest(url, function (req) {
document.getElementById(container_id).innerHTML = JABB.Utils.parseScript(req.responseText);
}, postData);
}
};
JABB.Utils = {
addClass: function (ele, cls) {
if (!this.hasClass(ele, cls)) {
ele.className += " " + cls;
}
},
hasClass: function (ele, cls) {
return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
},
removeClass: function (ele, cls) {
if (this.hasClass(ele, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
ele.className = ele.className.replace(reg, ' ');
}
},
importCss: function (cssFile) {
if (document.createStyleSheet) {
document.createStyleSheet(cssFile);
} else {
var styles = "@import url(" + cssFile + ");";
var newSS = document.createElement('link');
newSS.rel = 'stylesheet';
newSS.href = 'data:text/css,' + escape(styles);
document.getElementsByTagName("head")[0].appendChild(newSS);
}
},
importJs: function (jsFile) {
var d = window.document;
if (d.createElement) {
var js = d.createElement("script");
js.type = "text/javascript";
js.src = jsFile;
if (js) {
d.getElementsByTagName("head")[0].appendChild(js);
}
}
},
getElementsByClass: function (searchClass, node, tag) {
var classElements = new Array();
if (node == null) {
node = document;
}
if (tag == null) {
tag = '*';
}
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (var i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
},
addEvent: function (obj, type, fn) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
} else if (obj.attachEvent) {
obj["e" + type + fn] = fn;
obj[type + fn] = function() { obj["e" + type + fn](window.event); };
obj.attachEvent("on" + type, obj[type + fn]);
} else {
obj["on" + type] = obj["e" + type + fn];
}
},
fireEvent: function (element, event) {
if (!element) return false;
if (document.createEventObject) {
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on' + event, evt);
} else {
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
},
serialize: function (form) {
if (!form || form.nodeName !== "FORM") {
return undefined;
}
var i, j, q = [];
for (i = form.elements.length - 1; i >= 0; i = i - 1) {
if (form.elements[i].name === "") {
continue;
}
switch (form.elements[i].nodeName) {
case 'INPUT':
switch (form.elements[i].type) {
case 'text':
case 'hidden':
case 'password':
case 'button':
case 'reset':
case 'submit':
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
break;
case 'checkbox':
case 'radio':
if (form.elements[i].checked) {
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
}
break;
case 'file':
break;
}
break;
case 'TEXTAREA':
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
break;
case 'SELECT':
switch (form.elements[i].type) {
case 'select-one':
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].options[form.elements[i].selectedIndex].value));
break;
case 'select-multiple':
for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) {
if (form.elements[i].options[j].selected) {
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].options[j].value));
}
}
break;
}
break;
case 'BUTTON':
switch (form.elements[i].type) {
case 'reset':
case 'submit':
case 'button':
q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
break;
}
break;
}
}
return q.join("&");
},
extend: function (obj, args) {
var i;
for (i in args) {
obj[i] = args[i];
}
return obj;
},
createElement: function (element) {
if (typeof document.createElementNS != 'undefined') {
return document.createElementNS('http://www.w3.org/1999/xhtml', element);
}
if (typeof document.createElement != 'undefined') {
return document.createElement(element);
}
return false;
},
getEventTarget: function (e) {
var targ;
if (!e) {
e = window.event;
}
if (e.target) {
targ = e.target;
} else if (e.srcElement) {
targ = e.srcElement;
}
if (targ.nodeType == 3) {
targ = targ.parentNode;
}
return targ;
},
parseScript: function (_source) {
var source = _source,
scripts = [];
while (source.indexOf(" -1) {
var s = source.indexOf("", e);
scripts.push(source.substring(s_e+1, e));
source = source.substring(0, s) + source.substring(e_e+1);
}
for (var i = 0; i < scripts.length; i++) {
try {
eval(scripts[i]);
} catch(ex) {
// do what you want here when a script fails
}
}
return source;
},
createCookie: function (name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
},
readCookie: function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
},
eraseCookie: function (name) {
this.createCookie(name, "", -1);
}
};
/*!
* CalendarJS v1.2
*
* Copyright 2011, Dimitar Ivanov (http://www.bulgaria-web-developers.com/projects/javascript/calendar/)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL Version 3
* (http://www.opensource.org/licenses/gpl-3.0.html) license.
*
* Date: Thu Sep 22 00:49:51 2011 +0300
*/
(function (window, undefined) {
var now = new Date(),
today = [now.getFullYear(), now.getMonth(), now.getDate()].join('-'),
midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate()),
d = window.document;
function Calendar(options) {
this.isOpen = false;
this.focus = false;
this.opts = {
year: new Date().getFullYear(),
month: new Date().getMonth(),
dayNames: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
dayNamesFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
monthNamesFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
startDay: 1,
weekNumbers: false,
months: 1,
inline: false,
disablePast: true,
dateFormat: 'Y-m-d',
onBeforeOpen: function () {},
onBeforeClose: function () {},
onOpen: function () {},
onClose: function () {},
onSelect: function () {}
};
for (var key in options) {
if (options.hasOwnProperty(key)) {
this.opts[key] = options[key];
}
}
this.init.call(this);
}
/* Static functions */
Calendar.Util = {
addClass: function (ele, cls) {
if (!this.hasClass(ele, cls) && ele) {
ele.className += ele.className.length > 0 ? " " + cls : cls;
}
},
hasClass: function (ele, cls) {
if (ele && typeof ele.className != 'undefined' && typeof ele.nodeType != 'undefined' && ele.nodeType === 1) {
return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}
return false;
},
removeClass: function (ele, cls) {
if (this.hasClass(ele, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
ele.className = ele.className.replace(reg, ' ');
}
},
addEvent: function (obj, type, fn) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
} else if (obj.attachEvent) {
obj["e" + type + fn] = fn;
obj[type + fn] = function () {
obj["e" + type + fn](window.event);
};
obj.attachEvent("on" + type, obj[type + fn]);
} else {
obj["on" + type] = obj["e" + type + fn];
}
},
getElementsByClass: function (searchClass, node, tag) {
var classElements = [];
if (node === null) {
node = d;
}
if (tag === null) {
tag = '*';
}
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
for (var i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
},
getEventTarget: function (e) {
var targ;
if (!e) {
e = window.event;
}
if (e.target) {
targ = e.target;
} else if (e.srcElement) {
targ = e.srcElement;
}
if (targ.nodeType == 3) {
targ = targ.parentNode;
}
return targ;
}
};
/* Private functions */
function emptyRow(weekNumbers) {
var i, cell, cols = weekNumbers ? 8 : 7,
row = d.createElement('tr');
for (i = 0; i < cols; i++) {
cell = d.createElement('td');
Calendar.Util.addClass(cell, 'bcal-empty');
row.appendChild(cell);
}
return row;
}
/**
* @param Object obj
* @return Array
*/
function findPos(obj) {
var curleft = 0, curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curleft, curtop];
}
}
/**
* @param Number i
* @param Number month
* @return Number
*/
function getIndex(i, months) {
if (i > 0 && i < months - 1) {
return 0;
} else if (i > 0 && i === months - 1) {
return 2;
} else if (i === 0 && i === months - 1) {
return 3;
} else if (i === 0 && i < months - 1) {
return 1;
}
}
/**
* Format date
*
* @param String format
* @param Number date
* @return String
*/
function _formatDate(format, date) {
function pad(input) {
return (input + "").length === 2 ? input : "0" + input;
}
var i, len, f,
output = [],
dt = new Date(date);
for (i = 0, len = format.length; i < len; i++) {
f = format.charAt(i);
switch (f) {
case 'Y':
output.push(dt.getFullYear());
break;
case 'y':
output.push((dt.getFullYear() + "").slice(-2));
break;
case 'm':
output.push(pad(dt.getMonth() + 1));
break;
case 'n':
output.push(dt.getMonth() + 1);
break;
case 'F':
output.push(this.opts.monthNamesFull[dt.getMonth()]);
break;
case 'M':
output.push(this.opts.monthNames[dt.getMonth()]);
break;
case 'd':
output.push(pad(dt.getDate()));
break;
case 'j':
output.push(dt.getDate());
break;
case 'D':
output.push(this.opts.dayNamesFull[dt.getDay()].slice(0, 3));
break;
case 'l':
output.push(this.opts.dayNamesFull[dt.getDay()]);
break;
default:
output.push(f);
}
}
return output.join("");
}
Calendar.prototype = {
/**
* @return Instance of calendar
*/
init: function () {
var self = this,
i = 0, attrname,
body = d.getElementsByTagName("body")[0],
div = d.createElement('div');
self.id = Math.floor(Math.random() * 9999999);
self.element = d.getElementById(self.opts.element);
if (!self.element) {
return;
}
div.setAttribute('id', ['bcal-container', self.id].join('-'));
Calendar.Util.addClass(div, 'bcal-container');
if (!self.opts.inline) {
div.style.display = 'none';
div.style.position = 'absolute';
Calendar.Util.addEvent(self.element, 'focus', function (e) {
if (self.isOpen) {
self.close();
} else {
self.open();
}
});
Calendar.Util.addEvent(self.element, 'blur', function (e) {
if (self.isOpen && !self.focus) {
self.close();
}
});
Calendar.Util.addEvent(self.element, 'keydown', function (e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
switch (key) {
case 9: //Tab
self.close();
break;
case 27: //Escape
self.close();
break;
}
});
Calendar.Util.addEvent(document, "mousedown", function (e) {
var target = Calendar.Util.getEventTarget(e);
if (Calendar.Util.hasClass(target, "bcal-container") ||
Calendar.Util.hasClass(target, "bcal-table") ||
Calendar.Util.hasClass(target, "bcal-date") ||
Calendar.Util.hasClass(target, "bcal-today") ||
Calendar.Util.hasClass(target, "bcal-empty") ||
Calendar.Util.hasClass(target, "bcal-selected") ||
Calendar.Util.hasClass(target, "bcal-week") ||
Calendar.Util.hasClass(target, "bcal-nav") ||
Calendar.Util.hasClass(target, "bcal-navi") ||
Calendar.Util.hasClass(target, "bcal-month") ||
Calendar.Util.hasClass(target, "bcal-wday") ||
Calendar.Util.hasClass(target, "bcal-wnum") ||
Calendar.Util.hasClass(target.parentNode, "bcal-container") ||
Calendar.Util.hasClass(target.parentNode, "bcal-table")) {
} else {
self.close();
}
});
body.appendChild(div);
} else {
self.element.appendChild(div);
}
self.container = div;
var y = self.opts.year, m = self.opts.month;
for (i = 0; i < self.opts.months; i++) {
self.draw(y, m + i, getIndex(i, self.opts.months));
}
return self;
},
/**
* @param String format
* @param Number date
* @return String
*/
formatDate: function () {
return _formatDate.apply(this, arguments);
},
/**
* @param Number year
* @param Number month
* @param Number index (0 - without navigation, 1 - prev navigation, 2 - next navigation, 3 - prev and next navigation)
* @param Number id
*/
draw: function (year, month, index, id) {
var self = this,
autoId = typeof id === 'undefined' ? Math.floor(Math.random() * 9999999) : id,
firstOfMonth = new Date(year, month, 1),
daysInMonth = new Date(year, month + 1, 0).getDate(),
startDay = firstOfMonth.getUTCDay(),
first = firstOfMonth.getDay(),
i, day, date, rows = 0, cols = self.opts.weekNumbers ? 8 : 7,
table = d.createElement('table'),
thead = d.createElement('thead'),
tbody = d.createElement('tbody'),
row, cell, text, a, b, jsdate, current,
s_arr, si, slen;
row = d.createElement('tr');
cell = d.createElement('th');
if (index === 1 || index === 3) {
Calendar.Util.addEvent(cell, 'click', function (e) {
self.container.innerHTML = '';
for (i = 0; i < self.opts.months; i++) {
self.draw(year, month - self.opts.months + i, getIndex(i, self.opts.months));
}
});
cell.style.cursor = 'pointer';
Calendar.Util.addClass(cell, "bcal-nav");
text = d.createTextNode('<');
cell.appendChild(text);
} else {
Calendar.Util.addClass(cell, "bcal-navi");
}
row.appendChild(cell);
cell = d.createElement('th');
cell.colSpan = (cols === 7) ? 5 : 6;
Calendar.Util.addClass(cell, "bcal-month");
cell.appendChild(d.createTextNode(self.opts.monthNamesFull[firstOfMonth.getMonth()] + ' ' + firstOfMonth.getFullYear()));
row.appendChild(cell);
cell = d.createElement('th');
if (index === 2 || index === 3) {
cell.style.cursor = 'pointer';
Calendar.Util.addClass(cell, "bcal-nav");
text = d.createTextNode('>');
Calendar.Util.addEvent(cell, 'click', function (e) {
self.container.innerHTML = '';
for (i = 0; i < self.opts.months; i++) {
self.draw(year, month + i + 1, getIndex(i, self.opts.months));
}
});
cell.appendChild(text);
} else {
Calendar.Util.addClass(cell, "bcal-navi");
}
row.appendChild(cell);
thead.appendChild(row);
row = d.createElement('tr');
if (self.opts.weekNumbers) {
cell = d.createElement('th');
cell.appendChild(d.createTextNode('wk'));
Calendar.Util.addClass(cell, "bcal-wnum");
row.appendChild(cell);
}
for (i = 0; i < 7; i++) {
cell = d.createElement('th');
text = d.createTextNode(self.opts.dayNames[(self.opts.startDay + i) % 7]);
Calendar.Util.addClass(cell, "bcal-wday");
cell.appendChild(text);
row.appendChild(cell);
}
thead.appendChild(row);
table.appendChild(thead);
day = self.opts.startDay + 1 - first;
while (day > 1) {
day -= 7;
}
while (day <= daysInMonth) {
jsdate = new Date(year, month, day + startDay);
row = d.createElement('tr');
if (self.opts.weekNumbers) {
cell = d.createElement('td');
Calendar.Util.addClass(cell, 'bcal-week');
a = new Date(jsdate.getFullYear(), jsdate.getMonth(), jsdate.getDate() - (jsdate.getDay() || 7) + 3);
//alert(a);
b = new Date(a.getFullYear(), 0, 4);
cell.appendChild(d.createTextNode(1 + Math.round((a - b) / 864e5 / 7)));
row.appendChild(cell);
}
for (i = 0; i < 7; i++) {
cell = d.createElement('td');
if (day > 0 && day <= daysInMonth) {
cell.setAttribute('bcal-date', new Date(year, month, day).getTime());
Calendar.Util.addClass(cell, 'bcal-date');
current = new Date(year, month, day);
if (today === [current.getFullYear(), current.getMonth(), current.getDate()].join('-')) {
Calendar.Util.addClass(cell, 'bcal-today');
}
text = d.createTextNode(day);
cell.appendChild(text);
var hoy = new Date();
var minReserva = new Date(hoy.getTime() + (1 * 24 * 3600 * 1000));
//alert(minReserva);
//if (current < minReserva){
// Calendar.Util.addClass(cell, 'bcal-past');
// }
if (self.opts.disablePast === true && current < minReserva) {
Calendar.Util.addClass(cell, 'bcal-past');
} else {
Calendar.Util.addEvent(cell, 'click', (function (self, cell) {
return function () {
s_arr = Calendar.Util.getElementsByClass('bcal-selected', self.container, 'td');
for (si = 0, slen = s_arr.length; si < slen; si++) {
Calendar.Util.removeClass(s_arr[si], 'bcal-selected');
}
Calendar.Util.addClass(cell, 'bcal-selected');
var ts = parseInt(cell.getAttribute('bcal-date'), 10);
if (self.opts.element && !self.opts.inline) {
self.close();
self.element.value = self.formatDate(self.opts.dateFormat, ts);
}
self.opts.onSelect.apply(self, [self.element, self.formatDate(self.opts.dateFormat, ts), ts, cell]);
};
})(self, cell));
}
} else {
Calendar.Util.addClass(cell, 'bcal-empty');
}
row.appendChild(cell);
tbody.appendChild(row);
day++;
}
rows++;
}
if (rows === 5) {
tbody.appendChild(emptyRow(self.opts.weekNumbers));
} else if (rows === 4) {
tbody.appendChild(emptyRow(self.opts.weekNumbers));
tbody.appendChild(emptyRow(self.opts.weekNumbers));
}
Calendar.Util.addClass(table, 'bcal-table');
table.setAttribute('id', ['bcal-table', autoId].join('-'));
table.appendChild(tbody);
Calendar.Util.addEvent(table, 'click', function (e) {
self.focus = true;
});
var tbl = d.getElementById(['bcal-table', autoId].join('-'));
if (tbl) {
self.container.removeChild(tbl);
}
self.container.appendChild(table);
},
/**
* @return Instance of calendar
*/
open: function () {
var self = this,
pos = findPos(self.element),
result;
result = self.opts.onBeforeOpen.apply(self, []);
if (result === false) {
return self;
}
self.container.style.top = (pos[1] + self.element.offsetHeight) + 'px';
self.container.style.left = pos[0] + 'px';
self.container.style.display = '';
self.opts.onOpen.apply(self, [self.element]);
self.isOpen = true;
self.focus = true;
return self;
},
/**
* @return Instance of calendar
*/
close: function () {
var self = this,
result;
result = self.opts.onBeforeClose.apply(self, []);
if (result === false) {
return self;
}
self.container.style.display = 'none';
self.opts.onClose.apply(self, []);
self.isOpen = false;
self.focus = false;
return self;
}
};
return (window.Calendar = Calendar);
})(window);
/*
* OverlayJS v1.0
*
* Copyright 2011, Dimitar Ivanov (http://www.bulgaria-web-developers.com/projects/javascript/overlay/)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL Version 3
* (http://www.opensource.org/licenses/gpl-3.0.html) license.
*
* Date: Sun Sep 25 20:54:10 2011 +0300
*/
(function(window,undefined){var document=window.document,prefix="ojs-";function getViewport(){var width,height;if(typeof window.innerWidth!=="undefined"){width=window.innerWidth;height=window.innerHeight}else{if(typeof document.documentElement!=="undefined"&&typeof document.documentElement.clientWidth!=="undefined"&&document.documentElement.clientWidth!==0){width=document.documentElement.clientWidth;height=document.documentElement.clientHeight}else{width=document.body.clientWidth;height=document.body.clientHeight}}return{width:parseInt(width,10),height:parseInt(height,10)}}function getScroll(){var scrollLeft,scrollTop;if(typeof window.pageYOffset!=="undefined"){scrollTop=window.pageYOffset;scrollLeft=window.pageXOffset}else{var B=document.body,D=document.documentElement;D=(D.clientHeight)?D:B;scrollTop=D.scrollTop;scrollLeft=D.scrollLeft}return{top:parseInt(scrollTop,10),left:parseInt(scrollLeft,10)}}function getDocHeight(){return Math.max(Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),Math.max(document.body.offsetHeight,document.documentElement.offsetHeight),Math.max(document.body.clientHeight,document.documentElement.clientHeight))}function getDocWidth(){return Math.max(Math.max(document.body.scrollWidth,document.documentElement.scrollWidth),Math.max(document.body.offsetWidth,document.documentElement.offsetWidth),Math.max(document.body.clientWidth,document.documentElement.clientWidth))}function addEvent(obj,type,fn){if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])}else{obj.addEventListener(type,fn,false)}}function OverlayJS(options){if(!(this instanceof OverlayJS)){return new OverlayJS(options)}this.curInst=null;this.data={};this.id=Math.floor(Math.random()*999999);this.version="1.0";this.isOpen=false;this.opts={selector:"",width:320,height:240,autoOpen:false,modal:false,header:true,footer:true,buttons:{Ok:function(){this.close()}},onBeforeOpen:function(){},onOpen:function(){},onBeforeClose:function(){},onClose:function(){}};for(var attr in options){if(options.hasOwnProperty(attr)){this.opts[attr]=options[attr]}}this._attachOverlay();return this}OverlayJS.prototype={_attachOverlay:function(){var self=this,body=document.getElementsByTagName("body")[0],elem=document.getElementById(self.opts.selector),container=document.createElement("div"),wrapper=document.createElement("div"),holder=document.createElement("div"),header=document.createElement("div"),exit=document.createElement("span"),content=document.createElement("div"),footer=document.createElement("div"),viewport=getViewport(),scroller=getScroll(),btn;if(!self.opts.selector||!elem){return }container.id=[prefix,"container-",self.id].join("");wrapper.id=[prefix,"wrapper-",self.id].join("");holder.id=[prefix,"holder-",self.id].join("");header.id=[prefix,"header-",self.id].join("");content.id=[prefix,"content-",self.id].join("");footer.id=[prefix,"footer-",self.id].join("");container.className=[prefix,"container"].join("");wrapper.className=[prefix,"wrapper"].join("");holder.className=[prefix,"holder"].join("");header.className=[prefix,"header"].join("");content.className=[prefix,"content"].join("");footer.className=[prefix,"footer"].join("");exit.className=[prefix,"close"].join("");header.innerHTML=elem.title;content.innerHTML=elem.innerHTML;for(var key in self.opts.buttons){if(self.opts.buttons.hasOwnProperty(key)){btn=document.createElement("input");btn.type="button";btn.value=key;btn.onclick=function(k){return function(){self.opts.buttons[k].apply(self,[this])}}(key);footer.appendChild(btn)}}exit.onclick=function(){self.close()};header.appendChild(exit);holder.style.width=self.opts.width+"px";holder.style.height=self.opts.height+"px";holder.style.webkitTransitionProperty="top, left";holder.style.webkitTransitionDuration="1000ms";if(self.opts.header){holder.appendChild(header)}else{content.style.top=0}holder.appendChild(content);if(self.opts.footer){holder.appendChild(footer)}else{content.style.bottom=0}container.appendChild(wrapper);container.appendChild(holder);body.appendChild(container);addEvent(window,"resize",function(){self._onWindowResize.call(self)});addEvent(window,"scroll",function(){self._onWindowResize.call(self)});addEvent(document,"keydown",function(e){var key=e.charCode?e.charCode:e.keyCode?e.keyCode:0;if(key===27){if(self.curInst){self.curInst.close()}}});self.content=content;self.holder=holder;self.wrapper=wrapper;self.container=container;if(self.opts.autoOpen){self.open()}return self},_setPosition:function(){var hs=this.holder.style,scroller=getScroll(),viewport=getViewport();hs.top=[scroller.top+(viewport.height-this.opts.height)/2,"px"].join("");hs.left=[scroller.left+(viewport.width-this.opts.width)/2,"px"].join("")},_setSize:function(){var ws=this.wrapper.style;ws.height=[getDocHeight(),"px"].join("");ws.width=[getDocWidth(),"px"].join("")},_onWindowResize:function(){if(!this.isOpen){return }this._setPosition();this._setSize()},setData:function(key,value){this.data[key]=value;return this},getData:function(key){return this.data[key]},open:function(){var self=this,result=self.opts.onBeforeOpen.call(self);self.curInst=self;if(result===false){return self}self._setSize();self._setPosition();self.wrapper.style.display=self.opts.modal?"block":"none";self.container.style.display="block";self.opts.onOpen.call(self);self.isOpen=true;return self},close:function(){var self=this,result=self.opts.onBeforeClose.call(self);if(result===false){return self}self.container.style.display="none";self.opts.onClose.call(self);self.curInst=null;self.isOpen=false;return self}};return(window.OverlayJS=OverlayJS)})(window);
/**
* Version: 1.0 Alpha-1
* Build Date: 13-Nov-2007
* Copyright (c) 2006-2007, Coolite Inc. (http://www.coolite.com/). All rights reserved.
* License: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/.
* Website: http://www.datejs.com/ or http://www.coolite.com/datejs/
*/
Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|after|from)/i,subtract:/^(\-|before|ago)/i,yesterday:/^yesterday/i,today:/^t(oday)?/i,tomorrow:/^tomorrow/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^min(ute)?s?/i,hour:/^h(ou)?rs?/i,week:/^w(ee)?k/i,month:/^m(o(nth)?s?)?/i,day:/^d(ays?)?/i,year:/^y((ea)?rs?)?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a|p)/i},abbreviatedTimeZoneStandard:{GMT:"-000",EST:"-0400",CST:"-0500",MST:"-0600",PST:"-0700"},abbreviatedTimeZoneDST:{GMT:"-000",EDT:"-0500",CDT:"-0600",MDT:"-0700",PDT:"-0800"}};
Date.getMonthNumberFromName=function(name){var n=Date.CultureInfo.monthNames,m=Date.CultureInfo.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;idate)?1:(this=start.getTime()&&t<=end.getTime();};Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};Date.prototype.addSeconds=function(value){return this.addMilliseconds(value*1000);};Date.prototype.addMinutes=function(value){return this.addMilliseconds(value*60000);};Date.prototype.addHours=function(value){return this.addMilliseconds(value*3600000);};Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};Date.prototype.addWeeks=function(value){return this.addMilliseconds(value*604800000);};Date.prototype.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,this.getDaysInMonth()));return this;};Date.prototype.addYears=function(value){return this.addMonths(value*12);};Date.prototype.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
var x=config;if(x.millisecond||x.milliseconds){this.addMilliseconds(x.millisecond||x.milliseconds);}
if(x.second||x.seconds){this.addSeconds(x.second||x.seconds);}
if(x.minute||x.minutes){this.addMinutes(x.minute||x.minutes);}
if(x.hour||x.hours){this.addHours(x.hour||x.hours);}
if(x.month||x.months){this.addMonths(x.month||x.months);}
if(x.year||x.years){this.addYears(x.year||x.years);}
if(x.day||x.days){this.addDays(x.day||x.days);}
return this;};Date._validate=function(value,min,max,name){if(typeof value!="number"){throw new TypeError(value+" is not a Number.");}else if(valuemax){throw new RangeError(value+" is not a valid value for "+name+".");}
return true;};Date.validateMillisecond=function(n){return Date._validate(n,0,999,"milliseconds");};Date.validateSecond=function(n){return Date._validate(n,0,59,"seconds");};Date.validateMinute=function(n){return Date._validate(n,0,59,"minutes");};Date.validateHour=function(n){return Date._validate(n,0,23,"hours");};Date.validateDay=function(n,year,month){return Date._validate(n,1,Date.getDaysInMonth(year,month),"days");};Date.validateMonth=function(n){return Date._validate(n,0,11,"months");};Date.validateYear=function(n){return Date._validate(n,1,9999,"seconds");};Date.prototype.set=function(config){var x=config;if(!x.millisecond&&x.millisecond!==0){x.millisecond=-1;}
if(!x.second&&x.second!==0){x.second=-1;}
if(!x.minute&&x.minute!==0){x.minute=-1;}
if(!x.hour&&x.hour!==0){x.hour=-1;}
if(!x.day&&x.day!==0){x.day=-1;}
if(!x.month&&x.month!==0){x.month=-1;}
if(!x.year&&x.year!==0){x.year=-1;}
if(x.millisecond!=-1&&Date.validateMillisecond(x.millisecond)){this.addMilliseconds(x.millisecond-this.getMilliseconds());}
if(x.second!=-1&&Date.validateSecond(x.second)){this.addSeconds(x.second-this.getSeconds());}
if(x.minute!=-1&&Date.validateMinute(x.minute)){this.addMinutes(x.minute-this.getMinutes());}
if(x.hour!=-1&&Date.validateHour(x.hour)){this.addHours(x.hour-this.getHours());}
if(x.month!==-1&&Date.validateMonth(x.month)){this.addMonths(x.month-this.getMonth());}
if(x.year!=-1&&Date.validateYear(x.year)){this.addYears(x.year-this.getFullYear());}
if(x.day!=-1&&Date.validateDay(x.day,this.getFullYear(),this.getMonth())){this.addDays(x.day-this.getDate());}
if(x.timezone){this.setTimezone(x.timezone);}
if(x.timezoneOffset){this.setTimezoneOffset(x.timezoneOffset);}
return this;};Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};Date.prototype.isLeapYear=function(){var y=this.getFullYear();return(((y%4===0)&&(y%100!==0))||(y%400===0));};Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun());};Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth());};Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1});};Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()});};Date.prototype.moveToDayOfWeek=function(day,orient){var diff=(day-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};Date.prototype.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/86400000);};Date.prototype.getWeekOfYear=function(firstDayOfWeek){var y=this.getFullYear(),m=this.getMonth(),d=this.getDate();var dow=firstDayOfWeek||Date.CultureInfo.firstDayOfWeek;var offset=7+1-new Date(y,0,1).getDay();if(offset==8){offset=1;}
var daynum=((Date.UTC(y,m,d,0,0,0)-Date.UTC(y,0,1,0,0,0))/86400000)+1;var w=Math.floor((daynum-offset+7)/7);if(w===dow){y--;var prevOffset=7+1-new Date(y,0,1).getDay();if(prevOffset==2||prevOffset==8){w=53;}else{w=52;}}
return w;};Date.prototype.isDST=function(){console.log('isDST');return this.toString().match(/(E|C|M|P)(S|D)T/)[2]=="D";};Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST());};Date.prototype.setTimezoneOffset=function(s){var here=this.getTimezoneOffset(),there=Number(s)*-6/10;this.addMinutes(there-here);return this;};Date.prototype.setTimezone=function(s){return this.setTimezoneOffset(Date.getTimezoneOffset(s));};Date.prototype.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r[0]+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};Date.prototype.getDayName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()];};Date.prototype.getMonthName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()];};Date.prototype._toString=Date.prototype.toString;Date.prototype.toString=function(format){var self=this;var p=function p(s){return(s.toString().length==1)?"0"+s:s;};return format?format.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(format){switch(format){case"hh":return p(self.getHours()<13?self.getHours():(self.getHours()-12));case"h":return self.getHours()<13?self.getHours():(self.getHours()-12);case"HH":return p(self.getHours());case"H":return self.getHours();case"mm":return p(self.getMinutes());case"m":return self.getMinutes();case"ss":return p(self.getSeconds());case"s":return self.getSeconds();case"yyyy":return self.getFullYear();case"yy":return self.getFullYear().toString().substring(2,4);case"dddd":return self.getDayName();case"ddd":return self.getDayName(true);case"dd":return p(self.getDate());case"d":return self.getDate().toString();case"MMMM":return self.getMonthName();case"MMM":return self.getMonthName(true);case"MM":return p((self.getMonth()+1));case"M":return self.getMonth()+1;case"t":return self.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case"tt":return self.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case"zzz":case"zz":case"z":return"";}}):this._toString();};
Date.now=function(){return new Date();};Date.today=function(){return Date.now().clearTime();};Date.prototype._orient=+1;Date.prototype.next=function(){this._orient=+1;return this;};Date.prototype.last=Date.prototype.prev=Date.prototype.previous=function(){this._orient=-1;return this;};Date.prototype._is=false;Date.prototype.is=function(){this._is=true;return this;};Number.prototype._dateElement="day";Number.prototype.fromNow=function(){var c={};c[this._dateElement]=this;return Date.now().add(c);};Number.prototype.ago=function(){var c={};c[this._dateElement]=this*-1;return Date.now().add(c);};(function(){var $D=Date.prototype,$N=Number.prototype;var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),de;var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
return this.moveToDayOfWeek(n,this._orient);};};for(var i=0;i0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
if(!last&&q[1].length===0){last=true;}
if(!last){var qx=[];for(var j=0;j0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
if(rx[1].length1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
if(args){for(var i=0,px=args.shift();i2)?n:(n+(((n+2000)Date.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
for(var i=0;i', data[i].name, '
',
data[i].state, ', ', data[i].city, ' ', data[i].zip, '
',
data[i].address_1, '
',
'Email: ', data[i].email, '
',
'Phone: ', data[i].phone, '
',
'Opening Time:
',
data[i].opening_time.replace(/\n/, '
')].join("")
});
google.maps.event.addListener(_marker, "click", function (info, marker) {
return function () {
info.open(map, marker);
};
}(_info, _marker));
if (i == len - 1) {
map.setCenter(_latLng);
}
markers.push(_marker);
}
}
});
},
buttons: {
"Close": function () {
this.close();
}
}
});
},
bindMenu: function () {
var self = this,
breadcrumbsEl = JABB.Utils.getElementsByClass("crBreadcrumbsEl", self.container, "A"),
i, len;
for (i = 0, len = breadcrumbsEl.length; i < len; i++) {
switch (parseInt(breadcrumbsEl[i].getAttribute("rel"), 10)) {
case 2:
if (!self.passed.first) {
breadcrumbsEl[i].style.cursor = "default";
}
break;
case 3:
if (!self.passed.second) {
breadcrumbsEl[i].style.cursor = "default";
}
break;
case 4:
if (!self.passed.third) {
breadcrumbsEl[i].style.cursor = "default";
}
break;
}
breadcrumbsEl[i].onclick = function (inst) {
return function (e) {
switch (parseInt(this.getAttribute("rel"), 10)) {
case 1:
inst.loadSearch();
break;
case 2:
if (inst.passed.first) {
inst.loadCars();
}
break;
case 3:
if (inst.passed.second) {
inst.loadExtras();
}
break;
case 4:
if (inst.passed.third) {
inst.loadCheckout();
}
break;
}
if (e && e.preventDefault) {
e.preventDefault();
}
return false;
};
}(self);
}
},
bindTabs: function () {
var self = this,
arr = JABB.Utils.getElementsByClass("crTabsLink", self.container, "a"),
i, len;
for (i = 0, len = arr.length; i < len; i++) {
arr[i].onclick = function (inst) {
return function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
inst.loadCars.apply(inst, [null, this.getAttribute("rel"), inst.transmission]);
return false;
};
}(self);
}
arr = JABB.Utils.getElementsByClass("crSort", self.container, "a");
for (i = 0, len = arr.length; i < len; i++) {
arr[i].onclick = function (inst) {
return function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
var rel = this.getAttribute("rel");
inst.loadCars.apply(inst, [null, inst.size, inst.transmission, rel.split("|")[0], rel.split("|")[1]]);
return false;
};
}(self);
}
var transmission = document.getElementById("crTransmission");
if (transmission) {
transmission.onchange = function (e) {
self.loadCars.apply(self, [null, self.size, this.options[this.selectedIndex].value, self.col_name, self.direction]);
};
}
},
bindSearch: function () {
var self = this,
dateFrom = new Calendar({
element: "cr_date_from",
//dateFormat: "j F Y",
dateFormat: "Y-m-d",
disablePast: true,
onSelect: function () {
reCalc.call(self);
}
}),
dateTo = new Calendar({
element: "cr_date_to",
//dateFormat: "j F Y",
dateFormat: "Y-m-d",
disablePast: true,
onSelect: function () {
//reCalc2.call(self);
}
}),
lnkFrom = document.getElementById("crDateFrom"),
lnkTo = document.getElementById("crDateTo"),
btnQuote = document.getElementById("crBtnQuote"),
btnMap = document.getElementById("crBtnMap"),
sameLoc = document.getElementById("cr_same_location"),
returnLoc = document.getElementById("crReturnBox");
self.elFrom = document.getElementById("cr_date_from");
self.elTo = document.getElementById("cr_date_to");
self.elHFrom = document.getElementById("cr_hour_from");
self.elMFrom = document.getElementById("cr_minutes_from");
self.elHTo = document.getElementById("cr_hour_to");
self.elMTo = document.getElementById("cr_minutes_to");
self.promoCode = returnLoc = document.getElementById("promoCode");
function leadingZero(value){
if(value < 10){
return "0" + value.toString();
}
return value.toString();
}
function reCalc() {
var from = Date.parse(this.elFrom.value + " " + this.elHFrom.value + ":" + this.elMFrom.value),
to = Date.parse(this.elTo.value + " " + this.elHTo.value + ":" + this.elMTo.value),
nd = document.getElementById("crNumDays"),
days;
//alert(days);
if (from !== null && to !== null) {
//days = Math.ceil((to - from) / 86400000);
days = Math.ceil((to - from) / 86400000);
if (days==0)days=1;
//alert(days);
//alert(Date.parse(this.elFrom.value));
var expire=new Date(self.elFrom.value);
fechaIni=new Date(expire.getTime()+(0 * 24 * 3600 * 1000));
strFechaNova=fechaIni.getFullYear()+"-"+leadingZero(fechaIni.getMonth()+1)+"-"+leadingZero(fechaIni.getDate());
//strFechaNova=
//alert(days);
if(days<1){
//alert("nok-minimo 3 dias");
//self.elTo.value=strFechaNova.format("yy-mm-dd");
document.getElementById("crNumDays").style.visibility='hidden';
}else{
document.getElementById("crNumDays").style.visibility='hidden';
}
//self.elTo.value=strFechaNova;
//new Date(today.getTime() + (7 * 24 * 3600 * 1000))
//alert(self.elFrom.value+3);
//var fechaini = new Date();
//fechaIni=this.elFrom.value ;
//alert(fechaIni);
if (days > 0) {
//nd.lastChild.innerHTML = days;
//nd.style.display = "visible";
} else {
//nd.style.display = "none";
}
} else {
//nd.style.display = "none";
}
}
if (lnkFrom) {
lnkFrom.onclick = function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
dateFrom.isOpen ? dateFrom.close() : dateFrom.open();
return false;
};
}
if (lnkTo) {
lnkTo.onclick = function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
dateTo.isOpen ? dateTo.close() : dateTo.open();
return false;
};
}
if (btnMap) {
btnMap.onclick = function (e) {
self.overlayMap.open();
if (e && e.preventDefault) {
e.preventDefault();
}
return false;
}
}
if (sameLoc && returnLoc) {
function bindLoc(el) {
if (this.checked) {
el.style.display = "none";
} else {
el.style.display = "";
}
}
sameLoc.onchange = function () {
bindLoc.call(this, returnLoc);
};
sameLoc.onclick = function () {
bindLoc.call(this, returnLoc);
};
}
if (btnQuote) {
btnQuote.onclick = function () {
this.disabled = true;
if (!self.validateSearch(this)) {
this.disabled = false;
return;
}
self.passed.first = true;
self.loadCars.apply(self, [JABB.Utils.serialize(document.getElementById("crFormSearch"))]);
};
}
},
bindCars: function () {
var self = this,
btnContinue = JABB.Utils.getElementsByClass("crBtnContinue", self.container, "button"),
i, len = btnContinue.length;
for (i = 0; i < len; i++) {
btnContinue[i].onclick = function (inst) {
return function (e) {
inst.passed.second = true;
inst.type_id = this.value;
inst.loadExtras();
};
}(self);
}
},
bindExtras: function () {
var self = this,
btnCheckout = document.getElementById("crBtnCheckout"),
btnConditions = document.getElementById("crBtnConditions"),
btnWhen = document.getElementById("crBtnWhen"),
btnChoise = document.getElementById("crBtnChoise"),
add = JABB.Utils.getElementsByClass("crBtnAdd", self.container, "button"),
remove = JABB.Utils.getElementsByClass("crBtnRemove", self.container, "button"),
i, len;
if (btnCheckout) {
btnCheckout.onclick = function () {
self.passed.third = true;
self.loadCheckout();
};
}
if (btnConditions) {
btnConditions.onclick = function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
self.overlayTerms.open();
return false;
}
}
if (btnWhen) {
btnWhen.onclick = function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
self.loadSearch();
return false;
};
}
if (btnChoise) {
btnChoise.onclick = function (e) {
if (e && e.preventDefault) {
e.preventDefault();
}
self.loadCars();
return false;
};
}
for (i = 0, len = add.length; i < len; i++) {
add[i].onclick = function (e) {
self.addExtra.apply(self, [this.value]);
};
}
for (i = 0, len = remove.length; i < len; i++) {
remove[i].onclick = function (e) {
self.removeExtra.apply(self, [this.value]);
};
}
},
bindCheckout: function () {
var self = this,
btnTerms = document.getElementById("crBtnTerms"),
btnConfirm = document.getElementById("crBtnConfirm"),
btnBack = document.getElementById("crBtnBack");
if (btnTerms) {
btnTerms.onclick = function (e) {
self.overlayTerms.open();
if (e && e.preventDefault) {
e.preventDefault();
}
return false;
};
}
if (btnBack) {
btnBack.onclick = function () {
self.loadExtras();
};
}
if (btnConfirm) {
var frm = btnConfirm.form;
if (frm) {
var pm = frm.payment_method;
if (pm) {
pm.onchange = function (e) {
var data = document.getElementById("crCCData"),
names = ["cc_type", "cc_num", "cc_exp_month", "cc_exp_year", "cc_code"],
i, len = names.length;
switch (this.options[this.selectedIndex].value) {
case 'creditcard':
data.style.display = "";
for (i = 0; i < len; i++) {
JABB.Utils.addClass(frm[names[i]], "crRequired");
}
break;
default:
data.style.display = "none";
for (i = 0; i < len; i++) {
JABB.Utils.removeClass(frm[names[i]], "crRequired");
}
}
};
}
}
btnConfirm.onclick = function () {
var that = this;
that.disabled = true;
btnBack.disabled = true;
if (!self.validateCheckoutForm(that)) {
that.disabled = false;
btnBack.disabled = false;
return;
}
JABB.Ajax.postJSON(self.opts.folder + "index.php?controller=Front&action=bookingSave", function (data) {
switch (data.code) {
case 100:
self.errorHandler('\n' + self.opts.message_4);
that.disabled = false;
btnBack.disabled = false;
break;
case 200:
switch (data.payment) {
case 'paypal':
self.triggerLoading('message_1', self.container);
self.loadPaymentForm(data);
break;
case 'authorize':
self.triggerLoading('message_2', self.container);
self.loadPaymentForm(data);
break;
case 'creditcard':
self.triggerLoading('message_3', self.container);
break;
default:
self.triggerLoading('message_3', self.container);
}
break;
}
}, JABB.Utils.serialize(that.form));
};
}
},
loadSearch: function () {
var self = this;
JABB.Ajax.sendRequest(self.opts.folder + "index.php?controller=Front&action=loadSearch", function (req) {
self.container.innerHTML = req.responseText;
self.bindSearch();
self.bindMenu();
});
},
loadCars: function () {
var self = this,
post = typeof arguments[0] != "undefined" ? arguments[0] : null,
qs = "";
if (typeof arguments[1] != "undefined") {
self.size = arguments[1];
} else {
self.size = "small";
}
qs += "&size=" + self.size;
if (typeof arguments[2] != "undefined") {
self.transmission = arguments[2];
} else {
self.transmission = "";
}
qs += "&transmission=" + self.transmission;
if (typeof arguments[3] != "undefined") {
self.col_name = arguments[3];
} else {
self.col_name = "t1.name";
}
qs += "&col_name=" + self.col_name;
if (typeof arguments[4] != "undefined") {
self.direction = arguments[4];
} else {
self.direction = "asc";
}
qs += "&direction=" + self.direction;
JABB.Ajax.sendRequest(self.opts.folder + "index.php?controller=Front&action=loadCars" + qs, function (req) {
self.container.innerHTML = req.responseText;
self.bindCars();
self.bindMenu();
self.bindTabs();
}, post);
},
loadExtras: function () {
var self = this,
qs = "&type_id=" + self.type_id;
JABB.Ajax.sendRequest([self.opts.folder, "index.php?controller=Front&action=loadExtras", qs].join(""), function (req) {
self.container.innerHTML = req.responseText;
self.bindExtras();
self.bindMenu();
});
},
loadCheckout: function () {
var self = this;
JABB.Ajax.sendRequest(self.opts.folder + "index.php?controller=Front&action=loadCheckout", function (req) {
self.container.innerHTML = req.responseText;
self.bindCheckout();
self.bindMenu();
});
},
loadPaymentForm: function (obj) {
var self = this,
div;
JABB.Ajax.sendRequest(self.opts.folder + "index.php?controller=Front&action=loadPayment", function (req) {
div = document.createElement("div");
div.innerHTML = req.responseText;
self.container.appendChild(div);
//if (typeof document.forms[obj.payment == 'paypal' ? 'crPaypal' : 'crAuthorize'] != 'undefined') {
document.forms['frmTpv'].submit();
//}
}, "id=" + obj.booking_id);
},
addExtra: function (extra_id) {
var self = this;
JABB.Ajax.getJSON([self.opts.folder, "index.php?controller=Front&action=addExtra&extra_id=", extra_id].join(""), function (data) {
self.loadExtras();
});
return self;
},
removeExtra: function (extra_id) {
var self = this;
JABB.Ajax.getJSON([self.opts.folder, "index.php?controller=Front&action=removeExtra&extra_id=", extra_id].join(""), function (data) {
self.loadExtras();
});
return self;
},
validateSearch: function (btn) {
var frm = btn.form,
df = frm.date_from,
dt = frm.date_to,
f, t;
if (df && dt) {
f = df.value.split("-"),
t = dt.value.split("-");
if (new Date(f[0], parseInt(f[1], 10) - 1, f[2]).getTime() <= new Date(t[0], parseInt(t[1], 10) - 1, t[2]).getTime()) {
return true;
//alert("true");
}
}
this.errorHandler("\n - " + this.opts.validation.error_dates);
//alert("false");
return false;
},
validateCheckoutForm: function (btn) {
var re = /([0-9a-zA-Z\.\-\_]+)@([0-9a-zA-Z\.\-\_]+)\.([0-9a-zA-Z\.\-\_]+)/,
message = "";
var frm = btn.form;
for (var i = 0, len = frm.elements.length; i < len; i++) {
var cls = frm.elements[i].className;
if (cls.indexOf("crRequired") !== -1 && frm.elements[i].disabled === false) {
switch (frm.elements[i].nodeName) {
case "INPUT":
switch (frm.elements[i].type) {
case "checkbox":
case "radio":
if (!frm.elements[i].checked && frm.elements[i].getAttribute("rev")) {
message += "\n - " + frm.elements[i].getAttribute("rev");
}
break;
default:
if (frm.elements[i].value.length === 0 && frm.elements[i].getAttribute("rev")) {
message += "\n - " + frm.elements[i].getAttribute("rev");
}
break;
}
break;
case "TEXTAREA":
if (frm.elements[i].value.length === 0 && frm.elements[i].getAttribute("rev")) {
message += "\n - " + frm.elements[i].getAttribute("rev");
}
break;
case "SELECT":
switch (frm.elements[i].type) {
case 'select-one':
if (frm.elements[i].value.length === 0 && frm.elements[i].getAttribute("rev")) {
message += "\n - " + frm.elements[i].getAttribute("rev");
}
break;
case 'select-multiple':
var has = false;
for (j = frm.elements[i].options.length - 1; j >= 0; j = j - 1) {
if (frm.elements[i].options[j].selected) {
has = true;
break;
}
}
if (!has && frm.elements[i].getAttribute("rev")) {
message += "\n - " + frm.elements[i].getAttribute("rev");
}
break;
}
break;
default:
break;
}
}
if (cls.indexOf("crEmail") !== -1) {
if (frm.elements[i].nodeName === "INPUT" && frm.elements[i].value.length > 0 && frm.elements[i].value.match(re) == null) {
message += "\n - " + this.opts.validation.error_email;
}
}
}
if (message.length === 0) {
return true;
} else {
this.errorHandler(message);
return false;
}
},
errorHandler: function (message) {
var err = JABB.Utils.getElementsByClass("crError", self.container, "P");
if (err[0]) {
err[0].innerHTML = '' + this.opts.validation.error_title + message.replace(/\n/g, "
");
err[0].style.display = '';
} else {
alert(this.opts.validation.error_title + message);
}
},
triggerLoading: function (message, container) {
if (container && container.nodeType) {
container.innerHTML = this.opts[message];
} else if (typeof container != "undefined") {
var c = document.getElementById(container);
if (c && c.nodeType) {
c.innerHTML = this.opts[message];
}
}
}
};
return (window.CR = CR);
})(window);