window.onload = function init() {
    dev=1;
    activateTabSheet();
    getVariablesFromURI(); // odczytywanie zmiennych i ich wartosci z adresu URI
    initNewsletter();

    //step5 i step6
    //initRezerwacja(); 
    //reservPlatosci();
}

function initNewsletter() {
    sNewsletterPriceSpliter = null;
    var aLinks = document.getElementsByTagName('a');
    if ( window.opener && window.opener.addNewsletterOffer)
    {
        for (i=0; i<aLinks.length; i++)
        {
            if ( aLinks[i].getAttribute( 'newsletter' ) !== null )
            {
                show(aLinks[i]);
                aLinks[i].onclick = sendToNewsletter;
            }
        }
        return true;
    } else {
        for (i=0; i<aLinks.length; i++)
        {
            if ( aLinks[i].getAttribute( 'newsletter' ) !== null )
            {
                hide(aLinks[i]);
            }
        }
        return false;
    }
}

function initRezerwacja() {
	var id = 'frm-booking'; 
    var form = $(id);
    if (form != null) {
        /* PRZELADOWYWANIE */
        var oTriggers = {
            stale: ['trip[room_num]', 'trip[start_from_id]'],
            zmienne: { // pokoi moze byc kilka
                room: ['id', 'board_id', 'adult_child', 'infant', 'adult', 'child']
            }
        };
    
        // argumenty: 1. obiekt formularza; 2. obiekt elementow ('name' elementow) po ktorych zmianie ma byc przeladowanie
    	var ra = new ReservActualisation(form, oTriggers);
        ra.init();
    
        /* VALIDACJA */
        var stale = [
            {name: 'client[name]', clientName: 'imię', rules: {notNull: 1, onlyLetters: 1}},
            {name: 'client[surname]', clientName: 'nazwisko', rules: {notNull: 1, onlyLetters: 1}},
            {name: 'client[street]', clientName: 'ulica', rules: {notNull: 1}},
            
            {name: 'client[street_nr0]', clientName: 'nr doumu', rules: {notNull: 1}},
            {name: 'client[post_code]', clientName: 'kod pocztowy', rules: {notNull: 1, post_code: 1}},
            {name: 'client[city]', clientName: 'miasto', rules: {notNull: 1, onlyLetters: 1}},
            
            {name: 'client[phone]', clientName: 'telefon kontaktowy', rules: {notNull: 1, number: 1, minSize: 9}},
            {name: 'client[email]', clientName: 'email', rules: {notNull: 1, email: 1}},
            {name: 'pesel', clientName: 'pesel', rules: {custom: {re: /^[0-9]{11}$/, msg: 'pesel ma nieprawidłowy format'}}},
            {name: 'regulamin', clientName: 'regulamin', rules: {checked: 1}},
            {name: 'ochronadanych', clientName: 'ochrona danych', rules: {checked: 1}},
            {name: 'handlowainformacja', clientName: 'informacje handlowe', rules: {}},
            {name: 'trip[confirm_info]', clientName: 'potwierdzenie powrotu', rules: {checked: 1}}
        ];
        
        var zmienne = {
            persons: [
                {name: 'name', clientName: 'imię uczestnika', rules: {notNull: 1, onlyLetters: 1}},
                {name: 'surname', clientName: 'nazwisko uczestnika', rules: {notNull: 1, onlyLetters: 1}},
                {name: 'day', clientName: 'dzień urodzenia uczestnika', rules: {notNull: 1, number: 1}},
                {name: 'month', clientName: 'miesiąc urodzenia uczestnika', rules: {notNull: 1, number: 1}},
                {name: 'year', clientName: 'rok urodzenia uczestnika', rules: {notNull: 1, number: 1}}
            ]    
        };
        
        var oConfig = {
            form: form,
            stale: stale,
            zmienne: zmienne
        };

        var validacja = new ReservValidation(oConfig);
        validacja.init();
    }
}

function reservPlatosci() {
	if ($('panel-1'))
		var rp = (new ReservPlatosci()).init();
}