var monthsNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
function CheckUserForm(formObj) {
	var str = '', item_id = -1;

	var reqs = [];
	str += 'reqs\n';
	for ( var i = 0; i < formObj.elements.length; i++) {
		if (typeof (formObj.elements[i].name) == 'undefined') {
			continue;
		}
		if (formObj.elements[i].name.indexOf('req') == 0) {
			item_id = formObj.elements[i].name.replace(/^req/i, '').replace(
					'[', '').replace(']', '');
			if ('' == item_id) {
				continue;
			}
			item_id = parseInt(item_id, 10);
			if (isNaN(item_id) || item_id < 1) {
				continue;
			}
			reqs[item_id] = (formObj.elements[i].value == 'true');
			str += 'reqs[' + item_id + ']=' + reqs[item_id] + ', ';
		}
	}

	str += '\n';

	var wrong = [];
	var radios = [];
	var chkboxes = [];

	for ( var i = 0; i < formObj.elements.length; i++) {
		if (typeof (formObj.elements[i].name) == 'undefined'
				|| formObj.elements[i].name.indexOf('req') == 0) {
			continue;
		}
		item_id = formObj.elements[i].name.replace(/^([^0-9]+)/gi, '');
		if ('' == item_id) {
			continue;
		}
		item_id = parseInt(item_id, 10);
		if (isNaN(item_id) || item_id < 1) {
			continue;
		}
		if (typeof (reqs[item_id]) == 'undefined' || reqs[item_id] == false) {
			continue;
		}
		if (typeof (formObj.elements[i].type) == 'undefined') {
			continue;
		}
		if (formObj.elements[i].type == 'hidden') {
			continue;
		}

		formObj.elements[i].className = 'rightelem';

		if (formObj.elements[i].type == 'text'
				&& formObj.elements[i].value.replace(/([\s]*)/gi, '') == '') {
			wrong.push(formObj.elements[i].name);
		}
		if (formObj.elements[i].type == 'textarea'
				&& formObj.elements[i].value.replace(/([\s]*)/gi, '') == '') {
			wrong.push(formObj.elements[i].name);
		}
		if (formObj.elements[i].type == 'radio'
				|| formObj.elements[i].type == 'checkbox') {
			wrong.push(formObj.elements[i].name);
			if (formObj.elements[i].type == 'radio') {
				if (typeof (radios[item_id]) == 'undefined') {
					radios[item_id] = false;
				}
				if (radios[item_id] == true) {
					continue;
				}
				radios[item_id] = formObj.elements[i].checked;
			} else {
				if (typeof (chkboxes[item_id]) == 'undefined') {
					chkboxes[item_id] = false;
				}
				if (chkboxes[item_id] == true) {
					continue;
				}
				chkboxes[item_id] = formObj.elements[i].checked;
			}
		}
		if (formObj.elements[i].type == 'select-one'
				&& formObj.elements[i].selectedIndex == -1) {
			wrong.push(formObj.elements[i].name);
		}
	}

	var wrongelems = 0;
	var wrongelems_titles = [];
	for ( var i = 0; i < wrong.length; i++) {
		item_id = wrong[i].replace(/^([^0-9]+)/gi, '');
		item_id = parseInt(item_id, 10);		
		if (isNaN(item_id)) {
			alert(item_id);
		}
		if (typeof (radios[item_id]) != 'undefined' && radios[item_id] === true) {
			continue;
		}
		if (typeof (chkboxes[item_id]) != 'undefined'
				&& chkboxes[item_id] === true) {
			continue;
		}
		ttl = document.getElementById('item_'+item_id+'_title').innerHTML;
		if (!in_array(ttl, wrongelems_titles)) {
			wrongelems_titles.push(ttl);
		}
		wrongelems++;
		if (wrong[i].indexOf('checkbox') == 0) {
			for ( var j = 0; j < formObj.elements.length; j++) {
				if (formObj.elements[j].name == (wrong[i] + '[]')) {
					formObj.elements[j].className = "wrongelem";
				}
			}
		} else {
			eval('formObj.' + wrong[i] + '.className ="wrongelem";');
		}
	}	
	if (wrongelems > 0) {
		if (wrongelems_titles.length > 0) {
			var err_text = '';
			var reg = new RegExp ("(<([^>]+)>)", "ig");
			for (k = 0; k < wrongelems_titles.length; k++) {
				if (wrongelems_titles[k].length) {
					err_text += ' - '+wrongelems_titles[k].replace(reg, "")+"\n";
				}
			}
			if (err_text.length > 0) {
				alert("Please fill in the following fields:\n\n"+err_text);	
			} else {
				alert("Please, fill all the required fields");	
			}
			
		}
		return false;
	}
	//alert("Thank you for filling the form");
	return true;
}

	function addMonths() {
		/*
		iter++;
		date = $("#datepicker").datepicker('getDate');
		$("#datepicker").datepicker('setDate',  (date.getMonth()+2)+'/1/'+date.getFullYear());
		$("#datepicker2").datepicker('setDate',  '+'+(iter+1)+'m');+*/
		incCalendar('datepicker');
		incCalendar('datepicker2');
		updateTitles();
		contentLoad();
	}

	function subMonths() {
		date = $("#datepicker").datepicker('getDate');
		if(date > now) {
			/*
			iter--;				
			$("#datepicker").datepicker('setDate', '+'+iter+'m');
			$("#datepicker2").datepicker('setDate', '+'+(iter+1)+'m');+*/
			decCalendar('datepicker');
			decCalendar('datepicker2');
			updateTitles();
			contentLoad();
		}	
	}

	function updateTitles() {
		date1 = $("#datepicker").datepicker('getDate');
		date2 = $("#datepicker2").datepicker('getDate');
		$("#datepicker_title").html(monthsNames[date1.getMonth()]+' '+date1.getFullYear());
		$("#datepicker2_title").html(monthsNames[date2.getMonth()]+' '+date2.getFullYear());
	}

	function contentLoad() {
		date1 = $("#datepicker").datepicker('getDate');
	    $.post("/overview/gannons-calendar", {month: (date1.getMonth()+1), year:date1.getFullYear()}, function(data){
	        $('div#calendar_table_big').html(data);
	    }, "html");
	}

	function incCalendar(name) {
		date = $("#"+name).datepicker('getDate');
		if(date.getMonth() == 11) {
			nm = 1;
			ny = date.getFullYear()+1;
		} else {
			nm = (date.getMonth()+2);
			ny = date.getFullYear();			
		}
		$("#"+name).datepicker('setDate',  nm+'/1/'+ny);
	}

	function decCalendar(name) {
		date = $("#"+name).datepicker('getDate');
		if(date.getMonth() == 0) {
			nm = 12;
			ny = date.getFullYear()-1;
		} else {
			nm = date.getMonth();
			ny = date.getFullYear();			
		}
		$("#"+name).datepicker('setDate',  nm+'/1/'+ny);
	}

	function scrollToEvent(dateText, inst) {
		date = new Date(dateText);
		findes = []; 
		$("table.calendar_table_big tr td p[rel*=',"+date.getDate()+",']").each( function(){
			findes.push($(this));	
		});
		if (findes[0]) {
			$.scrollTo('#'+findes[0].attr('id'), 750);
		}
	}

	function in_array (needle, haystack) {
		var key = ''; 
		for (key in haystack) {
			if (haystack[key] == needle) {
				return true;            
			}
	    }
		return false;
	}

	function sertData() {
		var gift_for = $('#form_gift_for').val();
		var gift_from = $('#form_gift_from').val();
		var gift_amount = $('#form_item_amount').val();
		if (gift_for.length == 0 || gift_from.length == 0) {
			alert('Please fill "GIFT FOR" and "GIFT FROM" fields');
			return false;
		}
		$.post(
			"/make-a-reservation/certificates/add-data", 
			{gift_from:gift_from, gift_for:gift_for, gift_amount:gift_amount}, 
			function(data) {
				if (data.success && data.num) {
					$('#form_item_number').val(data.num);
					$('#cert_checkout_form').submit();
				}
	    	},
	    	"json"
		);
	}

	function certChangeAmount(amount) {
		$('#current_amount').html(amount);
		$('#form_item_amount').val(amount);
		$('#form_item_name').val('Gift Certificate $'+amount);
	}
