// Initialize this variable to block enters but not in textarea fields
isTextAreaFocused = false;

function setTimezoneOffset(aInput)
{
  aInput.value = new Date().getTimezoneOffset();
}

function setFocusOnField(aInput)
{
  aInput.focus();
}

function SubmitFormIfEnterPressed(aForm, aEvent)
{
  var theKeyPressed;

  if (window.event)
    theKeyPressed = window.event.keyCode;
  else
    if (aEvent)
      theKeyPressed = aEvent.which;
    else
      return true;

  if (theKeyPressed == 13)
  {
    SubmitForm();
    return false;
  } else
    return true;
}

function DontSubmitFormIfEnterPressed(aForm, aEvent)
{
  var theKeyPressed;

  if (window.event)
    theKeyPressed = window.event.keyCode;
  else
    if (aEvent)
      theKeyPressed = aEvent.which;
    else
      return true;

  // if enter is pressed dont submit form.
  // only if textarea on page then enter is allowed and will not submit form.
  if (theKeyPressed == 13)
  {
    /* Check if TextArea has focus */
    if (isTextAreaFocused == false)
	{
	  return false; // block enter
	}
	/**/
  }
  else
    return true;
}

function GetForm(formname) 
{
var form = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == formname){
			form = document.forms[i];
		}
	}
	if (form == null){alert("Form with name " + formname + " not found!")};
	
	return form;
}

function GetInputField(formname, inputname) 
{
var form = GetForm(formname);
var forminput = null;

	for(var j = 0; j < form.length; j++){
		if (form.elements[j].name == inputname){
			forminput = form.elements[j];
		}
	}
	//if (forminput == null){alert("Input with name " + inputname + " not found!")};
	
	// can be null
	return forminput;
}

function GetSelectedRadioValueOfField(aFormName, aRadioFieldName) 
{
  var radio_value = "";

	var form = GetForm(aFormName);

	for(var j = 0; j < form.length; j++){
		if (form.elements[j].name == aRadioFieldName) {
			forminput = form.elements[j];
			
			if (forminput.checked) {
  		  radio_value = forminput.value
			  break;
			}
		}
	}
	
	return radio_value;
}

function ClearReferenceFieldInputValues(formname, inputname, keepguivalue)
{
var form = null;
var forminput = null;
var formguiinput = null;
var old_value;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == formname){
			form = document.forms[i];
		}
	}
	if (form == null){alert("Form with name " + formname + " not found!")};

	for(var j = 0; j < form.length; j++){
		if (form.elements[j].name == inputname){
			forminput = form.elements[j];
		}
		if (form.elements[j].name == inputname + "_GUI"){
			formguiinput = form.elements[j];
		}
	}
	if (forminput == null){alert("Forminput with name " + inputname + " not found!")};

    old_value = forminput.value;
	forminput.value = "";

    if(forminput.type == 'hidden' && forminput.onchange) {
        if(forminput.value != old_value) {
            forminput.onchange()
        }
    }

	if (!keepguivalue && formguiinput != null)
  	  formguiinput.value = "";
}

function ClearComboBox(combobox) 
{
	for (var i = combobox.options.length -1; i >= 0; i--) {
    combobox.options[i].text = "";
    combobox.options[i].value = null;
 	  combobox.remove(i);
  };
};

function OnTimeChange(formname,hourfieldname,minutesfieldname,ismandatory, enable59min)
{
  var form = null;
  var hourfield = null;
  var minutesfield = null;
	var SelectedMinuteIndex = 0;

	//================================================================================
	// Initialize
	//================================================================================

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == formname){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + formname + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == hourfieldname){
    	hourfield = form.elements[i]
		}
	};
	if (hourfield == null){alert("Field with name " + hourfield + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == minutesfieldname){
    	minutesfield = form.elements[i]
		}
	};
	if (minutesfield == null){alert("Field with name " + minutesfield + " not found!")};

  var has_empty_value = false;
	if (hourfield.options.length > 0) {
	  if (hourfield.options[0].value == "") {
	    has_empty_value = true;
	  }
	}

	selected_hour_index = hourfield.selectedIndex;

 	var has_59min_value = false;
	if ((enable59min) && (hourfield.options.length > 0) && (hourfield.options[hourfield.options.length -1].value == 23) && (hourfield.options[selected_hour_index].selected == true) ) {
		has_59min_value = true; // hourfield = 23 (show minutes 59 in dropdown)
	};

	selected_minutes_index = minutesfield.selectedIndex;

	//================================================================================
	// Change minutes combo box.
	//================================================================================
	
	if ((has_empty_value) && (hourfield.options[0].selected == true)) {
	    // Lege waarde geselecteerd

      ClearComboBox(minutesfield);

      minutesfield.options.length = 1;
      minutesfield.options[0].text = "     ";
      minutesfield.options[0].value = "";
      minutesfield.options[0].selected = true;
	}
	else if (hourfield.options[hourfield.options.length -1].selected == true) {
	  // Laatste uur geselecteerd
	
	  if (has_59min_value) {
	 	  ClearComboBox(minutesfield);
		  if (has_empty_value) {
		  	minutesfield.options.length = 6;
		  	minutesfield.options[0].text = "     ";
  			minutesfield.options[0].value = "";
		  	minutesfield.options[1].text = "00";
	  		minutesfield.options[1].value = "00";
		  	minutesfield.options[2].text = "15";
		  	minutesfield.options[2].value = "15";
		  	minutesfield.options[3].text = "30";
			  minutesfield.options[3].value = "30";
		  	minutesfield.options[4].text = "45";
		  	minutesfield.options[4].value = "45";
		  	minutesfield.options[5].text = "59";
		  	minutesfield.options[5].value = "59";
		  }
		  else {
		  	minutesfield.options.length = 5;
		  	minutesfield.options[0].text = "00";
			  minutesfield.options[0].value = "00";
		  	minutesfield.options[1].text = "15";
			  minutesfield.options[1].value = "15";
		  	minutesfield.options[2].text = "30";
			  minutesfield.options[2].value = "30";
		  	minutesfield.options[3].text = "45";
		  	minutesfield.options[3].value = "45";
		  	minutesfield.options[4].text = "59";
		  	minutesfield.options[4].value = "59";
		  }
			
			minutesfield.options[selected_minutes_index].selected = true;
		}
		else{
		  // last hour but not 23. Only show 00 as minutes.
	 	  ClearComboBox(minutesfield);
		  if (has_empty_value) {
				minutesfield.options.length = 2;
		  	minutesfield.options[0].text = "     ";
			  minutesfield.options[0].value = "";
		  	minutesfield.options[1].text = "00";
			  minutesfield.options[1].value = "00";
				minutesfield.options[1].selected = true;
		  }
		  else {
		  	minutesfield.options.length = 1;
		  	minutesfield.options[0].text = "00";
			  minutesfield.options[0].value = "00";
  			minutesfield.options[0].selected = true;
		  }
		}
	}
	else {
 	  // tussen uur geselecteerd

	  if ( ((!has_empty_value) && (minutesfield.options.length == 5)) || 
		     (minutesfield.options.length == 6) || 
		     ((has_empty_value) && (minutesfield.options.length == 2)) || 
		     ((!has_empty_value) && (minutesfield.options.length == 1)) || 
				 ((has_empty_value) && (minutesfield.options.length == 1))
			 ) 
		{
	 	  ClearComboBox(minutesfield);
		  if (has_empty_value) {
		  	minutesfield.options.length = 5;
		  	minutesfield.options[0].text = "     ";
			  minutesfield.options[0].value = "";
		  	minutesfield.options[1].text = "00";
			  minutesfield.options[1].value = "00";
		  	minutesfield.options[2].text = "15";
			  minutesfield.options[2].value = "15";
		  	minutesfield.options[3].text = "30";
			  minutesfield.options[3].value = "30";
		  	minutesfield.options[4].text = "45";
		  	minutesfield.options[4].value = "45";
		  }
		  else {
		  	minutesfield.options.length = 4;
		  	minutesfield.options[0].text = "00";
			  minutesfield.options[0].value = "00";
		  	minutesfield.options[1].text = "15";
			  minutesfield.options[1].value = "15";
		  	minutesfield.options[2].text = "30";
			  minutesfield.options[2].value = "30";
		  	minutesfield.options[3].text = "45";
		  	minutesfield.options[3].value = "45";
		  }
			
			if ((selected_minutes_index == 5) && (has_empty_value)) { // 59 was selected
  			minutesfield.options[1].selected = true;
			}
			else if ((selected_minutes_index == 4) && (!has_empty_value)) { // 59 was selected
  			minutesfield.options[0].selected = true;
			}
			else if ((selected_minutes_index == 0) && (has_empty_value)) { // empty was selected
  			minutesfield.options[1].selected = true;
			}
			else {
  			minutesfield.options[selected_minutes_index].selected = true;
			}
	  }
	}
}


function BrowseForFile(fieldname) {
 var browseObj = document.getElementById("BrowseDialog");
 browseObj.click();

 var txtLocation = document.getElementById(fieldname);
 txtLocation.value = browseObj.value;
}

function getFormValuesAsGetParams(form_id, ignorefields, filterfields)
{
  // this method is used by auto suggest to get the form values als url getparams.
  var str = "";

  var form = document.getElementById(form_id);

  var i = 0;
  var count = form.elements.length;

  var element = null;
  var name = "";
  var value = "";

  for(i=0; i < count; i++)
  {
    element = form.elements[i];

    if ((!element.id) && (element.id != ''))
      name = element.id;
    else
      name = element.name;

    if(!filterfields || (filterfields.length == 0) || filterfields.indexOf(name) != -1) {
      if(!ignorefields || ignorefields.indexOf(name) == -1 )
      {
        value = element.value;
        if (value != "") {
          str = str + "&" + name + "=" + value;
        }
      }
    }
  }

  return str;
}


function SetReferenceField(field_id, syscode, display_value)
{
  var input = document.getElementById(field_id + "_GUI");
  var hiddenSyscode = document.getElementById(field_id);
  var old_value;

  if(display_value != null) {
    input.value = display_value;
  }
  old_value = hiddenSyscode.value;
  hiddenSyscode.value = syscode;

  if(hiddenSyscode.onchange) {
      if(hiddenSyscode.value != old_value) {
          hiddenSyscode.onchange();
      }
  }
}

function ShowError(sGroupCaption, sBlockCaption, sBlockText) 
{
  // get group div
  var divGroup = document.getElementById("DIV_ERRORGROUP");
  if (divGroup) {
    // set group caption
    var divGroupCaption = divGroup.getElementById("DIV_ERRORGROUP_CAPTION");
	if (divGroupCaption) {
	  divGroupCaption.innerHTML = sGroupCaption;
	};

    // set block caption
    var divBlockCaption = divGroup.getElementById("DIV_ERRORBLOCK_CAPTION");
	if (divBlockCaption) {
	  divBlockCaption.innerHTML = sBlockCaption;
	};

    // set error text
    var divBlockText = divGroup.getElementById("DIV_ERRORBLOCK_CONTENTS");
	if (divGrdivBlockTextoupCaption) {
	  divBlockText.innerHTML = sBlockText;
	};
  }
}

function ReplaceElement(aElementID, aHTML)
{
  var element = document.getElementById(aElementID);
	
	element.innerHTML = unescape(aHTML);
}

function GetInnerHTML(aElementID)
{
  var element = document.getElementById(aElementID);
	
	return element.innerHTML;
}

function SetValidationMaxValue(aFormName, aFieldName, aValue)
{

  var form = null;
  var field = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == aFormName){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + aFormName + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == aFieldName){
    	field = form.elements[i]
		}
	};
	if (field == null){alert("Field with name " + aFieldName + " not found!")};
	
	field.MAX = aValue;
}

function ClearValidationMaxValue(aFormName, aFieldName)
{
  var form = null;
  var field = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == aFormName){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + aFormName + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == aFieldName){
    	field = form.elements[i]
		}
	};
	if (field == null){alert("Field with name " + aFieldName + " not found!")};
	
	field.MAX = "";
}

function SetValidationRequiredValue(aFormName, aFieldName, aValue)
{

  var form = null;
  var field = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == aFormName){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + aFormName + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == aFieldName){
    	field = form.elements[i]
		}
	};
	if (field == null){alert("Field with name " + aFieldName + " not found!")};
	
	field.REQUIRED = aValue;
}

function ShowHideQuickInfo(aElementID) 
{
  var element = document.getElementById(aElementID);
	if (element.style.display == "") 
	{
  	element.style.display = "none"; // hide
	}
	else
  	element.style.display = ""; // visible
}

function UpdateEndDateField(aFormName, aStartDateElementFieldName, aEndDateElementFieldName, aDurationFieldName, aDateFormat)
{
  var form = null;
  var startdatefield = null;
  var enddatefield = null;
  var durationfield = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == aFormName){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + aFormName + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == aStartDateElementFieldName){
    	startdatefield = form.elements[i]
		}
		else if (form.elements[i].name == aEndDateElementFieldName){
    	enddatefield = form.elements[i]
		}
		else if (form.elements[i].name == aDurationFieldName){
    	durationfield = form.elements[i]
		}
	};

	if (startdatefield == null){alert("Field with name " + aStartDateElementFieldName + " not found!")};
	if (enddatefield == null){alert("Field with name " + aEndDateElementFieldName + " not found!")};
	if (durationfield == null){alert("Field with name " + aDurationFieldName + " not found!")};
	//if (startdatefield.valid == null){alert("Field with name " + aStartDateElementFieldName + " has no validate method!")};
	
	if (startdatefield.valid()) 
	{
	  var duration = parseInt(durationfield.value); // days
  	var startdate = GetDateFromString(startdatefield.value, aDateFormat);
	  var new_enddate = startdate;
		new_enddate.setDate(new_enddate.getDate() + duration);

	  var str_new_endate = FormatDateToString(new_enddate, aDateFormat);
	  enddatefield.value = str_new_endate;
	}
	
	return true;
}

function UpdateDurationField(aFormName, aStartDateElementFieldName, aEndDateElementFieldName, aDurationFieldName, aDateFormat)
{
  var form = null;
  var startdatefield = null;
  var enddatefield = null;
  var durationfield = null;

	for(var i = 0; i < document.forms.length; i++){
		if (document.forms[i].name == aFormName){
			form = document.forms[i];
		}
	};
	if (form == null){alert("Form with name " + aFormName + " not found!")};

	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == aStartDateElementFieldName){
    	startdatefield = form.elements[i]
		}
		else if (form.elements[i].name == aEndDateElementFieldName){
    	enddatefield = form.elements[i]
		}
		else if (form.elements[i].name == aDurationFieldName){
    	durationfield = form.elements[i]
		}
	};

	if (startdatefield == null){alert("Field with name " + aStartDateElementFieldName + " not found!")};
	if (enddatefield == null){alert("Field with name " + aEndDateElementFieldName + " not found!")};
	if (durationfield == null){alert("Field with name " + aDurationFieldName + " not found!")};
	//if (startdatefield.valid == null){alert("Field with name " + aStartDateElementFieldName + " has no validate method!")};
	//if (enddatefield.valid == null){alert("Field with name " + aEndDateElementFieldName + " has no validate method!")};
	
	if ((startdatefield.valid()) && (enddatefield.valid()))
	{
  	var startdate = GetDateFromString(startdatefield.value, aDateFormat);
  	var enddate = GetDateFromString(enddatefield.value, aDateFormat);
		var duration_in_milliseconds = enddate.getTime() - startdate.getTime();
	  var duration_in_days = Math.floor(duration_in_milliseconds / 1000 / 60 / 60 / 24); // days
		if ( duration_in_days < 0 )
		{ 
		  duration_in_days = 0;
		}
	
	  //alert(duration_in_days);
	  durationfield.value = duration_in_days;
	}

	return true;
}

function GetDateFromString(sDate,sFormat)
{
	// Fetch the date separator from the user's input
	var sSepDate=sDate.charAt(sDate.search(/\D/));
	// Fetch the date separator from the format
	var sSepFormat=sFormat.charAt(sFormat.search(/[^MDY]/i));

	// Fetch the three pieces of the date from the user's input and the format
	var aValueMDY=sDate.split(sSepDate);
	var aFormatMDY=sFormat.split(sSepFormat);

	// Assign day, month, year based on format
	var iMonth,iDay,iYear;
	var sDateOrder = aFormatMDY[0].charAt(0) + aFormatMDY[1].charAt(0) + aFormatMDY[2].charAt(0);

	var iDay   = aValueMDY[sDateOrder.search(/[D]/i)];
	var iMonth = aValueMDY[sDateOrder.search(/[M]/i)] - 1; // jan = 0, dec = 11
	var iYear  = aValueMDY[sDateOrder.search(/[Y]/i)];
	
	return new Date(iYear, iMonth, iDay);
}

function FormatDateToString(aDate, sDateFormat) 
{
	var iDay   = aDate.getDate();
	var iMonth = aDate.getMonth() + 1; // jan = 0, dec = 11
	var iYear  = aDate.getFullYear();
	
	str_date = sDateFormat;
	str_date = str_date.replace(/DD/i, iDay < 10 ? "0"+iDay : iDay);
	str_date = str_date.replace(/D/i, iDay);
	str_date = str_date.replace(/MM/i, iMonth < 10 ? "0"+iMonth : iMonth);
	str_date = str_date.replace(/M/i, iMonth);
	str_date = str_date.replace(/YYYY/i, iYear);
	
	return str_date;
}

function FillDateTimeHiddenField_Time(aFormName, aDateTimeHiddenFieldName, aTimeFieldName) 
{
  var time_field = GetInputField(aFormName, aTimeFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
  datetime_field.value = '';
	
	if ((time_field.value != '')) 
	{
		if (time_field.valid()) 
		{
    	var value = time_field.value;
    	datetime_field.value = value;
    	//alert(value);
		}
	}
}

function FillDateTimeHiddenField_DateTime(aFormName, aDateTimeHiddenFieldName, aDateFieldName, aTimeFieldName) 
{
  var date_field = GetInputField(aFormName, aDateFieldName);
  var time_field = GetInputField(aFormName, aTimeFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
  datetime_field.value = '';
	
	if ((date_field.value != '') && (time_field.value != '')) 
	{
		if (date_field.valid() && time_field.valid()) 
		{
    	var value = date_field.value + ' ' + time_field.value;
     	datetime_field.value = value;
    	//alert(value);
		}
	}
}

function FillDateTimeHiddenField_BoundedTime(aFormName, aDateTimeHiddenFieldName, aHourFieldName, aMinutesFieldName, aTimeSeperator)
{
  var hour_field = GetInputField(aFormName, aHourFieldName);
  var minutes_field = GetInputField(aFormName, aMinutesFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
  datetime_field.value = '';
	
 	var hour_value = "";
  var minutes_value = "";

	if ((hour_field.selectedIndex != -1) && (hour_field.selectedIndex != -1)) 
	{
  	hour_value = hour_field.options[hour_field.selectedIndex].value;
	  minutes_value = minutes_field.options[minutes_field.selectedIndex].value;
	}
	
	if ((hour_value != '') && (minutes_value != '')) 
	{
  	var value = hour_value + aTimeSeperator + minutes_value;
	  datetime_field.value = value;
	}
}

function FillDateTimeHiddenField_DateBoundedTime(aFormName, aDateTimeHiddenFieldName, aDateFieldName, aHourFieldName, aMinutesFieldName, aTimeSeperator)
{
  var date_field = GetInputField(aFormName, aDateFieldName);
  var hour_field = GetInputField(aFormName, aHourFieldName);
  var minutes_field = GetInputField(aFormName, aMinutesFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
  datetime_field.value = '';
	
	var hour_value = hour_field.options[hour_field.selectedIndex].value;
	var minutes_value = minutes_field.options[minutes_field.selectedIndex].value;

	if ((date_field.value != '') && (hour_value != '') && (minutes_value != '')) 
	{
		if (date_field.valid()) 
		{
    	var value = date_field.value + ' ' + hour_value + aTimeSeperator + minutes_value;
	    datetime_field.value = value;
  	  //alert(value);
		}
	}
}

function FillDateTimeHiddenField_AMPM_Time(aFormName, aDateTimeHiddenFieldName, aTimeFieldName, aAMPMFieldName, aFormatTimeString, aTimeSeperator) 
{
  var time_field = GetInputField(aFormName, aTimeFieldName);
  var ampm_value = GetSelectedRadioValueOfField(aFormName, aAMPMFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
	datetime_field.value = "";
	
	if ((time_field.value != '') && (ampm_value != '')) 
	{
		if (time_field.valid()) 
		{
	    // convert to 24h clock	
		  var time_value = GetTimeAs24HourClock(time_field.value, ampm_value, aFormatTimeString, aTimeSeperator);
	
	  	var value = time_value;
		  datetime_field.value = value;
	  	//alert(value);
		}
	}
}

function FillDateTimeHiddenField_AMPM_DateTime(aFormName, aDateTimeHiddenFieldName, aDateFieldName, aTimeFieldName, aAMPMFieldName, aFormatTimeString, aTimeSeperator) 
{
  var date_field = GetInputField(aFormName, aDateFieldName);
  var time_field = GetInputField(aFormName, aTimeFieldName);
  var ampm_value = GetSelectedRadioValueOfField(aFormName, aAMPMFieldName);

	var datetime_field = GetInputField(aFormName, aDateTimeHiddenFieldName);
  datetime_field.value = "";
	
	if ((date_field.value != '') && (time_field.value != '') && (ampm_value != '')) 
	{
		if (date_field.valid() && time_field.valid()) 
		{
	    // convert to 24h clock	
	  	var time_value = GetTimeAs24HourClock(time_field.value, ampm_value, aFormatTimeString, aTimeSeperator);
	
		  var value = date_field.value + ' ' + time_value;
	  	datetime_field.value = value;
		  //alert(value);
		}
	}
}

function GetTimeAs24HourClock(aTime, aAMPM, aFormatTimeString, aTimeSeperator)
{
  var time24 = aTime;
	var format_seperator_index = aFormatTimeString.indexOf(aTimeSeperator);
		
	// if FormatTimeString = hh then prefix
	var hour_format = aFormatTimeString.substr(0, format_seperator_index); // everything before timeseperator
  var prefix_zero = (hour_format == "hh");

	var seperator_index = aTime.indexOf(aTimeSeperator);
	var hour_string = aTime.substr(0, seperator_index); // everything before timeseperator

	//var minutes_string = aTime.substr(seperator_index + 1, (aTime.length -1) - seperator_index); // everything after timeseperator
	var minutes_string = aTime.substr(seperator_index + 1, 2); // everything after timeseperator (minutes always 2)

	var hour = Number(hour_string); 
  var minutes = Number(minutes_string); 

  if (aAMPM == "AM")
	{
		if (hour == 12) 
		{
		  hour = hour - 12;
		}
	}
	else if (aAMPM == "PM")
	{
		if (hour == 0) 
		{
		  hour = 12;
		}
		else if ((hour >= 1) && (hour <= 11))
		{
		  hour = hour + 12;
		}
	}

	// prefix hour (format can be h or hh)
	if ((prefix_zero) && (hour < 10)) 
	{
	  hour_string = "0" + String(hour);
	}
	else
	  hour_string = String(hour);

	// prefix minutes (minutes is always mm format)
	if (minutes < 10)
	{
	  minutes_string = "0" + String(minutes);
	}
	else
	  minutes_string = String(minutes);

	time24 = hour_string + aTimeSeperator + minutes_string;

  return time24;
}


