// wibas r6 custom js functions


// ------------------------------------------------------------
// foldingparagraph

arr_open="pfeil-d.gif";
arr_closed="pfeil-r.gif";

arr_toggle=function(elid){
        var arr=$(elid+'arr');
        if (arr.getAttribute("rel") == "closed") {
                // open
                arr.setAttribute("src", arr.getAttribute("src").replace(arr_closed, arr_open));
                arr.setAttribute("rel", "open");
                $(elid+'inner').show();
                //$(elid+'more').hide();
                pageTracker._trackPageview('/VIRTUAL/fold/'+elid);
        } else {
                // close
                arr.setAttribute("src", arr.getAttribute("src").replace(arr_open, arr_closed));
                arr.setAttribute("rel", "closed");
                $(elid+'inner').hide();
                //$(elid+'more').show();
        };
        arr=null;
};

// fold in articles on load
Event.observe(window, 'load', function(){
        $$('.artbody').each(function(item){
                item.hide();
        });
        $$('.artarr').each(function(item){
                item.setAttribute('rel', 'closed');
                item.setAttribute('src', item.getAttribute('src').replace(arr_open, arr_closed));
        });
});

// ------------------------------------------------------------
// training

trarr_open="trpfeil-d.gif";
trarr_closed="trpfeil-r.gif";

tr_toggle=function(elid){
        var arr=$(elid+'arr');
        var inner=$(elid+'inner');
        if (arr.getAttribute("rel") == "closed") {
                // open
                arr.setAttribute("src", arr.getAttribute("src").replace(trarr_closed, trarr_open));
                arr.setAttribute("rel", "open");
                $(elid+'desc', elid+'table').invoke('show');
                $(elid+'short', elid+'more').invoke('hide');
                inner.setStyle({'border-right':'1px solid #bccae3'});
                pageTracker._trackPageview('/VIRTUAL/training/'+elid);
        } else {
                // close
                arr.setAttribute("src", arr.getAttribute("src").replace(trarr_open, trarr_closed));
                arr.setAttribute("rel", "closed");
                $(elid+'desc', elid+'table').invoke('hide');
                $(elid+'short', elid+'more').invoke('show');
                inner.setStyle({'border-right':'1px solid #fff'});
        };
        arr=null;
        inner=null;
};

// Fold in trainings on load
/*
Event.observe(window, 'load', function(){
        return null;
        // Shortcut disable folding at load time
        var todo = document.getElementsByClassName('trailer');
        if (todo) todo.each(function(item){
                var itid = item.id;
                item.hide();
                $(item.id.replace('trailer','') + 'more').hide();
                itid = null;
        });
        todo = null;
        // old folding code
        var todo = document.getElementsByClassName('trcontainer');
        todo.each(function(item){
                var itid = item.id;
                var elid = itid.replace('inner','');
                var arr = $(elid+'arr');
                var inner = $(item.id);
                if (!arr) return null;
                arr.setAttribute("src", arr.getAttribute("src").replace(trarr_open, trarr_closed));
                arr.setAttribute("rel", "closed");
                $(elid+'desc', elid+'table').invoke('hide');
                $(elid+'short', elid+'more').invoke('show');
                inner.setStyle({'border-right':'1px solid #fff'});
                elid = null;
                arr = null;
                inner = null;
        });
        todo = null;
});
*/
// ------------------------------------------------------------
// wibasLinks

wlarr_open="pfeil-d.gif";
wlarr_closed="pfeil-r.gif";

// toggle subcategories
wl_toggle=function(elid) {
        var inner=$(elid+'wlc');
        var head=$(elid+'wll');
        var arr=$(elid+'wla');
        if (inner.getAttribute('rel') == 'closed') {
                inner.show();
                inner.setAttribute('rel', 'open');
                //head.setAttribute('class', 'wlho');
                arr.setAttribute('src', arr.getAttribute('src').replace(wlarr_closed, wlarr_open));
                pageTracker._trackPageview('/VIRTUAL/wibaslinks/'+elid);
        } else {

                inner.hide();
                inner.setAttribute('rel', 'closed');
                //head.setAttribute('class', 'wlhc');
                arr.setAttribute('src', arr.getAttribute('src').replace(wlarr_open, wlarr_closed));
        }
        inner=null;
        head=null;
        arr=null;
}

// fold in subcategories on load
Event.observe(window, 'load', function(){
        $$('.wlinner').each(function(item){
                item.hide();
                item.setAttribute('rel', 'closed');
        });
        $$('.wla').each(function(item){
                item.setAttribute('src', item.getAttribute('src').replace(wlarr_open, wlarr_closed));
        });
});

// ------------------------------------------------------------
// order form

var order_MandFields = new Array('name', 'street', 'pocode', 'city', 'phone', 'email', 'captcha');
var order_IFields = new Array('iname', 'istreet', 'ipocode', 'icity');
var order_EUStates = new Array('BE', 'BG', 'DK', 'EE', 'FI', 'FR', 'FX', 'GR', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'AT', 'PL', 'PT', 'RO', 'SE', 'SK', 'SI', 'ES', 'CZ', 'HU', 'GB', 'CY'); // without DE

order_check=function(){
        var form = $('order')
        //form['submit'].disable();

        // define mandatory fields
        var type = $F(form['type']);
        var err_f = new Array();    // list fields with error
        var ok_f = new Array();     // list of fields with validated input

        // check for mandatory fields
        order_MandFields.each(function(f){
                field = form[f];
                if ((field.value == field.defaultValue) || (field.value.strip() == '')) {
                        err_f.push(field);
                } else {
                        ok_f.push(field);
                }
        });

        // check for invalid count (NaN, 0,...)
        if (form['type'].value == 'product') {
            if (isNaN(form['count'].value)) {
                err_f.push(form['count']);
            } else if (form['count'].value == 0) {
                err_f.push(form['count']);            
            } else {
                ok_f.push(form['count']);
            }            
        }
        
        // set VAT description for non-EU commercial customers
        if (form['country'].value == 'DE') { // DE
            if (form['vattype'].value == 'private') { // DE private
                form['vatclass'].value = 'DE private';
            } else { // DE commercial
                form['vatclass'].value = 'DE commercial';
            }
        }
        else if (order_EUStates.indexOf(form['country'].value) != -1) { // EU
            if (form['vattype'].value == 'private') { // EU private
                form['vatclass'].value = 'EU private';
            } else { // EU commercial
                form['vatclass'].value = 'EU commercial';
            }
        }
        else { // non-EU
            if (form['vattype'].value == 'private') { // non-EU private
                form['vatclass'].value = 'non-EU private';
            } else { // non-EU commercial
                form['vatclass'].value = 'non-EU commercial';
            }
        }
        
        // check VAT ID validity
        if (form['vattype'].value != 'private') {
            var field = form['vatid'];
            var vatok = true;
            if (form['vatclass'].value == 'EU commercial') { // EU muss VAT ID angeben
                if (!checkVATNumber(field.value)) {
                    vatok = false;
                    err_f.push(field)
                }
            } else if (form['vatclass'].value == 'DE commercial') { // DE muss nicht
                if ((field.value != field.defaultValue) && (field.value.strip() != '')) {
                    vatok = true;
                    ok_f.push(field);
                }
            } else { // Rest der Welt: Feld muss gefüllt sein
                if ((field.value != field.defaultValue) && (field.value.strip() != '')) {
                    vatok = true;
                    ok_f.push(field);
                } else {
                    vatok = false;
                    err_f.push(field)                    
                }
            }
            // alles ok?
            if (vatok) {
                ok_f.push(field);
            }
            field = null;
        }

        // process ok fields
        if (ok_f.size() > 0) {
            ok_f.each(function(f){
                f.setStyle({borderColor: '#ccc', backgroundColor: '#fafafa'});
            });
        }
        // process missing/wrong fields
        if (err_f.size() > 0) {
            err_f.each(function(f){
                f.setStyle({borderColor: 'red', backgroundColor: '#ffcccc'});
            });
            form['submit'].enable();
            err_f = null;
            return false;
        }

        //
        // we reach this if we validated ok
        // all santitizing and stripping happens after this line
        //

        // clear vatid if type == private
        if (form['vattype'].value == 'private') {
            form['vatid'].value = '';
        }

        // strip empty values from defaultValued text input fields (eg. no user input)
        $$('#order input[type="text"]').each(function(e){
            if (e.value == e.defaultValue) {
                e.value='';
            }
        });

        // everything's fine => process
        form = null;
        return true;
}

// en/disable invoice address
order_toggleaddr=function(){
        var form = $('order');
        if (form['sameaddr'].checked == true) {
                order_IFields.each(function(f){
                        field = form[f];
                        if (field) field.disable();
                });
                $('idata').hide();
        } else {
                $('idata').show();
                order_IFields.each(function(f){
                        field = form[f];
                        if (field) field.enable();
                });
        }
        form = null;
}

order_togglevatid=function(){
        var form = $('order');
        //console.log(form['vattype'].value);
        if (form['vattype'].value == 'private') { // private
            form['vatid'].hide();
            $('vatlabel').hide();
        }
        else { // commercial
            if (form['country'].value == 'DE') { // Germany
                form['vatid'].hide();
                $('vatlabel').hide();
            }
            else if (order_EUStates.indexOf(form['country'].value) != -1) { // EU member
                form['vatid'].show();
                $('vatlabel').show();
            }
            else { // non-EU
                form['vatid'].show();
                $('vatlabel').show();
            }
        }
}

// init form state
Event.observe(window, 'load', function(){
        var form = $('order');
        if (form) {
                form['sameaddr'].checked = true;
                order_IFields.each(function(f){
                        field = form[f];
                        if (field) field.disable();
                });
                //$('idata').hide();
                order_toggleaddr();
                order_togglevatid();
                // set defaultValue of count field that it doesn't get stripped before submit
                if (form['count']) {
                    form['count'].defaultValue = '0';
                    form['count'].value = '1';
                }
        }
        form = null;
});


// ------------------------------------------------------------
// newsletter subscription

var nlsub_MandFields = new Array('email', 'captcha');

nlsub_check=function(){
        var result = new Array();
        var form = $('nlsub')
        form['submit'].disable();
        // check fields
        nlsub_MandFields.each(function(f){
                field = form[f];
                if ((field.value == field.defaultValue) || (field.value.strip() == '')) {
                        result.push(f);
                        field.setStyle({border: '1px solid red', backgroundColor: '#ffcccc'});
                } else {
                        field.setStyle({border: '1px solid #ccc', backgroundColor: '#fafafa'});
                }
        });
        // something's wrong
        if (result.size() > 0) {
                //alert(result);
                form['submit'].enable();
                return false;
        }
        // everything's fine
        form = null;
        return true;
}


// ------------------------------------------------------------
// throb download box

Event.observe(window, 'load', function(){
        var dlts = $$('.tblinkbox');
        if (dlts) {
            dlts.each(function(f){
                new Effect.Pulsate(f, { 
                    from: 0.5,
                    duration: 2.0,
                    pulses: 5
                });
            });
        }
        dlts = null;
});

//.

