function visible(elementid)
{
  document.getElementById(elementid).className = "visible";
}

function hidden(elementid)
{
  document.getElementById(elementid).className = "hidden";
}

 // init
$(document).ready(function() {
	deleteItemHandler();
	changeStateHandler();
	setStateFields($("select[name='status'] option:selected").text());
	changeCompanyHandler();
	getCompanyInfos($("select[name='unternehmen']").val());
  changeVerkehrsmittelHandler();
	saveTimesheetHandler();
	timesheetNrFocus();
});


function timesheetNrFocus() {
  $("input[name='searchNumber']").focus();
}

function deleteItemHandler() {
   $(".deleteItem").click(function(){
		if(confirm("Wollen Sie diesen Eintrag wirklich entfernen"))
			return true;
		else
			return false;
	});
} //delete confirm


function toDate(dStr,format) {
  var now = new Date();
  if (format == "h:m") {
  	dStr = dStr.replace(",", ":");
  	if(dStr.indexOf(":") == -1)
  	 dStr += ":";
    now.setHours(str_pad(dStr.substr(0,dStr.indexOf(":")), 2, '0', 'STR_PAD_LEFT'));
    now.setMinutes(str_pad(dStr.substr(dStr.indexOf(":")+1), 2, '0', 'STR_PAD_RIGHT'));
    now.setSeconds(0);
    return now;
  }else
    return "Invalid Format";
}

function saveTimesheetHandler() {
  $("input[name='save']").click(function(){
  	$von = toDate($("input[name='von']").val(),"h:m");
  	$bis = toDate($("input[name='bis']").val(),"h:m");
  	$pause = toDate($("input[name='pause']").val(),"h:m");
  	$vonHoursInMin = (parseInt($von.getHours())*60) + parseInt($von.getMinutes());
  	$bisHoursInMin = (parseInt($bis.getHours())*60) + parseInt($bis.getMinutes());
    $pauseInMin = (parseInt($pause.getHours())*60) + parseInt($pause.getMinutes());

      // 360 <=> 6 Stunden
    $arbeitszeitInMin = ($bisHoursInMin - $vonHoursInMin);
  	if(($arbeitszeitInMin >= 360) && ($arbeitszeitInMin < 540) && ($pauseInMin < 30)) {
	    if(confirm("Bei einer Gesamtarbeitszeit von mehr als 6 Stunden sollte mindst. eine halbe Stunde Pause eingetragen werden. Wollen Sie wirklich ohne Pause speichern?"))
	      return true;
	    else
	      return false;
    }else if(($arbeitszeitInMin >= 540) && ($arbeitszeitInMin < 600) && ($pauseInMin < 45)) {
      if(confirm("Bei einer Gesamtarbeitszeit von mehr als 9 Stunden sollte mindst. eine dreiviertel Stunde Pause eingetragen werden. Wollen Sie wirklich ohne Pause speichern?"))
        return true;
      else
        return false;
    }else if(($arbeitszeitInMin > 600)  && ($pauseInMin < 45)) {
      if(confirm(unescape("Bei einer Gesamtarbeitszeit von mehr als 9 Stunden sollte mindst. eine dreiviertel Stunde Pause eingetragen werden.\n" +
      		       "Zus%E4tzlich weisen Sie darauf hin, dass Sie nach dem Arbeitszeitgesetz nicht mehr als 10 Std. am Tag arbeiten sollten. Wollen Sie den Datensatz trotzdem abspeichern?")))
        return true;
      else
        return false;
    }else if($arbeitszeitInMin > 600) {
      if(confirm("Wir weisen Sie darauf hin, dass Sie nach dem Arbeitszeitgesetz nicht mehr als 10 Std. am Tag arbeiten sollten. Wollen Sie den Datensatz trotzdem abspeichern?"))
        return true;
      else
        return false;
    }
  });
}

function changeVerkehrsmittelHandler() {
 	$("select[name='verkehrsmittel']").change(function(){
 		$verkehrsmittel = $(":selected", this).text();
 		if(($verkehrsmittel.indexOf("zu Fu") != -1) ||
 		  ($verkehrsmittel.indexOf("ffentliche") != -1) ||
 		  ($verkehrsmittel.indexOf("Fahrrad") != -1)
 		  ) {
 			$("input[name='kennzeichen']").val('');
 		}
 	});
}

function changeStateHandler() {
  $("select[name='status']").change(function(){
    setStateFields($(":selected", this).text());
  });
}

function setStateFields($status) {
  if($status.length > 0 && $status != 'Im Einsatz') {
    $(".hourfield").each(function(){
      $(this).attr("disabled", true);
      $(this).css("backgroundColor", "#CCC");
    });
  }else {
    $(".hourfield").each(function(){
      $(this).attr("disabled", false);
      $(this).css("backgroundColor", "#FFF8E8");
    });
  }
}

 function changeCompanyHandler() {
 	$("select[name='unternehmen']").change(function(){
 		getCompanyInfos($(this).val());
 	});
 }

 function getCompanyInfos(companyId) {
 	if(typeof companyId != 'undefined') {
 		htid = $(document).getUrlParam("htid");
 		mid = $(document).getUrlParam("mid");
 		trid = $(document).getUrlParam("trid");
	   $.ajax({
	    method: "get",
	    url: "ajax/ajax.php",
	    data: "func=getCompanyInfos" + "&params=" + companyId+"_"+htid+"_"+mid,
	    success: function(res){ //so, if data is retrieved

	    	if(typeof res != 'undefined') {
					info = eval("("+res+")");
	        $("#verkehrsmittel").text(info.verkehrsmittel);
	        $("#ort").text((info.ort != null) ? info.ort : "");
	        $("#weg").text((info.arbeitsweg != null) ? info.arbeitsweg : "");
	        $("#kennzeichen").text((info.kennzeichen != null) ? info.kennzeichen : "");
	        if(htid == null && trid == null)
	        	$("#abwesenheitszeit").val(info.fahrzeit);

	       // $("#stunden").text(info.stunden);
	       // $("#stundenDez").text(info.stundenDez);
	       }

	    }
	    }); //close $.ajax
    }
 }

function addHiddenField($form, elemName, elemVal) {
   s = '<input type="hidden" name="'+ encodeURIComponent(elemName)
       + '" value="'+ encodeURIComponent(elemVal)
       + '" />';
   $(s).appendTo($form);
}

function str_pad (input, pad_length, pad_string, pad_type) {
    var half = '', pad_to_go;

    var str_pad_repeater = function (s, len) {
        var collect = '', i;

        while (collect.length < len) {collect += s;}
        collect = collect.substr(0,len);

        return collect;
    };

    input += '';
    pad_string = pad_string !== undefined ? pad_string : ' ';

    if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }
    if ((pad_to_go = pad_length - input.length) > 0) {
        if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }
        else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
        else if (pad_type == 'STR_PAD_BOTH') {
            half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
            input = half + input + half;
            input = input.substr(0, pad_length);
        }
    }

    return input;
}

