﻿function openWindow(spUrl,spTitel,npHeight,npWidth)
{
  var sLocPara="height="+npHeight+",width="+npWidth+",menubar=no,dependent=yes,titlebar=no,hotkeys=0,resizable=yes,scrollbars=yes";
  win2open = window.open(spUrl,spTitel,sLocPara);
  if (win2open!=null)
  {
    if (win2open.opener == null)
    {
      win2open.opener = self;
    }
    win2open.focus();
  }
}

function calcDuration()
{
  var date1 = $("input[name='ARRIVAL_1']").val();
  var date2 = $("input[name='ARRIVAL_2']").val();
  if (date1.length > 0 && date2.length > 0)
  {
    /*if (!isValidDate(date1,'dmy') || !isValidDate(date2,'dmy'))
      return false;*/

    var day1 = date1.substring(0,2);
    var month1 = date1.substring(3,5);
    var year1 = date1.substring(6,10);
    var day2 = date2.substring(0,2);
    var month2 = date2.substring(3,5);
    var year2 = date2.substring(6,10);
    var d1 = new Date(year1, month1-1, day1);
    var d2 = new Date(year2, month2-1, day2);
    var day = 1000*60*60*24;
    var duration = Math.ceil((d2.getTime() - d1.getTime()) / (day));
    $("input[name='DURATION']").val(duration);
    return duration;
  }
  else
  {
    return false; // date1 || date2 Länge ist 0
  }
}

function isValidDate(dateStr, format, yearDigit) 
{
  if (format == null) { format = "MDY"; }
  format = format.toUpperCase();
  if (format.length != 3) { format = "MDY"; }
  if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) ||
    (format.indexOf("Y") == -1) ) { format = "MDY"; }
  if (format.substring(0, 1) == "Y") { // If the year is first
    if (typeof(yearDigit) === 'undefined') {
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
    } else if (yearDigit === 2) {
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
    } else if (yearDigit === 4) {
      var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
    }
  } else if (format.substring(1, 2) == "Y") { // If the year is second
    if (typeof(yearDigit) === 'undefined') {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
    } else if (yearDigit === 2) {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
    } else if (yearDigit === 4) {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
    }
  } else { // The year must be third
    if (typeof(yearDigit) === 'undefined') {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
    } else if (yearDigit === 2) {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
    } else if (yearDigit === 4) {
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
    }
  }
  // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
  if ( (typeof(reg1) !== 'undefined' && typeof(reg2) !== 'undefined') )
  {
    var isValid = true;
    if (reg1.test(dateStr) === true || reg2.test(dateStr) === true)
      isValid = true;

    if (!isValid)
      return false;
  }
  else if (typeof(reg1) !== 'undefined' && (reg1.test(dateStr) == false)) { return false; }
  else if (typeof(reg2) !== 'undefined' && (reg2.test(dateStr) == false)) { return false; }
  var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
  // Check to see if the 3 parts end up making a valid date
  if (format.substring(0, 1) == "M") { var mm = parts[0]; } else
    if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
  if (format.substring(0, 1) == "D") { var dd = parts[0]; } else
    if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
  if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else
    if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
  if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
  if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
  var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
  if (parseFloat(dd) != dt.getDate()) { return false; }
  if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
  return true;
}
