var loaded    = 'n';
var is_loaded = 'n';

function Calendar(E,T) {
	var i, j, tBody, Row, od, Do, d, dt, z=0, zeroAllowed=false;
	//=========================================FUNKCJE:=======================================================
    /**
     * @param  t  typ tworzonego elementu tabeli: np. 'td' lub 'th'
     * @param  p  element nadrzedny
     * @param  h  kod umieszczany wewnatrz elementu (opcjonalny)
     * @param  w  czy aktualnie tworzony element jest przyciskiem nawigacji (inna szerokosc, ciemne tlo)
     */
	function cEl(t, p, h, w) { //('td', Row, '&#171;', 1)
		p.appendChild(t = document.createElement(t));
		if (h) {
			t.innerHTML = h;
			t.style.backgroundColor = 'white';
		}
		if (w) {
			t.style.width = '27px'; //szerokosc elementu gdzie są << oraz >>
			t.style.backgroundColor = '#B0D0F0';
		}
		return t;
	}
	/**
	* zmiana miesięcy i roku za pomocą przycisków ze znakami << i >>
	*/
	function cB(x) { //1,2 - cofanie roku i miesiąca
		with (IaiCld) {
			B = 0;
			x == 0 ? R-- :
			               x == 1 ? R++ :
			                               x == 2 ? (!M ? (M = 11, R--) : M--) :
			                                                                      (M == 11 ? (M = 0, R++) : M++);
            od = Date.UTC(R, M, 1);
            Do = Date.UTC(R, M + 1, 1);
		}
	}
    function draw(Y)
    {
        E = document.getElementById(Y);
        while (E.childNodes.length)
            E.removeChild(E.firstChild);
        tBody = cEl('tbody', cEl('table', E));
        tBody.onmouseup = function() {draw(Y);}
        tBody.onmousemove = function() {if (window.getSelection) window.getSelection().removeAllRanges();}
	    //część górna << rok >> np. << 2007 >>
	    Row = cEl('tr', tBody);
		cEl('td', Row, '&#171;', 1).onmousedown = function(){cB(0);} //&#171; - znaczek zmiany roku <<
		cEl('th', Row, IaiCld.R);//rok w oknie kalendarza
		cEl('td', Row, '&#187;', 1).onmousedown = function(){cB(1);} //&#187; - znaczek zmiany roku >>
		//część dolna << miesiąc >> np. << marzec >>
		Row = cEl('tr', tBody);
		cEl('td', Row, '&#171;', 1).onmousedown = function(){cB(2);} //znaczek zmiany miesiaca <<
		cEl('th', Row, IaiCld.month[IaiCld.M]);
		cEl('td', Row, '&#187;', 1).onmousedown = function(){cB(3);} //znaczek zmiany miesiaca >>
		tBody = cEl('tbody', cEl('table', E));
		Row = cEl('tr', tBody);
		for (i = 0 ; i < 7 ; i++) //wypisanie dni tygodnia
		  with (cEl('th', Row, IaiCld.day[i]))
		      if (i == 6)
		         style.backgroundColor='#B0D0F0'; /* kolor tla niedzieli */
		      else
		         style.backgroundColor='#E6EEFA';
		for (i = od ; i < Do ; i += 86400000) {
			with (new Date(i)) {
				d = getUTCDate();
				dt = getUTCDay();
			}
			if (dt == 1 || i == od) {
				Row = cEl('tr',tBody);
			}
			if (dt != 1 && d == 1) {
				for (j = 1 ; j < (dt ? dt : 7); j++) {
					cEl('th',Row);
				}
			}
			dt = cEl('td', Row, d);
			dt.onmousedown = function(x) {
				x=+this.innerHTML;
				with (IaiCld) {
				    a = x;
					T.value = R + '-' + ((x = M + 1) < 10 ? '0' + x : x) + '-' + (a < 10 ? '0' + a : a);  //wypisanie daty w polu <input>
                   // T.onchange.apply(T);
                    E.style.display = 'none';
				}
			}
			with (IaiCld) {//kolor biezacej daty
				if (d == D.getDate() && M == D.getMonth() && R == D.getFullYear()) {
					dt.style.backgroundColor = '#fff';
				}
			}
		}
        if (zeroAllowed) {
            tBody = cEl('tbody', cEl('table', E));
            Row = cEl('tr', tBody);
            cEl('td', Row, 'wyzeruj datę').onmousedown = function(){ T.value = '0000-00-00'; T.onchange.apply(T); E.style.display = 'none'; }
        }
		IaiCld.B = 1;
		T.onblur = function() {
		    if (IaiCld.B)
		      E.style.display = 'none';
		}
        T.focus();  // zeby onblur mialo szanse sie wykonac
		E.style.display = 'block';
    }
	//=========================================endFUNKCJE:=======================================================
    if ((arguments.length >= 3) && arguments[2]) {  // jesli 3. argument = true, pozwalamy na wartosci zerowe
        zeroAllowed = true;
    }
	with (IaiCld) {
        core = T.id.split("_");
        len = core.length;
        core = core.slice(1, len - 1).join('_');
        R = document.getElementById("fg_" + core + "y").value;
        M = document.getElementById("fg_" + core + "m").value - 1; 
        D.setFullYear(R, M, document.getElementById("fg_" + core + "d").value);
        if ((R <= 0) && (M <= -1)) {
            M = new Date().getMonth();
            R = new Date().getFullYear();
        }
	    od = Date.UTC(R, M, 1);
		Do = Date.UTC(R, M + 1, 1);
	}
    draw(E);
}
IaiCld={
	day:['pn','wt','śr','cz','pt','so','nd'],
	month:['styczeń','luty','marzec','kwiecień','maj','czerwiec', 'lipiec','sierpień','wrzesień','październik','listopad','grudzień'],
	D:new Date(),
	M:new Date().getMonth(),
	R:new Date().getFullYear()
}

function add() 
{
    if (document.getElementById('fg_produkt').value.length<4) {
        alert("Podaj nazwę produktu!");
        return false;
    }
    if (document.getElementById('serial_number_form').value == "1" && document.getElementById('fg_serial_number').value.length<2) {
        alert("Podaj numer seryjny produktu!");
        return false;
    }
    if (document.getElementById('fg_usterka').value.length<8) {
        alert("Opisz stwierdzoną usterkę!");
        return false;
    }
     
    if (document.getElementById('fg_buy_place2').checked && document.getElementById('buy_place_desc').value.length<10) {
        alert("Podaj miejsce zakupu!");
        return false;
    }

    if (document.getElementById('payment_form').value == "1") {
        var nr_konta = ''+document.getElementById('fg_payment_addres1').value;
        var nr_konta_cyfry = 0;
        for (i=0; i<nr_konta.length; i++) {
            var znak = nr_konta.substring(i, i+1);
            if (znak >= "0" && znak <="9") {
                nr_konta_cyfry++;
            }
        }
        if (document.getElementById('fg_payment_source2').checked && document.getElementById('fg_payment_addres2').value.length<10) {
            alert("Podaj adres zwrotu pieniędzy!");
            return false;
        }
        if (document.getElementById('fg_payment_source1').checked && nr_konta_cyfry != 26) {
            alert("Podaj poprawny numer konta!");
            return false;
        }
    }
    return true;
}

function changeBackground(akcja, id) 
{
    if (akcja) {
        document.getElementById(id).style.background = '#ACDCFF';
    } else {
        document.getElementById(id).style.background = '';
    }
   
}