function shiftArray(source,target)
{
  var el;
  while((el = source.shift()) != undefined)
  {
    target.push(el);
  }
}

function getCheck(id)
{
  if(document.getElementById(id) != undefined)
  {
    return (document.getElementById(id).checked ? '1' : '0');
  }   
}
   
function setCheck(id,val)
{
  if(document.getElementById(id) != undefined)
  {
    (val==1 ? document.getElementById(id).checked=true : document.getElementById(id).checked=false);
  }   
}

function getSelect(id)
{
  if(document.getElementById(id) != undefined)
  {
    var el = document.getElementById(id);
    return el.options[el.selectedIndex].value;
  }
  return null;
}
   
function setSelect(id,val)
{
  if(document.getElementById(id) != undefined)
  {
    var el = document.getElementById(id);
    for(var i=0; i < el.options.length; i++)
    {
      if(el.options[i].value == val)
      {
        el.options[i].selected=true;
        return;
      }
    }
  }     
}

function validation_date(datum)
{
  if(datum == undefined)
  {
    return false;
  }
  // regular expression to match required date format
  var re = /^\d{1,2}\.\d{1,2}\.\d{4}$/;
    
  if(datum == "" || !datum.match(re))
  {
    return false;
  }
  var dd = parseFloat(datum.substr(0,2));
  var mm = parseFloat(datum.substr(3,2));
  var yy = parseFloat(datum.substr(6))
  if(dd < 1 || dd > 31 || mm < 1 || mm > 12 || yy < 2006 || yy > 2020)
  {
    return false;
  }
  return true;
}

function addOptFromArray(el_id,arr)
{
  for(var loopIndex=0; loopIndex < arr.length; loopIndex++)
  {
    var opt = document.createElement("option");
    opt.text = arr[loopIndex][1]; 
    opt.value = arr[loopIndex][0];
    try
    {
      document.getElementById(el_id).add(opt,null);
    }
    catch(ex)
    {
      document.getElementById(el_id).add(opt); // IE Only
    } 
  }
}

function disableAirport(id,caller)
{
   return;
   if(document.getElementById(id) != undefined)
   {
     if(getSelect(caller) == '3') //Letecka doprava
     {
       	if(document.getElementById(id).disabled != undefined)
       	{
       		//document.getElementById(id).selectedIndex=0;
       		document.getElementById(id).disabled=false;
       	}
     }
     else
     {
       	if(document.getElementById(id).disabled != undefined)
       	{
       		document.getElementById(id).selectedIndex=0;
       		document.getElementById(id).disabled=true;
       	}
     }
   } 
}

function checkMail(adr)
{
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (filter.test(adr))
  {
    return true;
  }
  return false;
}

function utf8decode(source)
{
  //var source = "&#352;arka&#271;ur&#269;íl&";
  if(source == undefined)
  {
    return "";
  }
  var decodedStr = "";
  var pos = 0;
  var len = source.length;
  while(pos < len)
  {
    var c = source.charAt(pos);
    if(c == "&")
    {
      pos += 2;
      var linedot = source.indexOf(";",pos);
      if(linedot >= 0)
      {
        var unc = source.substring(pos,linedot);
        decodedStr += String.fromCharCode(unc);
        pos = linedot+1;
      }
    }
    else
    {
      decodedStr += c;
      pos++;
    }
  }
  return decodedStr;
}
  
  function XMLspecCharDecode(source)
  {
    if(source == undefined)
    {
      return "";
    }
    var decodedStr = "";
    var pos = 0;
    var len = source.length;
    while(pos < len)
    {
      var c = source.charAt(pos);
      if(c == "&")
      {
        pos++;
        var linedot = source.indexOf(";",pos);
        if(linedot >= 0)
        {
          var unc = source.substring(pos,linedot);
          if(unc == "lt")
          {
            decodedStr += "<";
          }
          else if(unc == "gt")
          {
            decodedStr += ">";
          }
          else if(unc == "amp")
          {
            decodedStr += "&";
          }
          else if(unc == "apos")
          {
            decodedStr += "'";
          }
          else if(unc == "quot")
          {
            decodedStr += '"';
          }
          else
          {
            decodedStr += c;
            //pos++;
            continue;
          }
          pos = linedot+1;
        }
      }
      else
      {
        decodedStr += c;
        pos++;
      }
    }
    return decodedStr;
  }


