// Lessenaarspecialist dynamic effects
// (c) 2007 Loco (Loohuis Consulting), http://www.loohuis-consulting.nl/
// This work is licensed under a 
// Creative Commons Attribution-Share Alike 3.0 Netherlands License
// see http://www.loohuis-consulting.nl/development/cc-by-sa.php

// settings
// script url
var url = window.location.protocol + '//' + window.location.host + window.location.pathname;
// track helpdesk modification
var helpdeskquestion = false;
var helpdeskemail = false;
var helpdesknumber = false;

// product thumb navigation
var thumbCount;
var activeThumb = 1;

// form validation
// settings
var errorColor = '#94A5AF';
var okColor = 'transparent';
var hasError = false;

function validate(e)
{
    var elm = Event.element(e);
    if (elm.nodeName != 'FORM')
        elm = elm.form;

    // check mandatory elements
    var inputs = $A(document.getElementsByClassName('mandatory', elm));
    inputs.each(function(i)
    {
        if ((i.value.length == 0)) {
            Element.setStyle(i, {backgroundColor: errorColor});
            Element.show('registererror');
            hasError = true;
            Event.stop(e);
            $('sendmsg').hide();
        }
        else {
            Element.setStyle(i, {backgroundColor: okColor});
        }
    });
    if (!hasError) {
        if (elm.register.value)
            elm.user.value = elm.email1.value;
        Element.hide('registererror');
    }
}

// show/hide delivery data
function toggleDelivery(e)
{
    var show = $('contactform').delivery[1].checked;
    var fields = $A(document.getElementsByClassName('dtoggle'));
    fields.each(function(f)
    {
        if (show) {
            Element.addClassName(f, 'mandatory');
            f.disabled = false;
        }
        else {
            Element.removeClassName(f, 'mandatory');
            f.disabled = true;
        }
    });
    // hide delivery data rows
    var rows = $A(document.getElementsByClassName('hidedelivery'));
    rows.each(function(r)
    {
        if (show)
            Element.show(r);
        else
            Element.hide(r);
    });
}

// show product menu
function showProductMenu(e)
{
    old = parseInt($('productselect').readAttribute('old'));
    if (old)
        $('newproductselect').show();
    else
        $('oldproductselect').show();
}

// hide product menu
function hideProductMenu(e)
{
    old = parseInt($('productselect').readAttribute('old'));
    if (old)
        $('newproductselect').hide();
    else
        $('oldproductselect').hide();
}

// set up product submenus
function initMenu()
{
    var subs = $A(document.getElementsByClassName('brand'));
    subs.each(function(s)
    {
//        Event.observe(s, 'mouseover', showSubMenu);
//        Event.observe(s, 'mouseout', hideSubMenu);
    });
}

// show submenu
function showSubMenu(e)
{
    var elm = Event.element(e);
    var sub = elm.parentNode.getElementsByTagName('ul')[0];
    if (sub)
        Element.show(sub);
}

// hide submenu
function hideSubMenu(e)
{
    var elm = Event.element(e);
$('debug').update(elm.nodeName);
    if (elm.nodeName == 'LI') {
        var sub = elm.getElementsByTagName('ul')[0];
        if (sub)
            Element.hide(sub);
    }
}

// switch thumbnail image
function switchImg(e)
{
    var elm = Event.element(e);
    var thumbs = $A(document.getElementsByClassName('thumb'));
    thumbs.each(function(t) {
        t.removeClassName('active');
    });
    elm.addClassName('active');
    $('bigimg').src = elm.src;
}

// clear a textarea on focus
function clearText(e)
{
    var elm = Event.element(e);
    
    if (!eval(elm.id)) {
        elm.value = '';
        eval(elm.id + ' = true');
    }
}

// show/hide faq answers
function showhide(e)
{
    var elm = Event.element(e);
    while (!elm.hasClassName('faq'))
        elm = elm.parentNode;
    var answers = $A(document.getElementsByClassName('answer', elm));
    answers.each(function(a) {
        if (a.visible())
            a.hide();
        else
            a.show();
    });    
    Event.stop(e);
}

// cart article selection
function updateControls(e)
{
    var elm = Event.element(e);
    if (elm.nodeName != 'A' && elm.nodeName != 'INPUT') {
        while (!elm.hasClassName('hover'))
            elm = elm.parentNode;
        var artid = elm.readAttribute('artid');
        window.location = url + '?active=' + artid;
    }
}

// update thumb navigation
function updateThumbs(e)
{
    var elm = Event.element(e);
    switch (elm.name) {
        case 'back':
            if (activeThumb > 1) {
                $('thumb' + (activeThumb + 2)).hide();
                activeThumb--;
                $('thumb' + activeThumb).show();
            }
            break;
        case 'forward':
            if (activeThumb < (thumbCount - 2)) {
                $('thumb' + activeThumb).hide();
                activeThumb++;
                $('thumb' + (activeThumb + 2)).show();
            }
            break;
    }
}

// set up actions
function init()
{
    if ($('productextra')) {
        var thumbs = $A(document.getElementsByClassName('thumb'));
        thumbs.each(function(t) {
            Event.observe(t, 'mouseover', switchImg);
        });
    }
    if ($('contactform')) {
        Event.observe('contactform', 'submit', validate);
    }
    var toggles = $A(document.getElementsByClassName('deliverytoggle'));
    toggles.each(function(t) {
        Event.observe(t, 'click', toggleDelivery);
    });
    if ($('helpdeskquestion')) {
        Event.observe('helpdeskquestion', 'focus', clearText);
    }
    if ($('helpdeskemail')) {
        Event.observe('helpdeskemail', 'focus', clearText);
    }
    if ($('helpdesknumber')) {
        Event.observe('helpdesknumber', 'focus', clearText);
    }
    var faq = $A(document.getElementsByClassName('showhide'));
    faq.each(function(t) {
        Event.observe(t, 'click', showhide);
    });
    var orders = $A(document.getElementsByClassName('hover'));
    orders.each(function(t) {
        Event.observe(t, 'click', updateControls);
    });
    var ctrls = $A(document.getElementsByClassName('thumbcontrol'));
    ctrls.each(function(t) {
        Event.observe(t, 'click', updateThumbs);
    });
    thumbCount = $A(document.getElementsByClassName('thumbbox')).length;
}

Event.observe(window, 'load', init);

