/*
(C) www.dhtmlgoodies.com, September 2005

Version 1.2, November 8th - 2005 - Added <iframe> background in IE
Version 1.3, November 12th - 2005 - Fixed top bar position in Opera 7
Version 1.4, December 28th - 2005 - Support for Spanish and Portuguese
Version 1.5, January  18th - 2006 - Fixed problem with next-previous buttons after a month has been selected from dropdown
Version 1.6, February 22nd - 2006 - Added variable which holds the path to images.
									Format todays date at the bottom by use of the todayStringFormat variable
									Pick todays date by clicking on todays date at the bottom of the calendar
Version 2.0	 May, 25th - 2006	  - Added support for time(hour and minutes) and changing year and hour when holding mouse over + and - options. (i.e. instead of click)
Version 2.1	 July, 2nd - 2006	  - Added support for more date formats(example: d.m.yyyy, i.e. one letter day and month).

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

*/
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 minDate;
var maxDate;

var startDateInput;
var endDateInput;



// 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 = '/images-default/';	// 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 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;


switch(languageCode){

	case "DE":	/* German */
		//var monthArray = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
		//var monthArrayShort = ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];
		//var dayArray = ['M','D','M','D','F','S','S'];
		//var weekString = 'Woche';
		//var todayString = 'Heute';
		//var closeString = 'schließen';
		break;
	case "NO":	/* Norwegian */
		//var monthArray = ['Januar','Februar','Mars','April','Mai','Juni','Juli','August','September','Oktober','November','Desember'];
		//var monthArrayShort = ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Des'];
		//var dayArray = ['Man','Tir','Ons','Tor','Fre','L&oslash;r','S&oslash;n'];
		//var weekString = 'Uke';
		//var todayString = 'Dagen i dag er';
		//var closeString = 'close';
		break;
	case "NL":	/* Dutch */
		//var monthArray = ['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'];
		//var monthArrayShort = ['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Aug','Sep','Okt','Nov','Dec'];
		//var dayArray = ['Ma','Di','Wo','Do','Vr','Za','Zo'];
		//var weekString = 'Week';
		//var todayString = 'Vandaag';
		//var closeString = 'close';
		break;
	case "ES": /* Spanish */
		//var monthArray = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
		//var monthArrayShort =['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'];
		//var dayArray = ['L','M','M','J','V','S','D'];
		//var weekString = 'Semana';
		//var todayString = 'Hoy es';
		//var closeString = 'cerrar';
		break;
	case "PT":  /* Portuguese Portagal */
		//var monthArray = ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];
		//var monthArrayShort = ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'];
		//var dayArray = ['Seg','Ter','Qua','Qui','Sex','S&aacute;b','Dom'];
		//var weekString = 'Sem.';
		//var todayString = 'Hoje &eacute;';
		//var closeString = 'close';
		break;
	case "FR":      /* French */
		//var monthArray = ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Dicembre'];
		//var monthArrayShort = ['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'];
		//var dayArray = ['L','M','M','J','V','S','D'];
		//var weekString = 'Sem';
		//var todayString = "Aujourd'hui";
		//var closeString = 'fermer';
		break;
	case "DA": /*Danish*/
		//var monthArray = ['januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december'];
		//var monthArrayShort = ['jan','feb','mar','apr','maj','jun','jul','aug','sep','okt','nov','dec'];
		//var dayArray = ['man','tirs','ons','tors','fre','l&oslash;r','s&oslash;n'];
		//var weekString = 'Uge';
		//var todayString = 'I dag er den';
		//var closeString = 'close';
		break;
	case "HU":	/* Hungarian  - Remember to use UTF-8 encoding, i.e. the <meta> tag */
		//var monthArray = ['Január','Február','Március','�?prilis','Május','Június','Július','Augusztus','Szeptember','Október','November','December'];
		//var monthArrayShort = ['Jan','Feb','Márc','�?pr','Máj','Jún','Júl','Aug','Szep','Okt','Nov','Dec'];
		//var dayArray = ['Hé','Ke','Sze','Cs','Pé','Szo','Vas'];
		//var weekString = 'Hét';
		//var todayString = 'Mai nap';
		//var closeString = 'close';
		break;
	case "IT":	/* Italian*/
		//var monthArray = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
		//var monthArrayShort = ['Gen','Feb','Mar','Apr','Mag','Giu','Lugl','Ago','Set','Ott','Nov','Dic'];
		//var dayArray = ['L','M','M','G','V','S','D'];
		//var weekString = 'Settimana';
		//var todayString = 'Oggi &egrave; il';
		//var closeString = 'chiudi';
		break;
	case "JP": /* Japanese */
		//var monthArray = ['XJanuary','February','March','April','May','June','July','August','September','October','November','December'];
		//var monthArrayShort = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		//var dayArray = ['M','T','W','T','F','S','S'];
		//var weekString = 'Week';
		//var todayString = '';
		//var closeString = 'close in japanese';
		break;
	case "TR": /*Turkish*/
	break;
	case "PB": /*Portuguese Brazilian*/
  break;
  case "EL": /*Greek*/
  break;
  case "PL": /*Polish*/
  break;
	default:
		/* English is default language */
		var monthArray = ['January','February','March','April','May','June','July','August','September','October','November','December'];
		var monthArrayShort = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		var dayArray = ['M','T','W','T','F','S','S'];
		var weekString = 'Week';
		var todayString = '';
		var closeString = 'close';
		break;

}
closeString += ' <img src="http://www.barcelona30.com/add-ons/img/common/eclose.gif" border="0">';

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_Hide_Frame(){
	iframeObj2.style.display = 'none';
}
//// fix for EI frame problem on time dropdowns 09/30/2006

var inputYear;
var inputMonth;
var inputDay;
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 selectMonth(){
	document.getElementById('calendar_month_txt').innerHTML = this.innerHTML
	currentMonth = this.id.replace(/[^\d]/g,'');

	//// fix for EI frame problem on time dropdowns 09/30/2006
				EIS_Hide_Frame();
	for(var no=0;no<monthArray.length;no++){
		document.getElementById('monthDiv_'+no).style.color='';
	}
	this.style.color = selectBoxHighlightColor;
	activeSelectBoxMonth = this;
	writeCalendarContent();

}


function switchMonth() {
	var tmpMonth = currentMonth;
	var tmpYear = currentYear;


	if(this.src.indexOf('left')>=0){

		tmpMonth = tmpMonth-1;;
		if(tmpMonth<0){
			tmpMonth = 11;
			tmpYear = tmpYear-1;
		}

	}else{

		tmpMonth = tmpMonth + 1;;
		if(tmpMonth>11){
			tmpMonth = 0;
			tmpYear = tmpYear/1+1;
		}
	}
	var tmpDate = new Date(tmpYear, tmpMonth, minDate.getDate() );
	if( tmpDate >= minDate && tmpDate <= maxDate ){
		currentMonth = tmpMonth;
		currentYear = tmpYear;
	}
	writeCalendarContent();

}

function closeCalendar(){
	calendarDiv.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 topTable, topTBody, topTr, topTd;
	topTable = document.createElement('TABLE');
	topTBody = document.createElement('TBODY');
	topTr = document.createElement('TR');

	// properties
	topTable.id = 'topTable';
	topTable.cellSpacing = 0;
	topTable.cellPadding = 0;


	// create sub elements
	calendarDiv.appendChild(topTable);
	topTable.appendChild(topTBody);
	topTBody.appendChild(topTr);


	// ------------------------------
	//PRELOAD IMAGES
	var left_arrow = new Image();

	left_arrow.src = pathToImages + 'calendar_arrow_left.gif';

	var right_arrow = new Image();
	right_arrow.src = pathToImages + 'calendar_arrow_right.gif';

	// ------------------------------

	// Left arrow
	var leftTd = document.createElement('TD');
	leftTd.style.marginRight = '1px';

	/*
	var img = document.createElement('IMG');
	img.src = pathToImages + 'calendar_arrow_left.gif';
	*/

	left_arrow.onclick = switchMonth;
	leftTd.appendChild(left_arrow);
	topTr.appendChild(leftTd);

	// ------------------------------

	// container element for year / month
	var centerTd = document.createElement('TD');
	centerTd.id = 'monthYearDiv';
	centerTd.className = 'monthYearDiv';
	topTr.appendChild(centerTd);

	// Month selector
	var monthDiv = document.createElement('DIV');
	var span = document.createElement('SPAN');
	span.innerHTML = monthArray[currentMonth];
	span.id = 'calendar_month_txt';
	monthDiv.appendChild(span);
	centerTd.appendChild(monthDiv);

	// Year selector
	var yearDiv = document.createElement('DIV');
	var span = document.createElement('SPAN');
	span.innerHTML = currentYear;
	span.id = 'calendar_year_txt';
	yearDiv.appendChild(span);
	centerTd.appendChild(yearDiv);

	// ------------------------------

	// Right arrow
	var rightDiv = document.createElement('TD');
	rightDiv.style.marginRight = '1px';

	/*
	var img = document.createElement('IMG');
	img.src = pathToImages + 'calendar_arrow_right.gif';
	*/

	right_arrow.onclick = switchMonth;
	rightDiv.appendChild(right_arrow);
	topTr.appendChild(rightDiv);
}

function writeCalendarContent() {
	var calendarContentDivExists = true;
	if(!calendarContentDiv){
		calendarContentDiv = document.createElement('DIV');
		calendarDiv.appendChild(calendarContentDiv);
		calendarContentDivExists = false;
	}
	currentMonth = currentMonth/1;

	var d = new Date(currentYear,currentMonth,1);

	var dayStartOfMonth = d.getDay();
	if(dayStartOfMonth==0)dayStartOfMonth=7;
	dayStartOfMonth--;

	document.getElementById('calendar_year_txt').innerHTML = currentYear;
	document.getElementById('calendar_month_txt').innerHTML = monthArray[currentMonth];

	var existingTable = calendarContentDiv.getElementsByTagName('TABLE');
	if(existingTable.length>0){
		calendarContentDiv.removeChild(existingTable[0]);
	}

	var calTable = document.createElement('TABLE');
	calTable.id = "calendarTable"
	calTable.cellSpacing = '0';
	calendarContentDiv.appendChild(calTable);
	var calTBody = document.createElement('TBODY');
	calTable.appendChild(calTBody);
	var row = calTBody.insertRow(-1);

	for(var no=0;no<dayArray.length;no++){
		var cell = row.insertCell(-1);
		cell.innerHTML = dayArray[no];
		cell.style.fontWeight = "normal";
	}

	var row = calTBody.insertRow(-1);

	for(var no=0;no<dayStartOfMonth;no++){
		var cell = row.insertCell(-1);
		cell.innerHTML = '&nbsp;';
	}

	var colCounter = dayStartOfMonth;
	var daysInMonth = daysInMonthArray[currentMonth];
	if(daysInMonth==28){
		if(isLeapYear(currentYear))daysInMonth=29;
	}

	var dateArr;
	dateArr = startDateInput.value.split("/");
	startDate = new Date( dateArr[2], dateArr[1] - 1, dateArr[0] );

	dateArr = endDateInput.value.split("/");
	endDate = new Date( dateArr[2], dateArr[1] - 1, dateArr[0] );

	for(var no=1;no<=daysInMonth;no++){
		if(colCounter>0 && colCounter%7==0){
			var row = calTBody.insertRow(-1);
		}

		var cell = row.insertCell(-1);
		cell.innerHTML = no;

		d.setDate(no);
		if( d > minDate ){
			if( checkDateEqual(d, startDate) ){
				cell.className = 'arrivalDay';
			}
			else if ( d > startDate && d < endDate ){
				cell.className = 'duringStayningDay';
			}
			else if (  checkDateEqual(d, endDate) ){
				cell.className = 'departureDay';
			}
			cell.onclick = pickDate;
		}
		else{
			cell.className = 'notSelectableDay';
		}
		colCounter++;
	}

}

function checkDateEqual(date1, date2){
	var up, down;
	up = new Date( date2.getFullYear(), date2.getMonth(), date2.getDate() + 1);
	down = new Date( date2.getFullYear(), date2.getMonth(), date2.getDate() - 1);
	if( date1 <  up && date1 > down  ){
		return true;
	}
	return false;
}



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;

	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;

	// check if startdate < enddate
	var dStart = getDateObject(startDateInput.value);
	var dEnd = getDateObject(endDateInput.value);


	if( dStart > dEnd || checkDateEqual(dStart,dEnd) == true  ){
		if( returnDateTo == startDateInput ){
			setInputDate(dStart.getFullYear(), dStart.getMonth(), dStart.getDate() + 1, endDateInput);
		}
		else{
			setInputDate(dEnd.getFullYear(), dEnd.getMonth(), dEnd.getDate() - 1, startDateInput);
		}
	}
	closeCalendar();
}


// dateString should have the format dd/mm/yyyy
function getDateObject(dateString){
	num = parseInt( dateString.replace("/","")  );
	if( isNaN(num) == false ){
		var dateArr = dateString.split("/") ;
		return new Date(dateArr[2], dateArr[1]-1 ,dateArr[0]);
	}
	else{
		return new Date();
	}
}

// note that the date must be given in js style, 0..11 (not to 12)
function setInputDate(year, month, day, inp){
	var d = new Date(year,month,day);
	month = d.getMonth() + 1;
	day = d.getDate();
	if( month<10 ) month = '0' + month;
	if(day/1<10)day = '0' + day;
	inp.value = day + "/" + month + "/" + d.getFullYear();
}



function writeBottomBar() {
	var bottomBar = document.createElement('DIV');
	bottomBar.id = 'bottomBar';
	bottomBar.innerHTML = closeString;
	bottomBar.onclick = closeCalendar;
	calendarDiv.appendChild(bottomBar);
}


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.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 = 'blank2.html';
    //iframeObj.src = 'blank2.html';
		document.body.appendChild(iframeObj);
	}

	calendarDiv = document.createElement('DIV');
	calendarDiv.id = 'calendarDiv';
	calendarDiv.style.zIndex = 1000;

	document.body.appendChild(calendarDiv);
	writeTopBar();
	writeBottomBar();

	startDateInput = document.getElementById('ARRIVAL');
	endDateInput = document.getElementById('DEPARTURE');


	if(!currentYear){
		var d = new Date();
		currentMonth = d.getMonth();
		currentYear = d.getFullYear();
	}
	writeCalendarContent();
}

function calendarSortItems(a,b) {
	return a/1 - b/1;
}


function displayCalendar(inputField,format,buttonObj,displayTime,timeInput) {
	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 = d.getDate();
	}

	inputYear = currentYear;
	inputMonth = currentMonth;
	inputDay = tmpDay/1;


	if(!calendarDiv){
		initCalendar();
	}else{
		if(calendarDiv.style.display=='block'){
			closeCalendar();
			return false;
		}
		if(!currentYear){
			var d = new Date();
			currentMonth = d.getMonth();
			currentYear = d.getFullYear();
		}
		writeCalendarContent();
	}

	returnFormat = format;
	returnDateTo = inputField;
	positionCalendar(buttonObj);
	calendarDiv.style.visibility = 'visible';
	calendarDiv.style.display = 'block';
	if(iframeObj){
		iframeObj.style.display = '';
		iframeObj.style.height = '0px';
		iframeObj.style.width = '0px';
		iframeObj2.style.display = '';
		iframeObj2.style.height = '0px';
		iframeObj2.style.width = '0px';
/**/
		iframeObj.style.display = '';
		iframeObj.style.height = '210px';
		iframeObj.style.width = '170px';
		iframeObj2.style.display = '';
		iframeObj2.style.height = '210px';
		iframeObj2.style.width = '170px';

/**/
	}

}

// ---------------------------------------------------------------------------
// FORM VALIDATION + SUBMISSION
// ---------------------------------------------------------------------------


function validateForm( myForm )
{
  var re = /^(\d+)\/(\d+)\/(\d+)$/;
  var dt_arr, dt_dep;
  var dt_today = new Date();
  // remove minutes / seconds
  dt_today = new Date(dt_today.getFullYear(), dt_today.getMonth(), dt_today.getDate() );
  var dt_nextyr = new Date(dt_today - 0 + (1000*60*60*24*365));

  //var myForm = document.form;

	if (!myForm.ARRIVAL.value.match(/^\d+\/\d+\/\d+$/)) {
    alert(booking_err1);
    myForm.ARRIVAL.focus(); return false;
  }
	if (!myForm.DEPARTURE.value.match(/^\d+\/\d+\/\d+$/)) {
    alert(booking_err2);
    myForm.DEPARTURE.focus(); return false;
  }

  match = re.exec(myForm.ARRIVAL.value);
  dt_arr = new Date(match[3],match[2]-1,match[1]);
  match = re.exec(myForm.DEPARTURE.value);
  dt_dep = new Date(match[3],match[2]-1,match[1]);

  num_nights = (dt_dep-dt_arr)/1000/60/60/24;

  if( dt_arr.toString() == dt_today.toString() ){
    if( confirm(info_same_day) == false ) {
      return false;
    }
  }
  if (dt_arr < dt_today) {
    alert(booking_err3);
    myForm.ARRIVAL.focus(); return false;
  }
  if (dt_arr > dt_nextyr) {
    alert(booking_err4);
    myForm.ARRIVAL.focus(); return false;
  }
  if (dt_dep <= dt_arr) {
    alert(booking_err5);
    myForm.DEPARTURE.focus(); return false;
  }
  if (num_nights > 31) {
    alert(booking_err8);
    myForm.DEPARTURE.focus(); return false;
  }


  myForm.action = getActionUrl();
  return true;

}

var submitted = false;
var letgo = false;
function submitForm( myForm ) {
  if (validateForm( myForm )) {

    if (!submitted) {
      myForm.action = getActionUrl();
      letgo = true;
      //myForm.btnsubmit.disabled = true;
      myForm.submit();
      submitted = true;
    }
  }
  letgo = false;
}

function submitFormTarget( myForm, target ) {
  if (validateForm( myForm )) {
    if (!submitted) {
      myForm.action = getActionUrl();
      letgo = true;
      myForm.submit();
      submitted = true;
    }
  }
  letgo = false;
}

function submitFormLang( myForm ) {
  if (validateForm( myForm )) {

    if (!submitted) {
      myForm.action = getActionUrl();
      letgo = true;
      myForm.submit();
      submitted = true;
    }
  }
  letgo = false;
}

function getActionUrl(){
  url = "/eg_offer_create.php";
  if( languageCode != 'EN' ){
    url = '/' + languageCode.toLowerCase() + url;
  }
  return url;
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function initCalendarV2(arrivalField, departureField, siteRoot) {

	if(MSIE){
		iframeObj = document.createElement('IFRAME');
		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 = 'blank2.html';
    //iframeObj.src = 'blank2.html';
		document.body.appendChild(iframeObj);
	}

	calendarDiv = document.createElement('DIV');
	calendarDiv.id = 'calendarDiv';
	calendarDiv.style.zIndex = 1000;

	document.body.appendChild(calendarDiv);
	writeTopBarV2(siteRoot);
	writeBottomBar();

	startDateInput = document.getElementById(arrivalField);
	endDateInput = document.getElementById(departureField);


	if(!currentYear){
		var d = new Date();
		currentMonth = d.getMonth();
		currentYear = d.getFullYear();
	}
	writeCalendarContent();
}

function displayCalendarV2(inputField,arrivalField,departureField,siteRoot,format,buttonObj,displayTime,timeInput) {
	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 = d.getDate();
	}

	inputYear = currentYear;
	inputMonth = currentMonth;
	inputDay = tmpDay/1;


	if(!calendarDiv){
		initCalendarV2(arrivalField,departureField, siteRoot);
	}else{
		if(calendarDiv.style.display=='block'){
			closeCalendar();
			return false;
		}
		if(!currentYear){
			var d = new Date();
			currentMonth = d.getMonth();
			currentYear = d.getFullYear();
		}
		writeCalendarContent();
	}

	returnFormat = format;
	returnDateTo = inputField;
	positionCalendar(buttonObj);
	calendarDiv.style.visibility = 'visible';
	calendarDiv.style.display = 'block';
	if(iframeObj){
		iframeObj.style.display = '';
		iframeObj.style.height = '210px';
		iframeObj.style.width = '170px';
		iframeObj2.style.display = '';
		iframeObj2.style.height = '210px';
		iframeObj2.style.width = '170px';
	}

}

function writeTopBarV2(siteRoot) {

	var topTable, topTBody, topTr, topTd;
	topTable = document.createElement('TABLE');
	topTBody = document.createElement('TBODY');
	topTr = document.createElement('TR');

	// properties
	topTable.id = 'topTable';
	topTable.cellSpacing = 0;
	topTable.cellPadding = 0;


	// create sub elements
	calendarDiv.appendChild(topTable);
	topTable.appendChild(topTBody);
	topTBody.appendChild(topTr);


	// ------------------------------
	//PRELOAD IMAGES
	var pathToImages = siteRoot +'images-default/';	// Relative to your HTML file
	var left_arrow = new Image();
	left_arrow.src = pathToImages + 'calendar_arrow_left.gif';

	var right_arrow = new Image();
	right_arrow.src = pathToImages + 'calendar_arrow_right.gif';

	// ------------------------------

	// Left arrow
	var leftTd = document.createElement('TD');
	leftTd.style.marginRight = '1px';

	/*
	var img = document.createElement('IMG');
	img.src = pathToImages + 'calendar_arrow_left.gif';
	*/

	left_arrow.onclick = switchMonth;
	leftTd.appendChild(left_arrow);
	topTr.appendChild(leftTd);

	// ------------------------------

	// container element for year / month
	var centerTd = document.createElement('TD');
	centerTd.id = 'monthYearDiv';
	centerTd.className = 'monthYearDiv';
	topTr.appendChild(centerTd);

	// Month selector
	var monthDiv = document.createElement('DIV');
	var span = document.createElement('SPAN');
	span.innerHTML = monthArray[currentMonth];
	span.id = 'calendar_month_txt';
	monthDiv.appendChild(span);
	centerTd.appendChild(monthDiv);

	// Year selector
	var yearDiv = document.createElement('DIV');
	var span = document.createElement('SPAN');
	span.innerHTML = currentYear;
	span.id = 'calendar_year_txt';
	yearDiv.appendChild(span);
	centerTd.appendChild(yearDiv);

	// ------------------------------

	// Right arrow
	var rightDiv = document.createElement('TD');
	rightDiv.style.marginRight = '1px';

	/*
	var img = document.createElement('IMG');
	img.src = pathToImages + 'calendar_arrow_right.gif';
	*/

	right_arrow.onclick = switchMonth;
	rightDiv.appendChild(right_arrow);
	topTr.appendChild(rightDiv);
}