var CL = CL || {};
CL.Ajax = {
	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";
		req.open(method, url, true);
		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 () {
			if (req.readyState != 4) {
				return;
			}
			if (req.status != 200 && req.status != 304) {
	//			alert('HTTP error ' + req.status);
				return;
			}
			callback(req);
		}
		if (req.readyState == 4) {
			return;
		}
		req.send(postData);
	},	
	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;
	}
};
CL.Utils = {
	calendarCallback: function (r) {
		document.getElementById('property-view-calendars').innerHTML = r.responseText;
	},
	calendarDate: function (get, date) {
		var d = date.split("-");
		var n = new Date(d[0], d[1] - 1, d[2]);
		switch (get) {
			case 'prev':
				var newDate = new Date(new Date(n).setMonth(n.getMonth() - 3));
			break;
			case 'next':
			default:
				var newDate = new Date(new Date(n).setMonth(n.getMonth() + 3));
			break;
		}		
		return newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate();
	},
	submitRequest : function (event, formName, containerId) {
		var postData = [],
			re = /([0-9a-zA-Z\.\-\_]+)@([0-9a-zA-Z\.\-\_]+)\.([0-9a-zA-Z\.\-\_]+)/,
			msg = '',
			name = document.forms[formName].name.value,
                  lastname = document.forms[formName].lastname.value,
			email = document.forms[formName].email.value,
                  verifyemail = document.forms[formName].verifyemail.value,
                  phonecode = document.forms[formName].phonecode.value,
                  country = document.forms[formName].country.value,
                  internet = document.forms[formName].internet.value,
                  vehicle = document.forms[formName].vehicle.value,
			verification = document.forms[formName].verification.value;
			
		if (name == '') {
			msg += '\n  First Name is required';
		}
           
            if (lastname == '') { 			
                  msg += '\n Last Name is required'; 		
            }
		
		if (email == '') {
			msg += '\n E-Mail is required';
		}
		
		if (email != '' && email.match(re) == null) {
			msg += '\n E-Mail is invalid';
		}
		
            if (email != verifyemail) {
                  msg += '\n The "Verify E-mail" address does not match the "E-mail" address';
            }

		if (verification == '') {
			msg += '\n Verification is required';
		}
		
		if (msg != '') {
			alert('Please note that:' + msg);
		} else {
			date = document.forms[formName].date_from.value;
			DateArr = date.split('-');
			postData.push('date_from=' + DateArr[2] +'-'+ DateArr[1] +'-'+ DateArr[0]);
			date = document.forms[formName].date_to.value;
			DateArr = date.split('-');
			postData.push('date_to=' + DateArr[2] +'-'+ DateArr[1] +'-'+ DateArr[0]);
			postData.push('listing_id=' + document.forms[formName].listing_id.value);
			postData.push('name=' + encodeURIComponent(name));
			postData.push('lastname=' + encodeURIComponent(lastname));
                  postData.push('email=' + encodeURIComponent(email)); 			
                  postData.push('phonecode=' + encodeURIComponent(document.forms[formName].phonecode.value));
                  postData.push('phone=' + encodeURIComponent(document.forms[formName].phone.value));
                  postData.push('country=' + encodeURIComponent(document.forms[formName].country.value));
                  postData.push('internet=' + encodeURIComponent(internet));
                  postData.push('vehicle=' + encodeURIComponent(vehicle)); 			
                  postData.push('notes=' + encodeURIComponent(document.forms[formName].notes.value)); 			
                  postData.push('verification=' + encodeURIComponent(document.forms[formName].verification.value));
	
			CL.Ajax.sendRequest(document.forms[formName].booking_url.value, function (result) {
				document.getElementById(containerId).innerHTML = result.responseText
			}, postData.join('&'));
		}
		
		if (event.preventDefault) {
			event.preventDefault();
		}
	}
};
function changeDropdowns(type,date){
	postData = new Array;
	var DateArr = date.split('-');
	CL.Ajax.sendRequest(document.forms['VrlSearchFrm'].change_url.value+'&type='+type+'&day='+DateArr[0]+'&month='+DateArr[1]+'&year='+DateArr[2], function (result) {
				document.getElementById('timedropdowns'+type).innerHTML = result.responseText;
			});
}
function changeDropdownsBookingForm(type,date){
	postData = new Array;
	var DateArr = date.split('-');
	CL.Ajax.sendRequest(document.forms['frmPLBooking'].change_url.value+'&type='+type+'&day='+DateArr[0]+'&month='+DateArr[1]+'&year='+DateArr[2]+'&form_type=2', function (result) {
				document.getElementById('timedropdowns'+type).innerHTML = result.responseText;
			});
}
function changeDate(day,month,type){
	document.getElementById('date_'+type).value = day+'-'+month;
}
