// add a new function
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function() {
            oldonload();
            func();
        }
    }

}

// plug html markup into document
function insertAfter(newElement, targetElement) {
    var parent = targetElement.parentNode;
    if (parent.lastChild == targetElement) {
        parent.appendChild(newElement);
    }
    else {
        parent.insertBefore(newElement, targetElement.nextSibling);
    }
}

// make a new class, useful for css
function addClass(element, value) {
    if (hasClass(element, value)) {
        return;
    }

    if (!element.className) {
        element.className = value;
    }
    else {
        newClassName = element.className;
        newClassName += " ";
        newClassName += value;
        element.className = newClassName;
    }
}

function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
   }

function removeClass(ele,cls) {
    if (hasClass(ele, cls)) {
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
        ele.className = ele.className.replace(reg, ' ');
    }
 }

function resetFields(whichForm) {
    for (var i = 0; i < whichForm.elements.length; i++) {
        var element = whichForm.elements[i];
        if (element.type == "submit") continue;
        if (element.type == "reset") continue;
        if (!element.defaultValue) continue;
        element.onfocus = function() {
            if (this.value == this.defaultValue) {
                this.value = "";
            }
        }
        element.onblur = function() {
            if (this.value == "") {
                this.value = this.defaultValue;
            }
        }
    }
}

function prepareForm() {

    for (var i = 0; i < document.forms.length; i++) {
        var thisForm = document.forms[i];
        resetFields(thisForm);
        thisForm.onsubmit = function() {
            return validateForm(this);
        }
    }
}




function sifrTitles() {
    if (typeof sIFR == "function") {
        sIFR.replaceElement("h1#mainHeader", mainUrl + "styles/optima.swf", "#2f2f2f", named({ sWmode: "transparent" }));
        sIFR.replaceElement("h1#mainHeader_red", mainUrl + "styles/optima.swf", "#dc0229", named({ sWmode: "transparent" }));
        
		sIFR.replaceElement("h2.redSifr", mainUrl + "styles/optima.swf", "#dc0229", named({ sWmode: "transparent" }));
		sIFR.replaceElement("h2.italicSifr", mainUrl + "styles/optima_italic.swf", "#dc0229", named({ sWmode: "transparent" }));
        sIFR.replaceElement("h3.redSifr", mainUrl + "styles/optima.swf", "#dc0229", named({ sWmode: "transparent" }));	
		sIFR.replaceElement("h3.whiteSifr", mainUrl + "styles/optima.swf", "#FFFFFF", named({ sWmode: "transparent" }));	
        sIFR.replaceElement("h3.blueSifr", mainUrl + "styles/optima.swf", "#37B2FF", named({ sWmode: "transparent" }));
        sIFR.replaceElement("h3", mainUrl + "styles/optima.swf", "#2f2f2f", named({ sWmode: "transparent" }));
        sIFR.replaceElement("#react_to_article h4", mainUrl + "styles/optima.swf", "#2f2f2f", named({ sLinkColor: "#2f2f2f", sHoverColor: "#dc0229", sWmode: "transparent" }));
        sIFR.replaceElement("h2.grey", mainUrl + "styles/optima.swf", "#a8a8a8", named({ sWmode: "transparent" }));
        sIFR.replaceElement("h2", mainUrl + "styles/optima.swf", "#2f2f2f", named({ sWmode: "transparent" }));
        sIFR.replaceElement("#select_fund_content h4", mainUrl + "styles/optima.swf", "#2f2f2f", named({ sWmode: "transparent" }));
		
	}

}


var keepMeInformed = false
function KeepMeInformed(dspl) {
    var div = document.getElementById("keepMeInformed")
    if (div == null)
        return;
    
    if (keepMeInformed) {
        div.style.display = "none";
        keepMeInformed = false;
    }
    else 
    {
        div.style.display = dspl;
        keepMeInformed = true;
        if (mailToFriend)
            MailToFriend();
    }

    ShowDivider()
}

var mailToFriend = false
function MailToFriend() {
    var div = document.getElementById("mailToFriend")
    if (div == null)
        return;

    if (mailToFriend) {
        div.style.display = "none";
        mailToFriend  = false;
    }
    else {
        div.style.display = "";
        mailToFriend = true;

        if (keepMeInformed)
            KeepMeInformed();
    }

    ShowDivider();
}

function ShowDivider() {
    div = document.getElementById("FormDivider");
    if (div == null)
        return;

    if (mailToFriend || keepMeInformed)
        div.style.display = "";
    else
        div.style.display = "none";
        
}


function ValidateKeepMePosted(naam, email){
    tbNaam = document.getElementById(naam);
    tbEmail = document.getElementById(email);
   
    if (tbNaam == null || tbEmail == null)
        return false;

    if (tbNaam.value == "") {
        alert("vul a.u.b. een naam in");
        tbNaam.focus();
        return false;
    }

    if (tbEmail.value == "") {
        alert("Vul a.u.b. een e-mailadres in")
        tbEmail.focus();
        return false;
    }
    
    if (! EmailValidate(tbEmail.value)) {
        alert("Vul a.u.b. een geldig e-mailadres in")
        tbEmail.focus();
        return false;
    
    }

}

function ValidateMailToFriend(emailVan, emailNaar)
{
    tbEmailVan = document.getElementById(emailVan);
    tbEmailNaar = document.getElementById(emailNaar);

    if (tbEmailVan == null || tbEmailNaar == null)
        return false;

    if (tbEmailVan.value == "") {
        alert("vul a.u.b. een e-mailadres in");
        tbEmailVan.focus();
        return false;
    }

    if (!EmailValidate(tbEmailVan.value)) {
        alert("Vul a.u.b. een geldig e-mailadres in")
        tbEmailVan.focus();
        return false;
    }
    
    if (tbEmailNaar.value == "") {
        alert("Vul a.u.b. een e-mailadres in")
        tbEmailNaar.focus();
        return false;
    }

    if (!EmailValidate(tbEmailNaar.value)) {
        alert("Vul a.u.b. een geldig e-mailadres in")
        tbEmailNaar.focus();
        return false;

    }
}

function EmailValidate(address) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    //var reg = /^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/;
    //var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

    if (! reg.test(address)) {
        return false;
    }

    return true;
}

function ArticleFeatureEndRequest() {

    if (typeof(hfArticleFeature) == "undefined")
        return;

    var tb = document.getElementById(hfArticleFeature);
    if (tb == null)
        return;

    alert(tb.value)
    
    if (mailToFriend){
        MailToFriend()
    }

    if (keepMeInformed) {
        KeepMeInformed()
    }
    

        
}

function ZoekBox() {
    return document.getElementById("search");

}

function UZoekt( blur) {
    zkInp = ZoekBox();
    if (zkInp == null)
        return;
    
    if ( zkInp.value == "u zoekt?...") {
        zkInp.value = "";
        return;
    }

    if (blur && zkInp.value == "") {

        zkInp.value = "u zoekt?..."
        return;
    }

}

function CheckEnter( e) {
    
    if (window.event){
        k = e.keyCode;
    } else {
        k = e.which;
    }
    if (k == 13) {
        Zoeken();
        return false;
    }

    return true;

}


function Zoeken() {
    zkInp = ZoekBox();
  
    if (zkInp == null)
        return;

    location = zoekUrl + "?query=" + zkInp.value;
}


function getPosition(element) {
    if (typeof (WebForm_GetElementPosition) == 'function')
        return WebForm_GetElementPosition(element);

    /* tel steeds de afstand tot de parent bij de offset op */
    var curleft = 0;
    var curtop = 0;
    var obj = element;
    do {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);

    return {
        x: curleft,
        y: curtop,
        height: element.offsetHeight,
        width: element.offsetWidth
    };
}

var activeLayer = null;
function ShowInfoLayer(infoBtn, element) {
    if (activeLayer != null)
        activeLayer.style.display = "none";

    div = document.getElementById(infoBtn);

    if (div == null)
        return;

    if (activeLayer != null && activeLayer.id == div.id) {
        activeLayer = null;
        return;
    }

    activeLayer = div;
    var position = getPosition(element);
    div.style.top = position.y + 15 + "px";
    div.style.left = position.x + position.width + "px";
    div.style.display = "block";


    document.onkeydown = function(e) {
    
        if (e == null) { // ie
            keycode = event.keyCode;
        } else { // mozilla
            keycode = e.which;
        }
        if (keycode == 27) { // close
            CloseInfoLayer();
        }
    }
    clickCount = 0;
    document.onclick = PrepareCloseInfoLayer;
}

var clickCount = 0;
function PrepareCloseInfoLayer() {
    clickCount++
    if (clickCount == 1)
        return;

    CloseInfoLayer();
}


function CloseInfoLayer() {
    if (activeLayer != null) {
        activeLayer.style.display = "none";
        activeLayer = null;
    }
}


function SetDottedTable() {
    var tables = document.getElementsByTagName("table");
    for (var x = 0; x < tables.length; x++) {
        if (tables[x].className == "dotted") {
            var thead = tables[x].getElementsByTagName("thead");
            for (var y = 0; y < thead.length; y++) {
                var tds = thead[y].getElementsByTagName("td");
                for (var z = 0; z < tds.length; z++) {
                    var str = tds[z].innerHTML;
                    tds[z].innerHTML = "<p>" + str + "</p>";
                }
            }
        }
    }
}

function printVBbtn()
{
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById("vermogensbeheer")) return false;
	
	var VBPage = document.getElementById("vermogensbeheer");
	var paras = VBPage.getElementsByTagName("p");
	for (var i=0; i<paras.length; i++)
	{
		if(paras[i].className.indexOf("print_btn") == -1) continue;
		paras[i].onclick = function()
		{ window.print(); }
	}
}

function changeHeight(elementID, final_y, interval)
{
	if(!document.getElementById) return false;
	if(!document.getElementById(elementID)) return false;
	
	var elem = document.getElementById(elementID);
	if (elem.movement)
	{
		clearTimeout(elem.movement);
	}
	if (!elem.style.height)
	{
		elem.style.height = final_y + "px";
	}
	var ypos = parseInt(elem.style.height);
	if (ypos == final_y)
	{
		return true;
	}
	if (ypos < final_y)
	{
		var dist = Math.ceil((final_y - ypos)/easing)
		ypos += dist;
	}
	if (ypos > final_y)
	{
		var dist = Math.ceil((ypos - final_y)/easing)
		ypos -= dist;
	}
	elem.style.height = ypos + "px";
	var repeat = "changeHeight('"+elementID+"', "+final_y+", "+interval+")";
	elem.movement = setTimeout(repeat,interval);
}

addLoadEvent(sifrTitles);
addLoadEvent(SetDottedTable);
addLoadEvent(printVBbtn);

