var maxtimeoffset = 72; //hours

var showError = false;

function selectItem(li) {
 document.forms['location'].submit();
} 

function date_to_string(date) {

	var day = zeroFill(date.getDate(),2);
	var month = zeroFill(date.getMonth()+1,2);
	var year = zeroFill(date.getFullYear(),2);
	var hour = zeroFill(date.getHours(),2);
	var minutes = zeroFill(date.getMinutes(),2);
	return day + '-' + month + '-' + year + ' ' + hour + ':' + minutes;
	
}


function selections() {
	var date = new Date();
	var expires = "; expires="+date.toUTCString();

	if ($(this).hasClass('timespan')) {
		date.setTime(date.getTime()-($(this).val()*60*60*1000));
		$('input[name=periode_from]').val(date_to_string(date));
		var date = new Date();
		date.setTime(date.getTime()+($(this).val()*60*60*1000));
		$('input[name=periode_to]').val(date_to_string(date));
	}
	
  	var settingsForm = new Array();
	$('form[name=userinput] input, form[name=userinput] select').each(function() {
		var value = '';

			value = $(this).val();
		settingsForm.push ($(this).attr('name')+'='+value);
		//alert($(this).attr('name')+'='+$(this).val());
		if(settingsForm.length > 0) {
			document.cookie='settingsTable='+settingsForm;
		}
	});
	
  	var settingsFormStrooi = new Array();
  	$('form[name=userinput_strooi] select').each(function() {
		var value = '';
			value = $(this).val();
		settingsFormStrooi.push ($(this).attr('name')+'='+value);
		//alert($(this).attr('name')+'='+$(this).val());
		if(settingsFormStrooi.length > 0) {
			document.cookie='settingsStrooi='+settingsFormStrooi;
		}
	});
  	
	$(this).closest("form").submit();
}

jQuery(document).ready(function() {
	$('input.submitShowTable,input.submitRefresh').bind('click', selections )
  	$('select.onsubmit').bind('change', selections )  	
  	$('a.tableUpdate').bind('click', selections)
  	$('a.graphUpdate').bind('click', selections)

  	if ($('select[name=measurement_point]').val() != undefined) {
  		selections();
  	}  	
  	
  if ($('div.alarms').html() != null) {
		$.ajax({
			url: '/index.php?module=gms_waarschuwing&file=alarms',
		 	success: function( data ) {  
		 		$('div.alarms').html(data)
		 	}
		});
  }
  
//    setup autocompleter

	  $('#locationpicker').focus(function() {
	  	this.select();
	  });
	  
	  $('#locationpicker').autocomplete('/index.php?module=gms_actueel&file=ajax_get_plaatsen', {
	  	delay:10,
	  	minChars:2,
	  	cacheLength:1,
	  	matchSubset:0,
		matchContains:0, 
	  	onItemSelect:selectItem,
	  	maxItemsToShow:10,
	  	autoFill:true 
	  });
	  
  
//	  setup columns toggling
	  
	  $("input.checkbox[type=checkbox]").click(function(){
		if ($(this).attr('checked')) {
			$('table.detailtable .' + $(this).val()).show();
		} else {
			$('table.detailtable .' + $(this).val()).hide();
		}
		var checkboxes = new Array();
		$('input.checkbox:checked').each(function() {
			checkboxes.push($(this).val());
		});
		document.cookie = 'active_columns='+checkboxes
	  })
	  
  
  if ($('form input[name="periode_from"]').html() != 'null') {
	  $.datepicker.regional['nl'] = {
	                closeText: 'Sluiten',
	                prevText: '?',
	                nextText: '?',
	                currentText: 'Vandaag',
	                monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
	                'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
	                monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
	                'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
	                dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
	                dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
	                dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
	                weekHeader: 'Wk',
	                dateFormat: 'dd-mm-yy',
	                firstDay: 1,
	                isRTL: false,
	                showMonthAfterYear: false,
	                yearSuffix: '',
					timeText: 'Tijd',
					hourText: 'Uur',
					minuteText: 'Minuten',
					secondText: 'Secondes',
					currentText: 'Nu',
					closeText: 'Kiezen'};
	  $.timepicker.setDefaults($.datepicker.regional['nl']);
	        
	  $('form input[name="periode_from"]').datetimepicker({
	  		hourGrid: 4,
			minuteGrid: 10,
			onSelect: function(dateText, inst) {
				var datum = new Date();
				datum.setDate(dateText.substring(0,2));
				datum.setMonth(dateText.substring(3,5)-1);
				datum.setYear(dateText.substring(6,10));
				datum.setHours(dateText.substring(11,13));
				datum.setMinutes(dateText.substring(14,16));
				datum.setSeconds(0);
	
				var max_date = new Date(datum.getTime() + (maxtimeoffset*60*60*1000))
				var max_day = zeroFill(max_date.getDate(),2);
				var max_month = zeroFill(max_date.getMonth()+1,2);
				var max_year = zeroFill(max_date.getFullYear(),2);
				var max_hour = zeroFill(max_date.getHours(),2);
				var max_minutes = zeroFill(max_date.getMinutes(),2);
				
				var period_to = $('form input[name="periode_to"]')
				
				if (period_to.datetimepicker('getDate') > max_date) {
					period_to.datetimepicker('setDate', max_date)
					showerror("Periode is groter dan " + maxtimeoffset + " uur. Eindperiode ingesteld op " + max_day + '-' + max_month + '-' + max_year + ' ' + max_hour + ':' + max_minutes);
				} else if (period_to.datetimepicker('getDate') < datum) {
					period_to.datetimepicker('setDate', max_date)
					showerror("Eindperiode is kleiner dan beginperiode. Eindperiode ingesteld op " + max_day + '-' + max_month + '-' + max_year + ' ' + max_hour + ':' + max_minutes);
				} else {
					$('div.errorlog').html('');
				}
			
		}
  	});
  	
   $('form input[name="periode_to"]').datetimepicker({
  		hourGrid: 4,
		minuteGrid: 10,
		onSelect: function(dateText, inst) {
			var datum = new Date();
			datum.setDate(dateText.substring(0,2));
			datum.setMonth(dateText.substring(3,5)-1);
			datum.setYear(dateText.substring(6,10));
			datum.setHours(dateText.substring(11,13));
			datum.setMinutes(dateText.substring(14,16));
			datum.setSeconds(0);
			
			var min_date = new Date(datum.getTime() - (maxtimeoffset*60*60*1000))
			var min_day = zeroFill(min_date.getDate(),2);
			var min_month = zeroFill(min_date.getMonth()+1,2);
			var min_year = zeroFill(min_date.getFullYear(),2);
			var min_hour = zeroFill(min_date.getHours(),2);
			var min_minutes = zeroFill(min_date.getMinutes(),2);

			var period_from = $('form input[name="periode_from"]')
			if (period_from.datetimepicker('getDate') < min_date) {
				period_from.datetimepicker('setDate', min_date)
				showerror("Periode is groter dan " + maxtimeoffset + " uur. Beginperiode ingesteld op " + min_day + '-' + min_month + '-' + min_year + ' ' + min_hour + ':' + min_minutes);
			} else if (period_from.datetimepicker('getDate') > datum) {
				period_from.datetimepicker('setDate', min_date)
				showerror("Beginperiode is groter dan eindperiode. Beginperiode ingesteld op " + min_day + '-' + min_month + '-' + min_year + ' ' + min_hour + ':' + min_minutes);
			} else {
				$('div.errorlog').html('');
			}
		}
  	});	
	}
	if ($('div.table_content div').html() != 'null') {
		/*
		$('div.table_content div.next, div.arrow.nex, div.arrowDagen.nex').mouseover(function() {
			$('div.table_content div.next').css('visibility', 'visible');
			$('div.table_content div.anext').children().css('visibility', 'visible')})
		.mouseout(function() {
			$('div.table_content div.anext').css('visibility', 'hidden');
			$('div.table_content div.anext').children().css('visibility', 'hidden');
		});

		$('div.table_content div.previous, div.arrow.prev, div.arrowDagen.prev').mouseover(function() {
			$('div.table_content div.previous').css('visibility', 'visible');
			$('div.table_content div.aprevious').children().css('visibility', 'visible')})
		.mouseout(function() {
			$('div.table_content div.aprevious').css('visibility', 'hidden');
			$('div.table_content div.aprevious').children().css('visibility', 'hidden');
		});
		*/
		$('div.table_content div, div.arrow, div.arrowPreviousDagen.prev, div.arrowDagen').click(function() {
			var multiplier=1;
			if ($(this).hasClass('nex')) {
				multiplier = -1;
			}
			
			var table = $('table.weatherdata');
			var scrolltime = parseInt(table.css('marginLeft'),10)/table.parent().width();
			if (scrolltime == parseInt(scrolltime,10)) {
				table.animate({
					marginLeft: (parseInt(table.css('marginLeft'),10)+(table.parent().width()*multiplier))+'px'
					},500, togglePrevNext);
			}
		});

	togglePrevNext()
	}	
});

function togglePrevNext() {
	if (parseInt($('table.weatherdata').css('marginLeft'),10) >= 0) {
		$('div.table_content div.aprevious, div.arrow.prev, div.arrowDagen.prev').css('visibility', 'hidden')
		$('div.table_content div.aprevious').children().css('visibility', 'hidden')
	} else {
		$('div.table_content div.aprevious, div.arrow.prev, div.arrowDagen.prev').css('visibility', 'visible')
	}
	if (((parseInt($('table.weatherdata').css('marginLeft'),10)*-1)+parseInt($('table.weatherdata').parent().width(),10)) >= (parseInt($('table.weatherdata').width(),10)-20)) {
		$('div.table_content div.anext, div.arrow.nex, div.arrowDagen.nex').css('visibility', 'hidden')
		$('div.table_content div.anext').children().css('visibility', 'hidden')
	} else {
		$('div.table_content div.anext, div.arrow.nex, div.arrowDagen.nex').css('visibility', 'visible')
	}
}

function showerror(message) {
	if (showError == false) {
		jQuery('div.errorlog').html(message);
		showError = true
		setTimeout(function() {showError = false}, 1000)
	}
}

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number;
}

