

function toggle_layer(id,st)
{
  var layer = document.getElementById(id);
  if(st==1)
  {
    layer.style.display = 'block';
	layer.style.visibility = 'visible';
  }
  else
  {
    layer.style.display = 'none';
	layer.style.visibility = 'hidden';
  }
}

function url_confirm(url)
{
  if(confirm('Sicher dass du da klicken wolltest?')) document.location.href=url;
  return false;
}




function opacity(id, opacStart, opacEnd, millisec) {
	opacity_fps(id, opacStart, opacEnd, millisec);
}

function dummy_opa() {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			i--;
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			i++;
            timer++;
        }
    }
}


function opacity_fps(id, opacStart, opacEnd, millisec) {
	var deffps = 20;
	var minframetime = millisec / (Math.abs(opacEnd - opacStart));
	var fps = 1000 / minframetime;
	if(fps > deffps) fps = deffps;
	var frametime = 1000 / fps;	
	var dx = (opacEnd - opacStart) / millisec;
	var end = Math.round(millisec / frametime);
	var opac = lopac = -1;
    for(i = 0; i <= end; i++) {
		opac = (i == end) ? opacEnd : Math.round( opacStart + i*dx*frametime );
	    setTimeout("changeOpac(" + opac + ",'" + id + "')",Math.round(i * frametime));
		//document.write('i: '+i+' dx: '+dx+' fps: '+fps+' opac: '+opac+' time: '+(i*frametime)+'<br />\r\n');
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 


function getHTTP(url,fkt) {
	var xmlHttp = false;
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined') {
	    xmlHttp = new XMLHttpRequest();
	}
	if (!xmlHttp) {
	    // Internet Explorer 6 und älter
	    try {
	        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch(e) {
	        try {
	            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch(e) {
	            xmlHttp  = false;
	        }
	    }
	}
	if (xmlHttp) {
	    xmlHttp.open('GET', url, true);
	    xmlHttp.onreadystatechange = function () {
	        if (xmlHttp.readyState == 4) {
	            eval(fkt+'(xmlHttp.responseText);');
	        }
	    }
	    xmlHttp.send(null);
	}
}

function encode_base64(d) {
	var r=[]; var i=0; var dl=d.length;
	// Padding vorbereiten
	if ((dl%3) == 1) {
		d[d.length] = 0; d[d.length] = 0;
	}
	if ((dl%3) == 2)
		d[d.length] = 0;
	// Konvertieren
	while (i<d.length) {
		r[r.length] = b64[d[i]>>2];
		r[r.length] = b64[((d[i]&3)<<4) | (d[i+1]>>4)];
		r[r.length] = b64[((d[i+1]&15)<<2) | (d[i+2]>>6)];
		r[r.length] = b64[d[i+2]&63];
		if ((i%57)==54)
			r[r.length] = "\n";
		i+=3;
	}
	// padding abschließen
	if ((dl%3) == 1)
		r[r.length-1] = r[r.length-2] = "=";
	if ((dl%3) == 2)
		r[r.length-1] = "=";
	// Array in text zusammenführen
	var t=r.join("");
	return t;
}

function b64t2d(t) {
	var d=new Array; var i=0;
	b64arrays();
	// here we fix this CRLF sequenz created by MS-OS; arrrgh!!!
	t=t.replace(/\n|\r/g,""); t=t.replace(/=/g,"");
	while (i<t.length) {
		d[d.length] = (f64[t.charAt(i)]<<2) | (f64[t.charAt(i+1)]>>4);
		d[d.length] = (((f64[t.charAt(i+1)]&15)<<4) | (f64[t.charAt(i+2)]>>2));
	  	d[d.length] = (((f64[t.charAt(i+2)]&3)<<6) | (f64[t.charAt(i+3)]));
	  	i+=4;
	}
	if (t.length%4 == 2)
		d = d.slice(0, d.length-2);
	if (t.length%4 == 3)
		d = d.slice(0, d.length-1);
	return d;
}

function utf8d2t(d)	{
	var r=new Array; var i=0;
	while(i<d.length) {
		if (d[i]<128) {
			r[r.length]= String.fromCharCode(d[i]); i++;
		} else if((d[i]>191) && (d[i]<224)) {
			r[r.length]= String.fromCharCode(((d[i]&31)<<6) | (d[i+1]&63)); i+=2;
		} else {
			r[r.length]= String.fromCharCode(((d[i]&15)<<12) | ((d[i+1]&63)<<6) | (d[i+2]&63)); i+=3;
		}
	}
	return r.join("");
}

function b64arrays() {
	var b64s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
	b64 = new Array();f64 =new Array();
	for (var i=0; i<b64s.length ;i++) {
		b64[i] = b64s.charAt(i);
		f64[b64s.charAt(i)] = i;
	}
}
