// 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="http://212.87.34.35/_scripts/_siir/";			// Absolute path to siir generator folder
var elements=new Array("h3","h2");		// Elements within this array will run SIIR
var settings=new Array();


//bg:0349B7 006DE7


/* MAIN MENU */
settings["h3"]=new Array();				// Element setting array

settings["h3"]["navi"]=new Array();				// Element setting array
settings["h3"]["navi"]["padding"]=3;
settings["h3"]["navi"]["paddingLeft"]=0;
settings["h3"]["navi"]["bgcolor"]="ffffff";
settings["h3"]["navi"]["transparentbg"]=0;			// Transparent background? (1=Yes, 0=No)
settings["h3"]["navi"]["font_color"]="818084";
settings["h3"]["navi"]["font_file"]="DXMd____.ttf";
settings["h3"]["navi"]["font_size"]=13;
settings["h3"]["navi"]["antialias"]=1;				// Turn on text antialiasing? (1=Yes, 0=No)
settings["h3"]["navi"]["resizevalue"]=1;				// Number of points to resize text by
settings["h3"]["navi"]["h"]=24;
settings["h3"]["navi"]["onMouseOver"]=new Array;
settings["h3"]["navi"]["onMouseOver"]["bgcolor"]="dce6f3";

settings["h2"]=new Array();				// Element setting array
settings["h2"]["main"]=new Array();				// Element setting array
settings["h2"]["main"]["padding"]=10;
settings["h2"]["main"]["paddingLeft"]=0;
settings["h2"]["main"]["bgcolor"]="ffffff";
settings["h2"]["main"]["transparentbg"]=0;			// Transparent background? (1=Yes, 0=No)
settings["h2"]["main"]["font_color"]="1a74b6";
settings["h2"]["main"]["font_file"]="DXMd____.ttf";
settings["h2"]["main"]["font_size"]=24;
settings["h2"]["main"]["antialias"]=1;				// Turn on text antialiasing? (1=Yes, 0=No)
settings["h2"]["main"]["resizevalue"]=3;				// Number of points to resize text by
settings["h2"]["main"]["h"]=0;

settings["h2"]["side"]=new Array();				// Element setting array
settings["h2"]["side"]["padding"]=5;
settings["h2"]["side"]["paddingLeft"]=5;
settings["h2"]["side"]["bgcolor"]="ffffff";
settings["h2"]["side"]["transparentbg"]=0;			// Transparent background? (1=Yes, 0=No)
settings["h2"]["side"]["font_color"]="1a74b6";
settings["h2"]["side"]["font_file"]="DXMd____.ttf";
settings["h2"]["side"]["font_size"]=14;
settings["h2"]["side"]["antialias"]=0;				// Turn on text antialiasing? (1=Yes, 0=No)
settings["h2"]["side"]["resizevalue"]=1;				// Number of points to resize text by
settings["h2"]["side"]["h"]=10;

settings["h3"]["main"]=new Array();				// Element setting array
settings["h3"]["main"]["padding"]=5;
settings["h3"]["main"]["paddingLeft"]=0;
settings["h3"]["main"]["bgcolor"]="dde7f3";
settings["h3"]["main"]["transparentbg"]=0;			// Transparent background? (1=Yes, 0=No)
settings["h3"]["main"]["font_color"]="1a74b6";
settings["h3"]["main"]["font_file"]="DXMd____.ttf";
settings["h3"]["main"]["font_size"]=12;
settings["h3"]["main"]["antialias"]=1;				// Turn on text antialiasing? (1=Yes, 0=No)
settings["h3"]["main"]["resizevalue"]=3;				// Number of points to resize text by
settings["h3"]["main"]["h"]=0;

// 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,transform) {
  txt=txt.replace(/<\/a>/gi,'');
	txt=txt.replace(/<a(.*?)>/gi,'');

	txt=decodeURI(txt);
	txt=txt.replace("&amp;","&");

	switch(transform){
		case 'uppercase':
			txt=txt.toUpperCase();
			break;
	}

	return txt;
}

function urlSafe(txt) {
	txt=encodeURIComponent(txt);
	return txt;
}

function readSafe(txt) {
	txt=txt.replace(/<br>/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];
			var thisclass=contain.className;
			var maxw=contain.offsetWidth?contain.offsetWidth:contain.clientWidth;

			if (typeof(settings[current_element][thisclass])=='undefined')
				continue;

			// Container to work with
			var c=d.createElement('div');
			c.className=current_element;
			if(thisclass){
				c.className+=' '+thisclass;
			}

			// Swap <element> tag with the container
			contain.parentNode.replaceChild(c,contain);

			// Set the "current_element.Text" variable
			var text=SIIR_normalizeWhiteSpace(contain.innerHTML);

			var thisid='';
			reg=/id/i;
			if (reg.test(text)){
				var thisid=SIIR_get_id(text);
			}

			var href='';
			reg=/href/i;
			if (reg.test(text)) {
				var href=SIIR_get_href(text);
			}

			text=SIIR_get_text(text,settings[current_element][thisclass]["transform"]);

			if(href||thisid){
				var link=d.createElement('a');
				if(href)
					link.href=href;
				if(thisid)
					link.id=thisid;
				c.appendChild(link);
				b=link;
			}else{
				b=c;
			}

			// The img html
			var img=d.createElement('img');
			img.className=thisclass;
			img.id=current_element;
			img.name=current_element;
	
			img.src=path+'generate.php?action=display&w='+settings[current_element][thisclass]["w"]+'&h='+settings[current_element][thisclass]["h"]+'&maxw='+maxw+'&padding='+settings[current_element][thisclass]["padding"]+'&paddingLeft='+settings[current_element][thisclass]["paddingLeft"]+'&transparentbg='+settings[current_element][thisclass]["transparentbg"]+'&bgcolor='+settings[current_element][thisclass]["bgcolor"]+'&font_color='+settings[current_element][thisclass]["font_color"]+'&font_file='+settings[current_element][thisclass]["font_file"]+'&font_size='+settings[current_element][thisclass]["font_size"]+'&antialias='+settings[current_element][thisclass]["antialias"]+'&text='+urlSafe(text);
			img.alt=readSafe(text);
			img.title=readSafe(text);
			if(settings[current_element][thisclass]["onMouseOver"]){
				addEvent(img,"mouseover",path+'generate.php?action=display&w='+settings[current_element][thisclass]["w"]+'&h='+settings[current_element][thisclass]["h"]+'&maxw='+maxw+'&padding='+settings[current_element][thisclass]["padding"]+'&paddingLeft='+settings[current_element][thisclass]["paddingLeft"]+'&transparentbg='+settings[current_element][thisclass]["transparentbg"]+'&bgcolor='+settings[current_element][thisclass]["onMouseOver"]["bgcolor"]+'&font_color='+settings[current_element][thisclass]["font_color"]+'&font_file='+settings[current_element][thisclass]["font_file"]+'&font_size='+settings[current_element][thisclass]["font_size"]+'&antialias='+settings[current_element][thisclass]["antialias"]+'&text='+urlSafe(text));
				addEvent(img,"mouseout",path+'generate.php?action=display&w='+settings[current_element][thisclass]["w"]+'&h='+settings[current_element][thisclass]["h"]+'&maxw='+maxw+'&padding='+settings[current_element][thisclass]["padding"]+'&paddingLeft='+settings[current_element][thisclass]["paddingLeft"]+'&transparentbg='+settings[current_element][thisclass]["transparentbg"]+'&bgcolor='+settings[current_element][thisclass]["bgcolor"]+'&font_color='+settings[current_element][thisclass]["font_color"]+'&font_file='+settings[current_element][thisclass]["font_file"]+'&font_size='+settings[current_element][thisclass]["font_size"]+'&antialias='+settings[current_element][thisclass]["antialias"]+'&text='+urlSafe(text));
			}

			b.appendChild(img);
		}
	}
}

function addEvent(elementObject,eventName,functionObject)
{
	var args=Array.prototype.slice.call(arguments,3);
	function wrapper(event){
		elementObject.src=functionObject;
	}
	if(document.addEventListener){
		elementObject.addEventListener(eventName,wrapper,false);
	}else if(document.attachEvent){
		elementObject.attachEvent("on"+eventName,wrapper);
	}
}

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]) {
				thisclass=document[elementid].className;
				text=document[elementid].alt;
				document[elementid].src=path+'generate.php?action=display&w='+settings[current_element][thisclass]["w"]+'&h='+settings[current_element][thisclass]["h"]+'&maxw='+maxw+'&padding='+settings[current_element][thisclass]["padding"]+'&transparentbg='+settings[current_element][thisclass]["transparentbg"]+'&bgcolor='+settings[current_element][thisclass]["bgcolor"]+'&font_color='+settings[current_element][thisclass]["font_color"]+'&font_file='+settings[current_element][thisclass]["font_file"]+'&font_size='+settings[current_element][thisclass]["font_size"]+'&antialias='+settings[current_element][thisclass]["antialias"]+'&text='+urlSafe(text);
			}
		}
	}
}

// SIIR - Onload call

function SIIR_init() {
	SIIR_replace();
}