// Handle multiple window onloads

window.addOnload = function (fn) {
    if (!window.OnloadCache) window.OnloadCache = [];
    var ol = window.OnloadCache;
    ol.push(fn);
}

window.onload = function () {
    var ol = window.OnloadCache;
    if (ol)
        for (var x = 0; x < ol.length; x++)
            ol[x]();
}

// <Element> draw settings

// Declare global variable settings for <h1>

var path = "./js/";  
var elements = new Array("h1","h2","h3");       
var settings = new Array();

settings["h1"] = new Array();   
settings["h1"]["c_h1"] = new Array();
settings["h1"]["c_h1"]["padding"] = 1;              
settings["h1"]["c_h1"]["bgcolor"] = "ffffff";
settings["h1"]["c_h1"]["transparentbg"] = 0;            
settings["h1"]["c_h1"]["font_color"] = "3b5c82";
settings["h1"]["c_h1"]["shadow_color"] = "3b5c82";
settings["h1"]["c_h1"]["font_file"] = "../fonts/frutiger.pfb";
settings["h1"]["c_h1"]["font_size"] = 23;
settings["h1"]["c_h1"]["antialias"] = 1;                
settings["h1"]["c_h1"]["resizevalue"] = 0;              
settings["h1"]["c_h1"]["h"] = settings["h1"]["c_h1"]["font_size"];

settings["h2"] = new Array();                           
settings["h2"]["c_h2"] = new Array();
settings["h2"]["c_h2"]["padding"] = 2;              
settings["h2"]["c_h2"]["bgcolor"] = "ffffff";
settings["h2"]["c_h2"]["transparentbg"] = 0;            
settings["h2"]["c_h2"]["font_color"] = "007b90";
settings["h2"]["c_h2"]["shadow_color"] = "007b90";
settings["h2"]["c_h2"]["font_file"] = "../fonts/frutiger.pfb";
settings["h2"]["c_h2"]["font_size"] = 18;
settings["h2"]["c_h2"]["antialias"] = 1;                
settings["h2"]["c_h2"]["resizevalue"] = 2;              
settings["h2"]["c_h2"]["h"] = settings["h2"]["c_h2"]["font_size"];
settings["h2"]["c_h2"]["w"] = settings["h2"]["c_h2"]["font_size"];  

settings["h3"] = new Array();                           
settings["h3"]["c_h3"] = new Array();
settings["h3"]["c_h3"]["padding"] = 2;              
settings["h3"]["c_h3"]["bgcolor"] = "ffffff";
settings["h3"]["c_h3"]["transparentbg"] = 0;            
settings["h3"]["c_h3"]["font_color"] = "999999";
settings["h3"]["c_h3"]["shadow_color"] = "999999";
settings["h3"]["c_h3"]["font_file"] = "../fonts/frutiger.pfb";
settings["h3"]["c_h3"]["font_size"] = 23;
settings["h3"]["c_h3"]["antialias"] = 1;                
settings["h3"]["c_h3"]["resizevalue"] = 2;              
settings["h3"]["c_h3"]["h"] = settings["h3"]["c_h3"]["font_size"];
settings["h3"]["c_h3"]["w"] = settings["h3"]["c_h3"]["font_size"];  


// SIIR - Element innerhtml

function SIIR_normalizeWhiteSpace(txt) {
    var rE = /\s+/gi;
    return txt.replace(rE,' ');
}

function SIIR_get_href(txt)  {
    var text = txt;
    var thishref = text.replace(/<a(.*)href=\"/gi,'');
    thishref = thishref.replace(/\">(.*)/gi,'');
    return thishref;
}

function SIIR_get_id(txt)  {
    var text=txt;
    var thisid = text.replace(/<a(.*)id=\"/gi,'');
    thisid = thisid.replace(/\">(.*)/gi,'');
    return thisid;
}

function SIIR_get_text(txt)  {
    var text = txt;
    var txt = text.replace(/<\/.*?>/gi,'');
    txt = txt.replace(/<.*?>/gi,'');
    return txt;
}

// SIIR - Replace the element with an iframe

function SIIR_replace() {
    var d = document;

    for (var a = (elements.length-1); a >= 0; a--) {

        var current_element = elements[a];
        var element = d.getElementsByTagName(current_element);
    
        
        // Loop through each <element>
        for (var i = (element.length-1); i >= 0; i--) {
            contain = element[i];
            
            if(contain.className == "c_h1" || contain.className == "c_h2" || contain.className == "c_h3") 
            {
            
                if(contain.className == "c_h1") 
                {
                    var padding = settings[current_element]["c_h1"]["padding"];
                    var transparentbg = settings[current_element]["c_h1"]["transparentbg"];
                    var bgcolor = settings[current_element]["c_h1"]["bgcolor"];
                    var font_color = settings[current_element]["c_h1"]["font_color"];
                    var shadow_color = settings[current_element]["c_h1"]["shadow_color"];
                    var font_file = settings[current_element]["c_h1"]["font_file"];
                    var font_size = settings[current_element]["c_h1"]["font_size"];
                    var antialias = settings[current_element]["c_h1"]["antialias"];
                    var height = (parseInt(font_size)+parseInt(padding));
                    var width = '';             

                }
                    else if(contain.className == "c_h2") 
                {
                    var padding = settings[current_element]["c_h2"]["padding"];
                    var transparentbg = settings[current_element]["c_h2"]["transparentbg"];
                    var bgcolor = settings[current_element]["c_h2"]["bgcolor"];
                    var font_color = settings[current_element]["c_h2"]["font_color"];
                    var shadow_color = settings[current_element]["c_h2"]["shadow_color"];
                    var font_file = settings[current_element]["c_h2"]["font_file"];
                    var font_size = settings[current_element]["c_h2"]["font_size"];
                    var antialias = settings[current_element]["c_h2"]["antialias"];
                    var height = (parseInt(font_size)+parseInt(padding));
                    var width = '';
                }               
                    else if(contain.className == "c_h3") 
                {
                    var padding = settings[current_element]["c_h3"]["padding"];
                    var transparentbg = settings[current_element]["c_h3"]["transparentbg"];
                    var bgcolor = settings[current_element]["c_h3"]["bgcolor"];
                    var font_color = settings[current_element]["c_h3"]["font_color"];
                    var shadow_color = settings[current_element]["c_h3"]["shadow_color"];
                    var font_file = settings[current_element]["c_h3"]["font_file"];
                    var font_size = settings[current_element]["c_h3"]["font_size"];
                    var antialias = settings[current_element]["c_h3"]["antialias"];
                    var height = (parseInt(font_size)+parseInt(padding));
                    var width = '';
                }
                
                // Container to work with
                var c = d.createElement('span');
                c.className = current_element;
                // Swap <element> tag with the container
                contain.parentNode.replaceChild(c,contain);
                // Set the "current_element.Text" variable
                settings[current_element]["text"] = SIIR_normalizeWhiteSpace(contain.innerHTML);

                var thisid = '';
                reg = /id/i;
                if (reg.test(settings[current_element]["text"])){
                    var thisid = SIIR_get_id(settings[current_element]["text"]);
                }

                var href = '';
                reg = /href/i;
                if (reg.test(settings[current_element]["text"])) {
                    var href = SIIR_get_href(settings[current_element]["text"]);
                }

                settings[current_element]["text"] = SIIR_get_text(settings[current_element]["text"]);
                settings[current_element]["text"] = escape(settings[current_element]["text"]);

                // The img html
                pasteHTML = '';

                if (href != '' || thisid != '') {
                    pasteHTML += '<a';
                }
                
                if (href != '') {
                    pasteHTML += ' href="'+href+'"';
                }

                if (thisid != '') {
                    pasteHTML += ' id="'+thisid+'"';
                }

                if (href != '' || thisid != '') {
                    pasteHTML += '>';
                }

                pasteHTML += '<img class="'+current_element+'" id="'+current_element+'_'+i+'" name="'+current_element+'_'+i+'" src="'+path+'generate.php?action=display&w='+width+'&h='+height+'&padding='+padding+'&transparentbg='+transparentbg+'&bgcolor='+bgcolor+'&font_color='+font_color+'&shadow_color='+shadow_color+'&font_file='+font_file+'&font_size='+font_size+'&antialias='+antialias+'&text='+settings[current_element]["text"]+'" title="'+unescape(settings[current_element]["text"])+'" alt="'+unescape(settings[current_element]["text"])+'"  />';

                if (href != '' || thisid != '') {
                    pasteHTML += '</a>';
                }
                
                c.innerHTML = pasteHTML;
            }
        }
    
    }
}

// Make changes to the <element> tags

function SIIR_add() {
    for (var i = (elements.length-1); i >= 0; i--) {
        var current_element = elements[i];
        settings[current_element]["font_size"]=parseInt(settings[current_element]["font_size"])+settings[current_element]["resizevalue"];
    
        if (settings["span"]["h1"]["font_size"] > 32)
            settings["span"]["h1"]["font_size"] = 32;
        if (settings["span"]["h2"]["font_size"] > 16)
            settings["span"]["h2"]["font_size"] = 16;   

        var height = (parseInt(settings[current_element](font_size))+parseInt(settings[current_element](padding)));
    }

    SIIR_refresh();
}

function SIIR_subtract() {
    for (var i = (elements.length-1); i >= 0; i--) {
    var current_element = elements[i];
    settings[current_element]["font_size"] = parseInt(settings[current_element]["font_size"])-settings[current_element]["resizevalue"];

    if (settings["h1"]["font_size"] < 28)
        settings["h1"]["font_size"] = 28;
    if (settings["h2"]["font_size"] < 14)
        settings["h2"]["font_size"] = 14;
    if (settings["h4"]["font_size"] < 14)
        settings["h4"]["font_size"] = 14;

    settings[current_element]["h"] = (parseInt(settings[current_element]["font_size"])+parseInt(settings[current_element]["padding"]));
    }

    SIIR_refresh();
}

// Refresh the respective img

function SIIR_refresh () {
    var d = document;
    var element = d.getElementsByTagName('img');
    for (var i = (elements.length-1); i >= 0; i--) {
        var current_element = elements[i];
    
        for (var a = (element.length-1); a >= 0; a--) {
            elementid = current_element+"_"+a;
            if (document[elementid]) {
                text = document[elementid].alt;
                document[elementid].src = path+'generate.php?action=display&w='+settings[current_element]["w"]+'&h='+settings[current_element]["h"]+'&padding='+settings[current_element]["padding"]+'&transparentbg='+settings[current_element]["transparentbg"]+'&bgcolor='+settings[current_element]["bgcolor"]+'&font_color='+settings[current_element]["font_color"]+'&shadow_color='+settings[current_element]["shadow_color"]+'&font_file='+settings[current_element]["font_file"]+'&font_size='+settings[current_element]["font_size"]+'&antialias='+settings[current_element]["antialias"]+'&text='+text;
            }
        }
    }
}

// SIIR - Onload call

function SIIR_init() {
    SIIR_replace();
}
