var weekDays = ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"];
var sWeekDays = ["nd.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob."];
var months = ["stycznia", "lutego", "marca", "kwietnia", "maja", "czerwca", "lipca", "sierpnia",
  "września", "października", "listopada", "grudnia"];
var weightsREGON = [8, 9, 2, 3, 4, 5, 6, 7 ];
var moduloREGON = 11;
var weightsNIP = [6, 5, 7, 2, 3, 4, 5, 6, 7];
var moduloNIP = 11;

// Funkcje do sprawdzania zawartości pól w formularzu.
//
function CheckTextInput(fld, msg)
{
  fld.value = Trim(fld.value);
  if (fld.value=="")
    return InvalidInput(fld, msg);
  return true;
}

function CheckEmailInput(fld, req, msg)
{
  return CheckPictInput(fld, req, /^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/, msg);
}

function CheckMailCodeInput(fld, req, msg)
{
  return CheckPictInput(fld, req, /^\d{2}-?\d{3}$/, msg);
}

function CheckREGONInput(fld, req, msg)
{
  if (CheckPictInput(fld, req, /^\d{9}$/, msg))
    if (CheckInputCheckSum(fld.value, weightsREGON, moduloREGON))
      return true;
    else
      return InvalidInput(fld, msg);
  return false;
}

function CheckNIPInput(fld, req, msg)
{
  if (CheckPictInput(fld, req, /^(\d{3}-?\d{3}-?\d{2}-?\d{2})|(\d{3}-?\d{2}-?\d{2}-?\d{3})$/, msg))
    if (CheckInputCheckSum(fld.value, weightsNIP, moduloNIP))
      return true;
    else
      return InvalidInput(fld, msg);
  return false;
}

function CheckIntInput(fld, req, msg)
{
  fld.value = Trim(fld.value);
  if (!req && fld.value=="")
    return true;
  if (fld.value.search(/^\d+$/) == -1)
    return InvalidInput(fld, msg);
  return true;
}

function CheckIntRangeInput(fld, req, minVal, maxVal, msg)
{
  fld.value = Trim(fld.value);
  if (!req && fld.value=="")
    return true;
  var v = parseInt(fld.value);
  if (fld.value.search(/^\d+$/) == -1 || v < minVal || v > maxVal)
    return InvalidInput(fld, msg);
  return true;
}

function CheckPictInput(fld, req, re, msg)
{
  fld.value = Trim(fld.value);
  if (!req && fld.value=="")
    return true;
  if (fld.value.search(re)==-1)
    return InvalidInput(fld, msg);
  return true;
}

function CheckInputCheckSum(s, wts, modulo)
{
  var i = 0;
  var j = 0;
  var sum = 0;

  while (i < s.length - 1 && j < wts.length) {
    var n = parseInt(s.charAt(i++))
    if (!isNaN(n))
      sum += n * wts[j++];
  }
  return i == s.length - 1 && j == wts.length && (sum % modulo) % 10 == parseInt(s.charAt(i));
}

function InvalidInput(fld, msg)
{
  alert(msg? msg : "Proszę wypełnić pole " + fld.name + ".");
  fld.focus();
  return false;
}
//----------

// Obustronne obcięcie białych znaków
//
function Trim(parNapis){
  var i=0;
  var j=0;

  while ((i<parNapis.length)&&(parNapis.charCodeAt(i)<=0x20))
    i++;
  if (i>=parNapis.length)
    return "";
  else {
    j=parNapis.length;
    while (parNapis.charCodeAt(j-1)<=0x20)
      j--;
    return parNapis.substring(i,j);
  }
}

// Sformatowanie kwoty
//
function PriceStr(v)
{
  var i = Math.floor(v);
  var f = Math.round((v - i) * 100);
  var s = String(i) + "," + f;
  if (f < 10)
    s += "0";
  return s;
}

function NewItem(time) {
  var added = new Date(time);
  var today = new Date();
  var days = (today - added) / 86400000;

  if (days < 14) {
    var gif = days < 7? "../img/newest.gif" : "../img/new.gif";
    document.write("<img src='", gif, "' border=0 width=28 height=11 title='Dodano ",
      added.getDate(), ".", added.getMonth() + 1, ".", added.getFullYear(), "'> ");
  }
}

function DecodeDBTimeStamp(ts)
{
  var d = new Date(Number(ts.substr(0,4)), Number(ts.substr(5,2)) - 1, Number(ts.substr(8, 2)),
      Number(ts.substr(11, 2)), Number(ts.substr(14, 2)), Number(ts.substr(17, 2)), 0);
  return d;
}

function FmtDayTime(t) {
  var m = t.getMinutes();
  return t.getHours() + (m < 10? ":0" : ":") + m;
}

function FmtLongDate(t) {
  return weekDays[t.getDay()] + ", " + t.getDate() + " " + months[t.getMonth()] + " " + t.getFullYear();
}

function FmtLongTime(t) {
  return FmtLongDate(t) + ", " + FmtDayTime(t);
}

function FmtShortDate(t) {
  var m = t.getMonth() + 1;
  return t.getDate() + (m < 10? ".0" : ".") + m + "." + t.getFullYear();
}

function FmtShortTime(t) {
  return FmtShortDate(t) + " " + FmtDayTime(t);
}

function FmtTime(t) {
  return sWeekDays[t.getDay()] + " " + FmtShortDate(t) + " " + FmtDayTime(t);
}

function TimeStamp(time) {
  var t = new Date(time);

  document.write("<div class='time'>");
  NewItem(t);
  TimeString(t);
  document.writeln("</div>");
}

function TimeString(time) {
  var t = new Date(time);
  var hr = t.getHours();
  var min = t.getMinutes();

  document.write(FmtLongDate(t));
  if (hr != 0 || min != 0)
    document.write(", ", hr, min < 10? ":0" : ":", min);
}

function TmStamp() {
  return FmtTime(new Date());
}

function WinOpen(href,title,features,ctlpage)
{
  var wnd = window.open("", "infowin", (features==""? "" : features + ",") + "scrollbars");

  if (wnd.length != 0) {
    wnd.close();
    wnd = window.open("", "infowin", (features==""? "" : features + ",") + "scrollbars");
  }
  wnd.document.writeln("<HTML><HEAD><META http-equiv='Content-type' content='text/html; charset=windows-1250'><TITLE>", title, "</TITLE></HEAD>");
  wnd.document.writeln("<FRAMESET ROWS='*,22' BORDER=0>");
  wnd.document.writeln("<FRAME SRC='", href, "' NAME='info' NORESIZE>");
  wnd.document.writeln("<FRAME SRC='" + (ctlpage == undefined? "winclose.html" : ctlpage) + "' SCROLLING='no' NORESIZE>");
  wnd.document.writeln("</FRAMESET></HTML>");
  wnd.focus();
  return false;
}

function Zoom(href,title,width,height,scrollbars,resizable,options)
{
  var features = "width=" + width + ",height=" + height + ",status=0,scrollbars=" + (scrollbars? "1" : "0") + ",resizable=" + (resizable? "1" : "0") + (options? "," + options : "");
  var wnd = window.open("", "infowin", features);

  if (wnd.length != 0) {
    wnd.close();
    wnd = window.open("", "infowin", features);
  }
  wnd.document.writeln("<HTML><HEAD><META http-equiv='Content-type' content='text/html; charset=windows-1250'><TITLE>", title, "</TITLE></HEAD>");
  wnd.document.writeln("<FRAMESET BORDER=0>");
  wnd.document.writeln("<FRAME SRC='", href, "' NAME='info' ");
  if (!resizable)
    wnd.document.writeln("NORESIZE ");
  if (!scrollbars)
    wnd.document.writeln("SCROLLING='no' ");
  wnd.document.writeln("MARGINWIDTH=0 MARGINHEIGHT=0></FRAMESET></HTML>");
  wnd.focus();
  return false;
}

function InfoPopup(url, title) {
	return Zoom(url, title, 650, 500, true, true);
}

function ShowHide(showIDs, hideIDs) {
	var i;
	if (typeof showIDs == "object")
		for (i in showIDs)
			document.getElementById(showIDs[i]).style.display = "";
	else if (typeof showIDs == "string")
		document.getElementById(showIDs).style.display = "";
	if (typeof hideIDs == "object")
		for (i in hideIDs)
			document.getElementById(hideIDs[i]).style.display = "none";
	else if (typeof hideIDs == "string")
		document.getElementById(hideIDs).style.display = "none";
	return false;
}

