/*
Easydynfont 
Version 1.0
written by Chris Heilmann
please refer to the homepage at http://www.onlinetools.org/tools/easydynfont.php 
*/

// Standard setting, separate fonts with "," and make sure to set standardfont
// and size to avoid errors
var fonts = "Arial,Times New Roman,Verdana".split(",");
var fontcolors = "#FFFFFF,#000000,#FFFF00,#00FF00,#000080,#FF00FF".split(",");
var standardfontcolors = "#000000"
var backgrounds = "#FFFFFF,#000000,#000080,#800000,#C0C0C0".split(",");
var standardfont = "Arial"
var standardsize = "90%"
var standardbackground = "#ffffff"
//var nosave=false; 

/* 
function drawform()
adds the standard form to the document.
*/
function drawform() {
    if (!document.layers) {
        document.write("<form action=\"/\" name=\"dynform\" class=\"dynform\">");
        document.write("<select class=\"dynselect\" name=\"typeface\" onchange=\"setFont(this.options[this.selectedIndex].value)\">");
        for (i = 0; i < fonts.length; i++) {
            document.write("	<option value=\"" + fonts[i] + "\" \">" + fonts[i] + "</option>");
        }
        document.write("</select>");
        document.write("<select class=\"dynselect1\" name=\"backgrounds\" onchange=\"setBackground(this.options[this.selectedIndex].value)\">");
        document.write("<option value=\"\" \">Color</option>");
        for (i = 0; i < fonts.length; i++) {
            document.write("<option value=\"" + backgrounds[i] + "\" style=\"background-color:" + backgrounds[i] + ";\">" + backgrounds[i] + "</option>");
        }
        document.write("</select>");
        //document.write("<input type=\"button\" class=\"dynbutton\" onclick=\"addSize(-10)\" value=\"smaller\" />");
        //document.write("<input type=\"button\" class=\"dynbutton\" onclick=\"addSize(10)\" value=\"larger\" />");
        //document.write("<input type=\"checkbox\" name=\"nosave\" /><span>Don't store as default.</span>");
        document.write("</form>");
    }
}

/* 
function init()
loads the cookiedata and changes the document accordingly, if there is no 
cookie, sets the standard settings and stores it 
*/
function init() {
    if (!document.layers) {
        size = getCookie("dynfontsize");
        if (size != null) {
            c = size.split(":");
            document.getElementsByTagName("body").item(0).style.fontSize = c[0];
            var inputs = document.getElementsByTagName("input");
            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].type.toLowerCase() === "text") {
                    inputs[i].style.color = c[1];
                }
            }

            document.getElementsByTagName("body").item(0).style.color = c[1];
            document.getElementsByTagName("body").item(0).style.fontFamily = c[2];
            document.getElementsByTagName("body").item(0).style.backgroundColor = c[3];
            document.getElementById("header_bg").style.backgroundColor = c[4];
            if (document.getElementById("concept_block_bg"))
                document.getElementById("concept_block_bg").style.backgroundColor = c[5];
            if (document.getElementById("update_block"))
                document.getElementById("update_block").style.backgroundColor = c[6];
            document.getElementById("footer_bg").style.backgroundColor = c[7];
            if (document.getElementById("int_content_bg"))
                document.getElementById("int_content_bg").style.backgroundColor = c[8];
            document.getElementsByTagName("div").item(0).style.color = c[9];
            for (var i = 0; i < document.getElementsByTagName("h1").length; i++) {
                document.getElementsByTagName("h1")[i].style.color = c[10];
            }
            for (var i = 0; i < document.getElementsByTagName("h2").length; i++) {
                document.getElementsByTagName("h2")[i].style.color = c[11];
            }
            for (var i = 0; i < document.getElementsByTagName("h3").length; i++) {
                document.getElementsByTagName("h3")[i].style.color = c[12];
            }
            document.getElementsByTagName("p").item(0).style.color = c[13];
            document.getElementsByTagName("li").item(0).style.color = c[14];
            document.getElementsByTagName("td").item(0).style.color = c[15];
            for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
                document.getElementsByTagName('a')[i].style.color = c[16];
            }
        }

        if (size == null) {
            document.getElementsByTagName("body").item(0).style.fontSize = "90%";
            document.getElementsByTagName("body").item(0).style.color = "";
            document.getElementsByTagName("body").item(0).style.fontFamily = "";
            document.getElementsByTagName("body").item(0).style.backgroundColor = "";
            document.getElementById("header_bg").style.backgroundColor = "";
            document.getElementById("concept_block_bg").style.backgroundColor = "";
            document.getElementById("update_block").style.backgroundColor = "";
            document.getElementById("footer_bg").style.backgroundColor = "";
            if (document.getElementById("int_content_bg"))
                document.getElementById("int_content_bg").style.backgroundColor = "";
            document.getElementsByTagName("div").item(0).style.color = "";
            for (var i = 0; i < document.getElementsByTagName("h1").length; i++) {
                document.getElementsByTagName("h1")[i].style.color = "";
            }
            for (var i = 0; i < document.getElementsByTagName("h2").length; i++) {
                document.getElementsByTagName("h2")[i].style.color = "";
            }
            for (var i = 0; i < document.getElementsByTagName("h3").length; i++) {
                document.getElementsByTagName("h3")[i].style.color = "";
            }
            document.getElementsByTagName("p").item(0).style.color = "";
            document.getElementsByTagName("li").item(0).style.color = "";
            document.getElementsByTagName("td").item(0).style.color = "";
            for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
                document.getElementsByTagName('a')[i].style.color = "";
            }
            storeSize()
        }
    }
    // Special setting, if you want to use the "don't save" chekbox
    //nosave=document.dynform.nosave.checked
}
/* 
reset
*/
function resetall() {
    size = getCookie("dynfontsize");
    document.getElementsByTagName("body").item(0).style.fontSize = "90%";
    document.getElementsByTagName("body").item(0).style.color = "";
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type.toLowerCase() === "") {
            inputs[i].style.color = "";
        }
    }
    document.getElementsByTagName("body").item(0).style.fontFamily = "";
    document.getElementsByTagName("body").item(0).style.backgroundColor = "";
    document.getElementById("header_bg").style.backgroundColor = "";
    document.getElementById("concept_block_bg").style.backgroundColor = "";
    if (document.getElementById("update_block"))
        document.getElementById("update_block").style.backgroundColor = "";
    document.getElementById("footer_bg").style.backgroundColor = "";
    if (document.getElementById("int_content_bg"))
        document.getElementById("int_content_bg").style.backgroundColor = "";
    document.getElementsByTagName("div").item(0).style.color = "";
    for (var i = 0; i < document.getElementsByTagName("h1").length; i++) {
        document.getElementsByTagName("h1")[i].style.color = "";
    }
    for (var i = 0; i < document.getElementsByTagName("h2").length; i++) {
        document.getElementsByTagName("h2")[i].style.color = "";
    }
    for (var i = 0; i < document.getElementsByTagName("h3").length; i++) {
        document.getElementsByTagName("h3")[i].style.color = "";
    }
    document.getElementsByTagName("p").item(0).style.color = "";
    document.getElementsByTagName("li").item(0).style.color = "";
    document.getElementsByTagName("td").item(0).style.color = "";
    for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
        document.getElementsByTagName('a')[i].style.color = "";
    }
    document.getElementById("zoom").selectedIndex = 2;
    document.getElementById("backgroundcolors").selectedIndex = 0;
    document.getElementById("fontcolors").selectedIndex = 0;
    document.getElementById("fonttype").selectedIndex = 0;
    storeSize()
}

function bgColors(color) {
    if (!document.layers) {
        document.getElementsByTagName("body").item(0).style.backgroundColor = color;
        document.getElementById("header_bg").style.backgroundColor = color;
        document.getElementById("concept_block_bg").style.backgroundColor = color;
        if (document.getElementById("update_block"))
            document.getElementById("update_block").style.backgroundColor = color;
        document.getElementById("footer_bg").style.backgroundColor = color;
        if (document.getElementById("int_content_bg"))
            document.getElementById("int_content_bg").style.backgroundColor = color;
        storeSize()
    }
}

function resetfontsize() {
    size = getCookie("dynfontsize");
    c = size.split(":");
    size = null;
    c[0] = "";
    document.getElementsByTagName("body").item(0).style.fontSize = standardsize;
    storeSize()
}
function fontType(type) {
    size = getCookie("dynfontsize");
    if (size != null) {
        c = size.split(":");
        document.getElementsByTagName("body").item(0).style.fontFamily = type;
    }
    storeSize()
}
function fontColors(color) {
    size = getCookie("dynfontsize");
    if (size != null) {
        c = size.split(":");
        document.getElementsByTagName("body").item(0).style.color = color;
        document.getElementsByTagName("div").item(0).style.color = color;
        for (var i = 0; i < document.getElementsByTagName("h1").length; i++) {
            document.getElementsByTagName("h1")[i].style.color = color;
        }
        for (var i = 0; i < document.getElementsByTagName("h2").length; i++) {
            document.getElementsByTagName("h2")[i].style.color = color;
        }
        for (var i = 0; i < document.getElementsByTagName("h3").length; i++) {
            document.getElementsByTagName("h3")[i].style.color = color;
        }
        document.getElementsByTagName("p").item(0).style.color = color;
        document.getElementsByTagName("li").item(0).style.color = color;
        document.getElementsByTagName("td").item(0).style.color = color;
        for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
            document.getElementsByTagName('a')[i].style.color = color;
        }
    }
    storeSize()
}
/* 
function addSize(add)
increases the size of the document font by "add", negative values make the 
font smaller.
*/
function addSize(object) {
    var add = object.options[object.selectedIndex].value;
    if (!document.layers) {
        doc = document.getElementsByTagName("body").item(0);
        size = parseInt(doc.style.fontSize) + add;
        doc.style.fontSize = add + "%";
        storeSize()
    }
}
function addSizeinc(add) {
    if (!document.layers) {
        doc = document.getElementsByTagName("body").item(0);
        if (parseInt(doc.style.fontSize))
            size = parseInt(doc.style.fontSize) + add;
        else
            size = 90 + add;
        doc.style.fontSize = size + "%";
        storeSize()
    }
}


/* 
function SetSize(add)
sets the font size of the document.
*/
function setSize(add) {
    if (!document.layers) {
        document.getElementsByTagName("body").item(0).style.fontSize = add + "%";
        storeSize()
    }
}
/* 
function SetFont(add)
sets the font face of the document.
*/
function setFont(add) {
    if (!document.layers) {
        doc = document.getElementsByTagName("body").item(0)
        doc.style.fontFamily = add;
        storeSize()
    }
}
/* 
background colors
*/
function setBackground(add) {
    if (!document.layers) {
        background = document.getElementsByTagName("body");
        background.style.backgroundColor = add;
        background1 = document.getElementById("header_bg");
        background1.style.backgroundColor = add;
        background2 = document.getElementById("concept_block_bg");
        background2.style.backgroundColor = add;
        if (document.getElementById("update_block")) {
            background3 = document.getElementById("update_block");
            background3.style.backgroundColor = add;
        }
        if (document.getElementById("int_content_bg")) {
            background4 = document.getElementById("int_content_bg");
            background4.style.backgroundColor = add;
        }
        background5 = document.getElementById("footer_bg");
        background5.style.backgroundColor = add;
        storeSize()
    }
}
/* 
function storeSize()
saves the current settings of the document in a cookie
*/
function storeSize() {
    var exp = new Date();
    exp.setTime(exp.getTime() + 24 * 60 * 60 * 90 * 1000);
    size = document.getElementsByTagName("body").item(0).style.fontSize;
    fontcolors = document.getElementsByTagName("body").item(0).style.color;
    font = document.getElementsByTagName("body").item(0).style.fontFamily;
    background = document.getElementsByTagName("body").item(0).style.backgroundColor;
    background1 = document.getElementById("header_bg").style.backgroundColor;
    background2 = document.getElementById("concept_block_bg").style.backgroundColor;
    if (document.getElementById("update_block"))
        background3 = document.getElementById("update_block").style.backgroundColor;
    else
        background3 = "";
    background4 = document.getElementById("footer_bg").style.backgroundColor;
    if (document.getElementById("int_content_bg"))
        background5 = document.getElementById("int_content_bg").style.backgroundColor;
    else
        background5 = "";
    fontcolorsdiv = document.getElementsByTagName("div").item(0).style.color;
    if (document.getElementsByTagName("h1").item(0))
        fontcolorsh1 = document.getElementsByTagName("h1").item(0).style.color;
    else
        fontcolorsh1 = "";
    if (document.getElementsByTagName("h2").item(0))
        fontcolorsh2 = document.getElementsByTagName("h2").item(0).style.color;
    else
        fontcolorsh2 = "";
    if (document.getElementsByTagName("h3").item(0))
        fontcolorsh3 = document.getElementsByTagName("h3").item(0).style.color;
    else
        fontcolorsh3 = "";
    fontcolorsp = document.getElementsByTagName("p").item(0).style.color;
    fontcolorsli = document.getElementsByTagName("li").item(0).style.color;
    fontcolorstd = document.getElementsByTagName("td").item(0).style.color;
    for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
        fontcolorsa = document.getElementsByTagName('a')[i].style.color;
    }
    setCookie("dynfontsize", size + ":" + fontcolors + ":" + font + ":" + background + ":" + background1 + ":" + background2 + ":" + background3 + ":" + background4 + ":" + background5 + ":" + fontcolorsdiv + ":" + fontcolorsh1 + ":" + fontcolorsh2 + ":" + fontcolorsh3 + ":" + fontcolorsp + ":" + fontcolorsli + ":" + fontcolorstd + ":" + fontcolorsa, exp, '/');

}
/* 
function setCookie()
sets the cookie
*/
function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "")
    document.cookie = curCookie
}
/* 
function getCookie()
reads the cookie
*/
function getCookie(name) {
    var prefix = name + "="
    var cookieStartIndex = document.cookie.indexOf(prefix)
    if (cookieStartIndex == -1)
        return null
    var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex +
	prefix.length)
    if (cookieEndIndex == -1)
        cookieEndIndex = document.cookie.length
    return unescape(document.cookie.substring(cookieStartIndex +
	prefix.length,
	cookieEndIndex))
}
