function tooltipInit( tableId ) {
    // portfolio note activation (requires tooltip.js)
    $$( '#' + tableId + ' td.note a.toolnote' ).each( function( a ) {
			
        Event.observe( a , 'mouseover' , function( event ) {
            $(a).next('span.tooltipText').show();
			
            var height = '-' + Math.round((($(a).next('span.tooltipText').getHeight() / 2) - 15)) + 'px';
			
            $(a).next('span.tooltipText').setStyle({
                top: height
            });

        });
		
        Event.observe( a , 'mouseout' , function( event ) {
            $(a).next('span.tooltipText').hide();
        });
    });
}

function lightWin(ref,tit,wdt,hgt) {
    if (myLightWindow == null)
    {
        myLightWindow = new lightwindow();
    }
    myLightWindow.activateWindow({
        href: ref,
        title: tit,
        width: wdt,
        height: hgt
    });
}

function setStart() {
    document.body.style.behavior = 'url(#default#homepage)';
    if (slang == 'nl') {
        document.body.setHomePage('http://netto.tijd.be/');
    } else {
        document.body.setHomePage('http://monargent.lecho.be/');
    }
    return false;
}    

var mess= '';
function fieldChck(fec,val){
    if(fec.hasClassName('var_f')) {
        return(typeof val=='string'&&val!='');
    } else if(fec.hasClassName('txt_f')) {
        return(typeof val=='string'&&val!=''&&isNaN(val));
    } else if(fec.hasClassName('num_f')) {
        if (val.indexOf('.') > -1) {
            val = 'no';
        }
        return(!isNaN(val.replace(',','.'))&&val!='');
    } else if(fec.hasClassName('mail_f')) {
        var objRE=/^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;
        return (val != '' && objRE.test(val));
    } else if(fec.hasClassName('tel_f')) {
        var objRE=/^[0-9\(\)\.\/\-\+\s]*$/;
        return (val != '' && objRE.test(val));
    } else if(fec.hasClassName('cha3_f')) {
        return (val.length >= 3);
    } else if(fec.hasClassName('date_f')) {
        if( $('whd').checked == true )
        {
            var testDate = new Date(fec.value);
            return (!isNaN(testDate));
        }
        else
        {
            return true;
        }
    } else if(fec.hasClassName('pasw_f')) {
        return (($('Password').value) == ($('Password2').value));
    } else if(fec.hasClassName('sel_f')) {
        return (fec.options[fec.selectedIndex].value != '');
    } else {
        return true;
    }
}

function alertIt(typ, obj) {	
    var bc = '#ffffff';
    var hc = '#f3f4f1';
    var ec = '#ffffff';
    var cc = 'rgb(255,255,255)';
    var ot = obj.id + '_tit';
	
    
    switch (typ) {
        case 'focus':
            var tc = obj.getStyle('backgroundColor');
            if (tc == cc) {
                sc = ec;
            } else {
                sc = bc;
            }
            new Effect.Highlight(obj, {
                startcolor:sc,
                endcolor:hc,
                restorecolor:hc
            });
            if (obj.hasClassName('err')) {
                if (obj.up('div').down('h4') != undefined) {
                    obj.up('div').down('h4').hide();
                //Effect.BlindUp(obj.up(0).down('h4'));
                } else {
                    obj.value = '';
                }
                obj.setStyle({
                    backgroundImage: 'none'
                });
                obj.removeClassName('err');
            }
            break;
        case 'blur':
            new Effect.Highlight(obj, {
                startcolor:hc,
                endcolor:bc,
                restorecolor:bc
            });
            break;
        case 'error':
            var tc = obj.getStyle('backgroundColor');
            if (obj.hasClassName('err')) {
                break;
            }
            new Effect.Highlight(obj, {
                startcolor:bc,
                endcolor:ec,
                restorecolor:ec
            });
            if (obj.up('div').down('h4') != undefined) {
                obj.up('div').down('h4').show();
            //Effect.BlindDown(obj.up(0).down('h4'));
            } else {
                obj.value = eval('mess.' + obj.className);
            }
            obj.setStyle({
                backgroundImage: 'url('+styles+'/adm/img/b_input.gif)',
                backgroundPosition: 'right center',
                backgroundRepeat: 'no-repeat'
            });
            obj.addClassName('err');
            break;
    }
}

function addCheckForm(fss) {
    Event.observe(fss, 'submit', function(event) {
        var fe = Form.getElements(fss);
        var ab = true;
        fe.each(function(fec) {
            fev = fec.value.strip();
            if (!(fieldChck(fec, fev))) {
                ab = false;
                alertIt('error', fec);
            }
        });
        if (!(ab)) {
            Event.stop(event);
        }
        else {
            if ((fss.readAttribute('id') == 'reg_f') && ($('StartPage')) && (document.all)) {
                if ($('StartPage').getValue() != null) {
                    setStart();
                }
            }
        }
    });
}

function addInputChange(fmm) {	
    Event.observe(fmm, 'focus', function(event) {
        if (fmm.hasClassName('r_only')) Event.stop(event);
        alertIt('focus', fmm);
        Event.stop(event);
    });
    Event.observe(fmm, 'blur', function(event) {
        alertIt('blur', fmm);
        Event.stop(event);
    });
}

Cookie = Class.create();

Cookie.prototype = ({ 
    initialize: function(element){
        if (document.cookie != null && document.cookie.length > 0) {
            this.cookie = document.cookie.match(new RegExp('user=[\"]?([^;\"]*)[\"]?'));
        }
        this.initCookie();
    },
	
    initCookie: function(){
        if (this.cookie != null) {
            if (slang == 'nl') {
                document.write ('<span class="listitem">Welkom <a href="/registratie/wijzigen" class="uline"><strong>' + this.cookie[1].unescapeHTML().replace(/_/g, " ") + '</strong></a> (<a href="/logout" class="bluelnk">Afmelden</a>)</span>');
            } else {
                document.write ('<span class="listitem">Bienvenue <a href="/enregistrement/modifier" class="uline"><strong>' + this.cookie[1].unescapeHTML().replace(/_/g, " ") + '</strong></a> (<a href="/logout" class="bluelnk">D&eacute;connexion</a>)</span>');
            }
        } else {
            if (slang == 'nl') {
                document.write ('<span class="listitem"><a href="/registratie" class="uline">Aanmelden</a></span>');
            } else {
                document.write ('<span class="listitem"><a href="/enregistrement" class="uline">Se connecter</a></span>');
            }
        }
    }
	
});

Event.observe(window, 'load', function(event) {	
    //trigger tools HLN
    var qs = location.href.toQueryParams();
    var tl = qs.tool;
    if (tl) {
        if ($(tl)) {
            var arr = $(tl).getAttribute('params').split(',');
            var arr_w = arr[0].split('=');
            var arr_h = arr[1].split('=');
			
            //pass on the rest of the query string to the page that will be loaded in the lightwindow
            var href = $(tl).href;
            var q = href.indexOf('?') == -1;
            for (i in qs) {
                if (i != 'tool') {
                    href+= (q ? '?' : '&');
                    href+= i + '=' + qs[i];
                    q = false;
                }
            }
			
            lightWin(href,$(tl).title,arr_w[1],arr_h[1]);
        }
    }
    // setasHomepage (only IE)
    if ($('startbox')) {
        if (document.all) $('startbox').show();
    }
    if ($('setstart')) {
        if (document.all) {
            $('setstart').show();
            Event.observe($('setstart'), 'click', function(event) {
                setStart();
                Event.stop(event);
            });
        }
    }
    // addToFavorites (only IE)
    if ($('addfavorite')) {
        if (document.all) {
            $('addfavorite').show();
            Event.observe($('addfavorite'), 'click', function(event) {
                alert($('addfavorite').href);
                window.external.AddFavorite($('addfavorite').href, $('addfavorite').title);
                Event.stop(event);
            });
        }
    }
    // 	mcol first title uppercorners white
    if ($('mcol')) {
        if ($('mcol').firstDescendant()) {
            if ($('mcol').firstDescendant().hasClassName('tbar')) {
                $('mcol').firstDescendant().addClassName('upper');
            }
        }
    }
    if (slang == 'nl') {
        mess='{ "var_f": "Text etc.","txt_f": "Enkel letters", "num_f": "Enkel cijfers, decimalen met komma", "cha3_f": "Minimaal 3 karakters opgeven", "phone_f": "Enkel cijfers en geldige telefoontekens", "mail_f": "Mail adres check" }'.evalJSON();
    } else {
        mess='{ "var_f": "Minimum 3 caract\u00E8res requis","txt_f": "Enkel letters", "num_f": "Chiffres uniquement, virgule pour les d\u00E9cimales", "cha3_f": "Minimum 3 caract\u00E8res requis", "phone_f": "Enkel cijfers en geldige telefoontekens", "mail_f": "Mail adres check" }'.evalJSON();
    }
    // make target new
    $$('div#bgwrap a.newwin','div#tgwrap a.newwin').each(function(nw) {
        Event.observe(nw, 'click', function(event) {
            var newWindow = window.open(nw.getAttribute('href'), '_blank');
            newWindow.focus();
            Event.stop(event);
            return false;
        });
    });
//    // onfocus & onblur highlight input fields
//    $$('form.chck_f input','form.chck_f textarea').each(function(fmm) {
//        addInputChange(fmm);
//    });
    // onchange highlight select
    $$('form.chck_f select').each(function(fmm) {
        Event.observe(fmm, 'change', function(event) {
            alertIt('focus', fmm);
            Event.stop(event);
        });
        Event.observe(fmm, 'blur', function(event) {
            alertIt('blur', fmm);
            Event.stop(event);
        });
    });
//    // onsubmit client side form validation
//    $$('form.chck_f').each(function(fss) {
//        addCheckForm(fss);
//    });
    // To hell with empty DC
    $$('div.add').each(function(ad) {
        if ($(ad).getHeight() <= 40) {
            $(ad).setStyle({
                display: 'none'
            });
        }
    });

    // loading charts & clicks ... steeds als allerlaatste
    $$('div.chart').each(function(ch) {
        var cls = $(ch).classNames().toString().split(' ');
        var siz = cls[2].substr(2).split('x');
        var typ = cls[1]
        var iss = cls[4].substr(3);
        var dat = cls[3].substr(3);
        var wdt = siz[0];
        var hgt = siz[1];
        var lnk = document.createElement('a');
        lnk.href = '';
        lnk.target = '_blank';
        switch( slang ) {
            case 'fr':
                lnk.href = 'http://www.lecho.be/bourses/' + iss;
                break;
            case 'nl':
                lnk.href = 'http://www.tijd.be/beurzen/' + iss;
                break;
        }
        var img = document.createElement('img');
        if (typ == 'intraday') imc = '&issue=' + iss + '&layout=TNIntraday&startdate=today&enddate=today&res=intraday&width=' + wdt + '&height=' + hgt + '&format=image/gif&colors=2008';
        else imc = '&issue=' + iss + '&layout=TeeChart&startdate=' + dat + '&enddate=today&res=endofday&width=' + wdt + '&height=' + hgt + '&format=image/gif&colors=2008';
        img.src = $(ch).readAttribute('src') + imc;
        img.alt = '';
        if (cls[cls.length-1] == 'off') {
            ch.appendChild(img);
        } else {
            lnk.appendChild(img);
            ch.appendChild(lnk);
        }
    });
});

function closeOverlayBottom() {
    $$('body')[0].removeClassName('withBottomOverlay');
}

/*
function initSplash() {
	if (!/safari/i.test(navigator.userAgent)) //if not Safari, disable document scrollbars
		standardbody.style.overflow="hidden";
}
*/

function closeSplash() {
    $$('body')[0].removeClassName('withSplashOverlay');
    if (moveuptimer != '') {
        clearInterval(moveuptimer);
        standardbody.style.overflow="auto";
    }
}

var moveuptimer = '';
var standardbody = '';

function showSplash() {
    $$('body')[0].addClassName('withSplashOverlay');
    moveuptimer = setInterval("window.scrollTo(0,0)", 50);
    standardbody = (document.compatMode=="CSS1Compat") ? document.documentElement : document.body;
    if (!/safari/i.test(navigator.userAgent)) { //if not Safari, disable document scrollbars
        standardbody.style.overflow="hidden";
    }
}

Event.observe(window, 'load', function() {
    if ($('splashBlock')) {
        setTimeout("closeSplash()", 15000);
    }
});