var insyma = new InsymaUtilities();

function InsymaUtilities()
{
	this.window = new InsymaWindow();
	this.queryString = InsymaQueryString();
}


function InsymaWindow()
{
	this.getInnerHeight =  InsymaInnerHeight;
	this.getInnerWidth = InsymaInnerWidth;
	this.getScrollTop = InsymaScrollTop;
	this.getScrollLeft = InsymaScrollLeft;



// Eigenschaften und Methoden des insyma Window objekt

function InsymaInnerHeight()
{
	 var height = 0;
	  if( typeof( window.innerHeight) == 'number' )
	  {
	    //Non-IE
	   	height = window.innerHeight;
	  }
	  else if( document.documentElement && document.documentElement.clientHeight   )
	  {
	     //IE 6+ in 'standards compliant mode'
	    height = document.documentElement.clientHeight;
	  }
	  else if( document.body && document.body.clientHeight )
	  {
	    //IE 4 compatible
	    height = document.body.clientHeight;
	  }
	return height;
}

function InsymaInnerWidth()
{
	 var width = 0;
	  if( typeof( window.innerWidth ) == 'number' )
	  {
	    //Non-IE
	    width = window.innerWidth;
	  }
	  else if( document.documentElement && document.documentElement.clientWidth  )
	  {
	     //IE 6+ in 'standards compliant mode'
	    width = document.documentElement.clientWidth;
	  }
	  else if( document.body && document.body.clientWidth )
	  {
	    //IE 4 compatible
	    width = document.body.clientWidth;
	  }
	return width;
}


function InsymaScrollTop()
{
	var y;
	if (self.pageYOffset) // all except Explorer
	{
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	// Explorer 6 Strict
	{
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		y = document.body.scrollTop;
	}

	return y
}


function InsymaScrollLeft()
{
	var x;
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	// Explorer 6 Strict
	{
		x = document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		x = document.body.scrollLeft;
	}
	return x
}



}


function InsymaQueryString()
{
		var queryArray = new Array();
	    var query = window.location.search.substring(1);

		 var vars = query.split("&");
		 for (var i=0;i<vars.length;i++) {
			try{
		   		var pair = vars[i].split("=");
		   		var myString = new String(pair[0]);
		   		queryArray[myString] = pair[1];

		   } catch (e) {}
		 }
		  return queryArray;

}
function cssjs(a, o, c1, c2) {
        switch (a) {
        case 'swap':
            o.className = !cssjs('check', o, c1) ? o.className.replace(c2, c1) : o.className.replace(c1, c2);
            break;
        case 'add':
            if (!cssjs('check', o, c1)) {
                o.className += o.className ? ' ' + c1 : c1
            }
            break;
        case 'remove':
            if (cssjs('check', o, c1)) {
                var rep = o.className.match(' ' + c1) ? ' ' + c1 : c1;
                o.className = o.className.replace(rep, '')
            }
            break;
        case 'check':
            var found = false;
            var temparray = o.className.split(' ');
            for (var i = 0; i < temparray.length; i++) {
                if (temparray[i] == c1) {
                    found = true
                }
            }
            return found;
            break
        }
    }
function elmByClass(tagName, cName) {
        var el = document.getElementsByTagName(tagName);
        var els = new Array();
        if (cName) {
            for (var i = 0; i < el.length; i++) {
                if (cssjs("check", el[i], cName)) {
                    els.push(el[i])
                }
            }
        } else {
            for (var j = 0; j < el.length; j++) {
                els.push(el[j])
            }
        }
        return els
    }

// SPAM Schutz für E-Mail von HAEP eingefügt durch HAGS 14. Sept. 2007
function mt()
    {
        var atags = document.getElementsByTagName("a");
        var decoded = "";
        for (var i = 0; i < atags.length; i++) {
            if (atags[i].href.indexOf("L_") > -1) {
                var link = atags[i].href.substring(atags[i].href.indexOf("L_") + 2);
                link = link.replace(/__/g, ".").replace(/--/g, "@");
                decoded = decodemt(link);
                if (atags[i].innerHTML.indexOf("L_") > -1 && atags[i].innerHTML.indexOf("L_") < 2) {
                    atags[i].innerHTML = decoded
                }
                if (atags[i].title.indexOf("L_") > -1) {
                    atags[i].title = decoded
                }
                atags[i].href = 'mailto:' + decoded.replace(">naps/<","").replace("E3%naps/C3%","");
            }
        }
        
        var spantags = elmByClass('span', 'encoding_mail');
        for (var i = 0; i < spantags.length; i++) {
            if (spantags[i].innerHTML.indexOf("L_") > -1) {
                var link = spantags[i].innerHTML.substring(spantags[i].innerHTML.indexOf("L_") + 2);
                link = link.replace(/__/g, ".").replace(/--/g, "@");
                decoded = decodemt(link);
                
                spantags[i].innerHTML = decoded;
            }
        }
    }    
    
    function decodemt(adresse)
    {   
        var result ="";
        var chr 
        for (var i = 0; i < adresse.length; i++) 
        { 
            chr = adresse.charAt(i);
            /*if (chr == "__"){chr = "."}
            if (chr == "}"){chr = "@"}*/
            result = chr + result ;
        }
        return result;
    }
	
function addEvent(elm, evType, fn, useCapture){
	if (elm.addEventListener){
 		elm.addEventListener(evType, fn, useCapture);
 		return true;
 	} else if (elm.attachEvent) {
 		var r = elm.attachEvent('on' + evType, fn);
 		return r;
 	} else {
 		elm['on' + evType] = fn;
 	}
 }
addEvent(window,'load',mt,false);
