/*********************************************
**** framebuster
***/
if (top.location != window.location) {
	alert('Die Webseite wird von einer anderen Adresse aufgerufen.\nDie offizielle Adresse ist http://lkb.leven.ch, du wirst nun auf diese umgeleitet.\nBitte ändere gegebenenfalls deine Lesezeichen/Favoriten.');
	top.location.replace(self.location.href);
}


/*********************************************
**** bildwechsel funktionen
***/

function lkb__swapImgRestore() { 
	var i,x,a=document.lkb__sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function lkb__preloadImages() { 
	var d=document; if(d.images){ if(!d.lkb__p) d.lkb__p=new Array();
	var i,j=d.lkb__p.length,a=lkb__preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.lkb__p[j]=new Image; d.lkb__p[j++].src=a[i];}}
}

function lkb__findObj(n, d) { 
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=lkb__findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function lkb__swapImage() { 
	var i,j=0,x,a=lkb__swapImage.arguments; document.lkb__sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=lkb__findObj(a[i]))!=null){document.lkb__sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/*********************************************
**** formularelemente faden
***/

var formStartColorHex = "#ffffff";
var formEndColorHex = "#eeeeee";

var formStepIn = 20;
var formStepOut = 25;


addEvent(window, 'load', fade_init);

function addEvent(obj, evType, fn){ 
  if (obj.addEventListener){ 
    obj.addEventListener(evType, fn, false); 
    return true; 
  } else if (obj.attachEvent){ 
    var r = obj.attachEvent("on"+evType, fn); 
    return r; 
  } else { 
    return false; 
  } 
}


var hexa = new Array(16);
hexa[0] = 0;
hexa[1] = 1;
hexa[2] = 2;
hexa[3] = 3;
hexa[4] = 4;
hexa[5] = 5;
hexa[6] = 6;
hexa[7] = 7;
hexa[8] = 8;
hexa[9] = 9;
hexa[10]="a";
hexa[11]="b";
hexa[12]="c";
hexa[13]="d";
hexa[14]="e";
hexa[15]="f";



function fade_init() {
  formStartColor = dehexize(formStartColorHex.toLowerCase());
  formEndColor = dehexize(formEndColorHex.toLowerCase());

  for (i=0; i<document.forms.length; i++) {
    theForm = document.forms[i];
    j = 0;
    while (theForm.elements[j]) {
      var element = theForm.elements[j];
      j++;
      if (element.type == "text" || element.type == "password" || element.type == "textarea" || element.type == "file") {
        if (element.style) {
          element.onfocus = doFormFocus;
          element.onblur = doFormBlur;
          if (!element.id) {
            element.id = "formelement"+i+j;
          }
        }
      }
    }
  }
}

// form handler
function doFormFocus(e) {
  element = null;
  if (document.all && window.event.srcElement.id) {
    element = ""+window.event.srcElement.id;
  } else if (document.getElementById) {
    if (e.target.id) {
      element = ""+e.target.id;
    } else if (e.target.parentNode.id) {
      element = ""+e.target.parentNode.id;
    }
  }
  if (element != null) {
    fade(formStartColor, formEndColor, element, formStepIn, "background");
  }
}

function doFormBlur(e) {
  element = null;
  if (document.all && window.event.srcElement.id) {
    element = ""+window.event.srcElement.id;
  } else if (document.getElementById) {
    if (e.target.id) {
      element = ""+e.target.id;
    } else if (e.target.parentNode.id) {
      element = ""+e.target.parentNode.id;
    }
  }
  if (element != null) {
    fade(formEndColor, formStartColor, element, formStepOut, "background");
  }
}


function dehexize(color) {
  var colorArray = new Array(3);
  for (i=1; i<7; i++) {
    for (j=0; j<16; j++) {
      if (color.charAt(i) == hexa[j]) {
        if (i%2 !=0) {
          colorArray[Math.floor((i-1)/2)] = eval(j)*16;
        } else {
          colorArray[Math.floor((i-1)/2)] += eval(j);
        }
      }
    }
  }
  return colorArray;
}

function hex(i) {
  if (i < 0) {
    return "00";
  } else if (i > 255) {
    return "ff";
  } else {
    return "" + hexa[Math.floor(i/16)] + hexa[i%16];
  }
}

function setColor(r, g, b, element, styletype) {
  var hr = hex(r);
  var hg = hex(g);
  var hb = hex(b);
  if (document.all && document.all[element]) {
    if (styletype == "color") {
      document.all[element].style.color = "#"+hr+hg+hb;
    } else if (styletype == "background") {
      document.all[element].style.backgroundColor = "#"+hr+hg+hb;
    }
  } else if (document.getElementById && document.getElementById(element)) {
    if (styletype == "color") {
      document.getElementById(element).style.color = "#"+hr+hg+hb;
    } else if (styletype == "background") {
      document.getElementById(element).style.backgroundColor = "#"+hr+hg+hb;
    }
  }
}

function fade(s, e, element, step, style) {
  var sr = s[0];
  var sg = s[1];
  var sb = s[2];
  var er = e[0];
  var eg = e[1];
  var eb = e[2];
  
  for (i=0; i<=step; i++) {
    red = Math.floor(sr * ((step - i)/ step) + er * (i/step));
    green = Math.floor(sg * ((step - i)/ step) + eg * (i/step));
    blue = Math.floor(sb * ((step -i)/ step) + eb * (i/step));
    setTimeout("setColor("+red+", "+green+", "+blue+", '"+element+"', '"+style+"');", i*step);
  }
}


function element_fadein(id, opacity) {
	if (!opacity) opacity = 0;
	opacity = (opacity+0.08).toFixed(2);
	
	var element = document.getElementById(id);

	if (opacity <= 1) {
		if (typeof element.style.filter != "undefined") {
			element.style.filter = "Alpha(opacity="+Math.round(opacity*100)+")";
		} else if (typeof element.style.opacity != "undefined") {
			element.style.opacity = opacity;
		} else if (typeof element.style.MozOpacity != "undefined") {
			element.style.MozOpacity = opacity;
		}  
		window.setTimeout("element_fadein('"+id+"', "+opacity+");", 25);
	} else {
		
	}
}

/*********************************************
**** xmlrequest instanzieren
***/

function getXMLRequest() {
	var xmlRequest;
	
	if (typeof XMLHttpRequest != 'undefined') { // Mozilla, Opera, Safari sowie Internet Explorer 7
		xmlRequest = new XMLHttpRequest();
	} else { // IE 6
		try {
			xmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlRequest = false;
			}
		}
	}
	
	return xmlRequest;
}


/*********************************************
**** allgemeine abmeldefunktion
***/

function do_logout() {
	var xmlRequest = getXMLRequest();
	
	xmlRequest.open('get', '/forum/login.php?logout=true', true);
	xmlRequest.onreadystatechange = function () {
		if (xmlRequest.readyState == 4) {
			//alert(xmlRequest.responseText);
			alert('Du wurdest abgemeldet.');
			location.reload();
		}
	};
	xmlRequest.send(null);
}
