(function($) {

$.Form = {

	table: 'roomrate',
	idfield: 'roomrate_id',
	sortby: 'roomrate_roomgrade_id',
	sortdir: 'asc',
	
	
	//public methods
	
/* --------------------------------------------------------------------------------------------------------------------------------- */

	_init: function(){
	
	$.Form._initCheckboxes();
	$.Form._initCheckboxGroups();
	$form._initSingleDatePicker();
	
	
	},
	
	// private methods


_initCardFields: function(){
	
	var today= new Date();
	var thisday= today.getDate();
	var thismonth= today.getMonth()+1;
	var thisyear= today.getFullYear();






	//populate month fields
	for (var i=1; i <= 12; i++){
	
	var x= String(i+1);

	$('select[name=card_start_month]').append(
		$('<option></option>').val(i).html(i)
		);
	$('select[name=card_expire_month]').append(
		$('<option></option>').val(i).html(i)
		);
	}
	
	

	var range = 20;
	var startyear = thisyear - range;
	var endyear = thisyear + range;

	//card start years
	for (var i=1, j=startyear; j<=thisyear; i++, j++) {
	var y= String(j);
	$('select[name=card_start_year]').append(
		$('<option></option>').val(y).html(y)
		);
	}

	// card expiry years
	for (var i=0, j=thisyear; j<=endyear; i++, j++) {
	var y= String(j);
	$('select[name=card_expire_year]').append(
		$('<option></option>').val(y).html(y)
		);
	}

	},
	
/* --------------------------------------------------------------------------------------------------------------------------------- */
	
_initCheckboxes: function(){
	
	var allChecks = $(".check");
	
	allChecks.each(function(){
			
			$(this).click(function(){
										
		var childElm = $(this).attr("title");
		//console.log(childElm);
	
		if($(this).is(':checked')){
		$("input[name="+childElm+"]").val(1);
		} else {
		$("input[name="+childElm+"]").val(0);	
		}
	
							})
			})
		
	},
	
/* --------------------------------------------------------------------------------------------------------------------------------- */

_initCheckboxGroups: function(){
	
	var allCheckGrps = $(".check_grp");
	allCheckGrps.each(function(){
			var valueElm = $(this).attr("title");
			var grp = $(this);
			var checks = $("input",this);
			checks.each(function(){
			$(this).click(function(){
						var strVal="";
					$('input',grp).each(function(){		   
				//$("input[name="+valueElm+"]",grp).val(		
					if($(this).is(':checked')){
						if(strVal!="") strVal+=',';
						strVal+= $(this).val();
					}
						})
					console.log(strVal);
				$("input[name="+valueElm+"]").val(strVal);
					   
								   })
								 
								 })
							   
							   
							   })
	
	
},

/* --------------------------------------------------------------------------------------------------------------------------------- */

_initSingleDatePicker: function(){
	
	var now = new Date();
	
	// - init single date pickers
	
	var single_datepickers = $("span[name=single]");
	single_datepickers.each(function(){
	var update_fld = $(this).prev();
	var listObj = $(this).parents('tr.listing');
	var picker = $(this)
	$(this).DatePicker({
	flat: false, // - is calendar always on screen
	format:'d/m/Y',
	date: update_fld.val(), // - the highlighted dates to display
	current: now,
	starts: 1,
	position: 't',
	onChange: function(formated, dates){
		update_fld.val(formated);
		$(this).hide();
		update_fld.removeClass('active');
		},
	onHide: function(){
		update_fld.removeClass('active');
	},
	onShow: function(){
		update_fld.addClass('active');
	}
		});
	
	update_fld.click(function(){
	if($(this).hasClass('active')){
picker.DatePickerHide()
$(this).removeClass('active');
		} else {
	picker.DatePickerShow()
	}
	});	
	});

},


/* --------------------------------------------------------------------------------------------------------------------------------- */

/* - eyecon.ro datepicker */

_initMultiDatePicker: function(elm,selected_dates){
	
	if(selected_dates.length > 2){
	selected_dates = selected_dates.split(',');
	} else{
		var selected_dates = Array();
	}
	
	var update_fld = $('input[name='+elm+']');
	var now = new Date();
	var picker = update_fld.next('span[name=multiple]');
	
	
	$(picker).DatePicker({
	flat: false, // - is calendar always on screen
	format:'d/m/Y', // format of year
	date: selected_dates, // - the highlighted dates to display
	current: now, //the current date
	starts: 1,
	position: 't',
	mode: 'multiple',
	onBeforeShow: function(){
		update_fld.DatePickerSetDate(now, true); //the date to highlight on show
	},
	onChange: function(formated, dates){
		update_fld.val(formated);
	},
	onHide: function(){
		update_fld.removeClass('active');
	}

});
	
update_fld.click(function(){
	if($(this).hasClass('active')){
	$(this).removeClass('active');
	picker.DatePickerHide();
		} else {
	$(this).addClass('active')
	picker.DatePickerShow()
	}
	});	




}

/* --------------------------------------------------------------------------------------------------------------------------------- */
}
jForm = function(){
$.Form._init();
};



})(jQuery);