function resizeImage(id,w,h){
	var obj=document.getElementById(id);
	var image = new Image();
	image.width=w;
	image.height=h;
	image.name=id;
	image.onload = function() {
		var obj=document.getElementById(this.name);
		var ratio1=(parseInt(obj.style.height)/parseInt(obj.style.width));
		if(this.naturalHeight==undefined) var ratio2=(this.height/this.width);
		else var ratio2=(this.naturalHeight/this.naturalWidth);
		var boxHeight=parseInt(obj.style.height);
		var boxWidth=parseInt(obj.style.width);
		if(ratio1>ratio2) {
			//wide
			obj.style.width=boxHeight/ratio2+'px';
		} else {
			//height
			obj.style.height=(boxWidth*ratio2)+'px';
			obj.style.marginTop=-((boxWidth*ratio2)-boxHeight)/2+'px';
		}
	};
	image.src = obj.src;
}

function drawBGDiv(id){ if(document.getElementById(id+'ContentDiv')==null) {
	var bgDiv=document.createElement("div");
	bgDiv.id=id+'BGDiv';
	bgDiv.name=id+'BGDiv';
	bgDiv.style.zIndex='100';
	bgDiv.style.position='absolute';
	bgDiv.style.background='#000000';
	bgDiv.style.top=(Math.max(document.documentElement.scrollTop,document.body.scrollTop))+'px';
	bgDiv.style.left='0px';
	bgDiv.style.width=document.documentElement.clientWidth+'px';
	bgDiv.style.height=document.documentElement.clientHeight+'px';
	bgDiv.style.filter = "alpha(opacity:70)";
	bgDiv.style.KHTMLOpacity = bgDiv.style.MozOpacity = bgDiv.style.opacity = 0.7;
	document.getElementsByTagName('body')[0].appendChild(bgDiv);
}}

function removeBGDiv(id){ if(document.getElementById(id+'ContentDiv')!=null) document.getElementsByTagName('body')[0].removeChild(document.getElementById(id+'BGDiv')); }

function drawWaitDiv(id){ if( document.getElementById(id+'WaitDiv')==null ) {
	var bgDiv=document.createElement("div");
	bgDiv.id=id+'WaitDiv';
	bgDiv.name=id+'WaitDiv';
	bgDiv.style.zIndex='150';
	bgDiv.style.position='absolute';
	bgDiv.style.top=(Math.max(document.documentElement.scrollTop,document.body.scrollTop))+(document.documentElement.clientHeight-100)/2+'px';
	bgDiv.style.left=(document.documentElement.clientWidth-100)/2+'px';
	bgDiv.style.width='100px';
	bgDiv.style.height='100px';
	bgDiv.style.background = "url('script/pics/wait.gif')";
	bgDiv.style.filter = "alpha(opacity:90)";
	bgDiv.style.KHTMLOpacity = bgDiv.style.MozOpacity = bgDiv.style.opacity = 0.9;
	document.getElementsByTagName('body')[0].appendChild(bgDiv);
}}
function removeWaitDiv(id){ if(document.getElementById(id+'WaitDiv')!=null) document.getElementsByTagName('body')[0].removeChild(document.getElementById(id+'WaitDiv')); }

function drawContentDiv(id,w,h,opaque){ if(document.getElementById(id+'ContentDiv')==null) {
	if(opaque==undefined) opaque=true;;
	var bgDiv=document.createElement("div");
	bgDiv.id=id+'ContentDiv';
	bgDiv.name=id+'ContentDiv';
	bgDiv.style.zIndex='110';
	bgDiv.style.position='absolute';
	bgDiv.style.top=(Math.max(document.documentElement.scrollTop,document.body.scrollTop))+(document.documentElement.clientHeight-h)/2+'px';
	bgDiv.style.left=(document.documentElement.clientWidth-w)/2+'px';
	bgDiv.style.width=w+'px';
	bgDiv.style.height=h+'px';
	if(opaque) {
		bgDiv.style.padding='1px';
		bgDiv.style.background = "#eeeeee";
	}
	bgDiv.style.overflow= "auto";
	document.getElementsByTagName('body')[0].appendChild(bgDiv);
}}
function removeContentDiv(id){ if(document.getElementById(id+'ContentDiv')!=null) document.getElementsByTagName('body')[0].removeChild(document.getElementById(id+'ContentDiv')); }
function setContentDiv(id,html){ if(document.getElementById(id+'ContentDiv')!=null) document.getElementById(id+'ContentDiv').innerHTML=html }

function numberFormat(x) { 
  var k = (Math.round(x * 100) / 100).toString(); 
  k += (k.indexOf('.') == -1)? '.00' : '00'; 
  k = k.substring(0, k.indexOf('.') + 3).replace('.',',');
  if(k.length>6) k=k.substring(0,k.indexOf(',')-3)+'.'+k.substring(k.indexOf(',')-3);
  return k;
}  

function dateFormat(str) {
	var monate=Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
	str=str.split('.');
	if( parseInt(str[0])<10 ) str[0]='0'+str[0];
	str[1]=monate[str[1]-1];
	return(str[0]+'.'+str[1]+' '+str[2]);
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+";";
}

function addCookieArray(name,value){
	var old=readCookie(name);
	if(old==null) old='';
	old=old.split('-');
	var add=true;
	for(var i=0;i<old.length;i++) if(value==old[i]) {
		add=false;
		break;
	}
	for(var i=0;i<old.length;i++) if(''==old[i]) {
		old.splice(i,1);
	}
	if(add) old.push(value);
	createCookie(name,old.join('-'),100)
}

function removeCookieArray(name,value){
	var old=readCookie(name);
	if(old==null) old='';
	old=old.split('-');
	var add=true;
	for(var i=0;i<old.length;i++) if(value==old[i]) {
		old.splice(i,1);
		break;
	}
	createCookie(name,old.join('-'),100)
}

function formCheck(target){
	var error='';
	var elems=target.getElementsByTagName('input');
	var oldname='';
	var selected=false;
	for(var i in elems) if(elems[i].name) { if( elems[i].name[elems[i].name.length-1]=='*' ) {
		if( elems[i].type=='radio' ) {
			if(elems[i].name!=oldname) {
				if(selected==false && oldname!='') error+=" - "+oldname+"\n";
				oldname=elems[i].name;
				selected=false;
				if( elems[i].checked ) selected=true;
			} else {
				if( elems[i].checked ) selected=true;
			}
		}
		else if( elems[i].type=='checkbox' ) {
			if(selected==false && oldname!='') { error+=" - "+oldname+"\n";oldname=''; selected=false; }
			if( !elems[i].checked ) error+=" - "+elems[i].name+"\n";
		} else {
			if(selected==false && oldname!='') { error+=" - "+oldname+"\n";oldname=''; selected=false; }
			if( elems[i].value=='' ) error+=" - "+elems[i].name+"\n";
		}
	}}
	if(selected==false && oldname!='') { error+=" - "+oldname+"\n";oldname=''; selected=false; }
	elems=target.getElementsByTagName('textarea');

	for(var i in elems) if(elems[i].name) { if( elems[i].name[elems[i].name.length-1]=='*' ) {
		if( elems[i].value=='' ) error+=" - "+elems[i].name+"\n";
	}}
	if(error!='') {
		alert("Please fill out:\n\n"+error);
		return false;
	} else return true;
}

function array2str_new(array,depth) {
		var length=0;
		for(var i in array) length++;
		if(depth==undefined) depth=0;
		var string = '';
		var counter=0;
		for(var i in array) if(i!="") {
			string += '<%NAME%>' + i + '</%NAME%>';
			if(array[i] instanceof Array) {
				string += '<%VALUE%>' + array2str_new(array[i],depth+1) + '</%VALUE%>';
			} else {
				string += '<%VALUE%>' + array[i] + '</%VALUE%>';
			}
			if(counter<length-1) string += '<%NEXT'+depth+'%>';
			counter++;
		}	
		return string;
}


function array2str(array,depth) {
		var length=0;
		for(var i in array) length++;
		if(depth==undefined) depth=0;
		var string = '';
		var counter=0;
		for(var i in array) if(i!="") {
			string += '<%NAME%>' + i + '</%NAME%>';
			if(array[i] instanceof Array) {
				string += '<%VALUE%>' + array2str(array[i],depth+1) + '</%VALUE%>';
			} else {
				string += '<%VALUE%>' + array[i] + '</%VALUE%>';
			}
			if(counter<length-1) string += '<%NEXT'+depth+'%>';
			counter++;
		}	
		return string;
}

function str2array(str,depth) {
		if(depth==undefined) depth=0;
		var array=Array();
		var tmpArray=str.split('<%NEXT'+depth+'%>');
		for(var i in tmpArray){
			var start=tmpArray[i].indexOf('<%NAME%>')+8;
			var end=tmpArray[i].indexOf('</%NAME%>');
			var name=tmpArray[i].substr(start,end-start);
			var start=tmpArray[i].indexOf('<%VALUE%>')+9;
			var end=tmpArray[i].lastIndexOf('</%VALUE%>');
			var value=tmpArray[i].substr(start,end-start);
			if(value.indexOf('<%NAME%>')>-1) {
				array[name]=str2array(value,depth+1);
			} else {
				array[name]=value;
			}
		}
		return array;
}


fadeTimeout=Array();
fadeHeight=Array();
fadeObj=Array();

function fadeIn(obj,name) {
	clearTimeout(fadeTimeout[name]);
	if(fadeObj[name]!=undefined) obj=fadeObj[name];
	if(obj!=undefined) {
		obj.style.display='block';
		if(fadeHeight[name]==undefined) {
			fadeObj[name]=obj;
			obj.style.height='auto';
			fadeHeight[name]=parseInt(obj.offsetHeight);
			obj.style.height='0px';
		}
		obj.style.height=Math.min(fadeHeight[name],(parseInt(obj.style.height)+30)) + 'px';
		if( parseInt(obj.style.height)<fadeHeight[name] )
			fadeTimeout[name]=setTimeout("fadeIn(undefined,'"+name+"')",20);
	}
}
function fadeOut(obj,name) {
	clearTimeout(fadeTimeout[name]);
	fadeTimeout[name]=setTimeout("fadeOutB(undefined,'"+name+"')",400);
}
function fadeOutB(obj,name) {
	clearTimeout(fadeTimeout[name]);
	if(fadeObj[name]!=undefined) obj=fadeObj[name];
	if(obj!=undefined) {
		obj.style.display='block';
		obj.style.height=Math.max(0,(parseInt(obj.style.height)-30)) + 'px';
		if( parseInt(obj.style.height)>0 ) fadeTimeout[name]=setTimeout("fadeOutB(undefined,'"+name+"')",20);
		else obj.style.display='none';
	}
}

function strip_tags(input, allowed) {
    allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
    var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
        commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
    return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
    });
}
