    treffer = 0;
    punkte = 0;
    wind = false;
    i = 1;
    m = 0;
    timeflag=1;
    mouseup=0;
    mousedown=1;
    tx = 50;
    ty = 500;
    wall_width=100;
    wall_height=100;
    wall_top=ty+20-wall_height;
    wall_left=300;
    speed=0;
    zeit=0;
    versuche = 1;

    function visibility(Ereignis, state)
    {
         var x;
         var y;
         if (!Ereignis)
           Ereignis = window.event;
         if (document.getElementById) {
           x = (parseInt(Ereignis.clientX)+5) + "px";
           y = (parseInt(Ereignis.clientY)+5) + "px";
         } else if (document.all) {
           x = Ereignis.clientX;
           y = Ereignis.clientY;
         }
         switch(state){
         	case 'show' : document.getElementById('hidden').style.top = y;
         		      document.getElementById('hidden').style.left = x;
                 	      document.getElementById('hidden').style.visibility = 'visible';
                 	      break;
         	case 'hide' : document.getElementById('hidden').style.top = "0px";
         		      document.getElementById('hidden').style.left = "0px";
			      document.getElementById('hidden').style.visibility = 'hidden';
                 	      break;
                 default: break;
         }

    }

    function initialize(){
    	document.getElementById("ground").style.top = (ty+12)+"px";
        	document.getElementById("tank").style.top = ty+"px";
    	document.getElementById("tank").style.left = tx+"px";
    	document.getElementById("wall").style.width = wall_width+"px";
    	document.getElementById("wall").style.height = wall_height+"px";
    	document.getElementById("wall").style.top = wall_top+"px";
    	document.getElementById("wall").style.left = wall_left+"px";
    	document.getElementById('bullet').style.visibility = 'hidden';
	document.getElementById('bullet').style.top = ty+"px";
	document.getElementById('bullet').style.left = tx+"px";
         document.getElementById('power').style.width = "10px";
         if(wind == false && typeof(wind)=='boolean'){
         	createWind();
                 createTarget();
         }
         wwind = wind;
         timeflag = 1;
    }

    function Random(x)
    {
    	return Math.floor(x*Math.random())
    }

    function createTarget()
    {
         var left = wall_left+wall_width+Random(300);
         document.getElementById("target").style.top = "500px";
         document.getElementById("target").style.left = left+"px";
    }

    function createWind()
    {
         wind = Random(10)-5;
         var char = '';
         if(wind > 0){
         	for(var count=0; count<wind; count++)
                 	char += '»'
         }
         else if(wind < 0){
         	for(var count=0; count>wind; count--)
                 	char += '«'
         }
         document.getElementById("windbox").firstChild.data = char;
    }

    function shoot(Ereignis)
    {
    	var x;
	var y;
	if (!Ereignis)
		Ereignis = window.event;
	x = (parseInt(Ereignis.clientX)+5);
	y = (parseInt(Ereignis.clientY)+5);
	m = (y - ty)/(x - tx);
         if(m<=1)
         	m = -1*m;
	document.getElementById('bullet').style.visibility = 'visible';
	flying = setInterval("fly("+x+","+y+")", 10);
    }

    function fly(maxX,maxY){
         wwind = wwind+wwind*0.005;
         x = tx + Math.round((speed*Math.cos(Math.atan(m))+wwind)*i);
         y = ty - Math.round((speed*i*Math.sin(Math.atan(m))-5*i*i));
         if(y>(ty+1) || hitWall(x,y)){
                 i=1;
                 if(versuche == 1){
                 	var text = "1 Versuch";
                         if(typeof(fade)!='undefined')
                         	clearTimeout(fade);
                         document.getElementById("info").style.color = '#000';
                         fade=setInterval("fadeText('"+text+"')",25);
                 }
                 else {
                         var text = versuche+" Versuche";
                         if(typeof(fade)!='undefined')
                         	clearTimeout(fade);
                         document.getElementById("info").style.color = '#000';
                         fade=setInterval("fadeText('"+text+"')",25);
                 }
                 versuche++;
                 initialize();
                 clearInterval(flying);
         }
         else if(hitTarget(x,y)){
                 i=1;
                 punkte += Math.round(100/versuche);
                 document.getElementById('punktbox').firstChild.data = punkte;
                 treffer++;
                 document.getElementById('trefferbox').firstChild.data = treffer;
                 var text = "Getroffen beim "+versuche+". Versuch";
                 if(typeof(fade)!='undefined')
                         	clearTimeout(fade);
                 document.getElementById("info").style.color = '#000';
                 fade=setInterval("fadeText('"+text+"')",25);
                 wind=false;
                 versuche = 1;
                 initialize();
                 clearInterval(flying);
         }
         else{
                 document.getElementById('bullet').style.top = y+"px";
	        document.getElementById('bullet').style.left = x+"px";
	        i+= 0.05;
         }
    }

    function hitWall(x,y){
    	if((x+19) >= wall_left &&
            x <= (wall_left+wall_width) &&
            (y+20) >= wall_top
           )
         	return true;
         else
         	return false;
    }

    function hitTarget(x,y){
         if((x+19) >= parseInt(document.getElementById("target").style.left) &&
            x <= parseInt(document.getElementById("target").style.left)+20 &&
            (y+20) > parseInt(document.getElementById("target").style.top)
           )
         	return true;
         else
         	return false;
    }

    size=16;
    function fadeText(text)
    {
         if(size >= 50){
                 size=16;
                 clearInterval(fade);
                 delete(fade);
                 document.getElementById("info").style.color = '#eee';
         }
         else {
                 var rgb = document.getElementById("info").style.color;
                 if(rgb.substr(0,3)=='rgb'){
	                 rgb = rgb.substr(4,rgb.length-5);
	                 var farben = rgb.split(",");
	                 for(var j=0; j<3; j++){
	                         farben[j] = parseInt(farben[j])+8;
	                         if(farben[j] >= 255)
	                                 farben[j] = 255;
	                 }
                 	 document.getElementById("info").style.color = 'rgb('+farben[0]+','+farben[1]+','+farben[2]+')';
                 }
                 else{
	                 rgb = getHexRGB(rgb);
                          var farben = rgb.split(",");
	                 var hexcode="#";
	                 for(var j=0; j<3; j++){
	                         farben[j] = parseInt(farben[j])+8;
	                         if(farben[j] >= 255)
	                                 farben[j] = 255;
                                  farben[j] = DezimalToHex(farben[j]);
                                  if(farben[j].length == 1)
                                  	farben[j] = 0+farben[j];
	                         hexcode += farben[j];
	                 }
                          document.getElementById("info").style.color = hexcode;
                 }
                 size++;
                 document.getElementById("info").firstChild.data = text;
         	document.getElementById("info").style.fontSize = size +"px";
         }
    }

    function getHexRGB(color)
    {
    	if(color.substr(0,1)=='#')
	 	color = color.substr(1,color.length);
         if(color.length==3)
         	color += color;
    	var r = HexToDezimal(color.substr(0,2));
    	var g = HexToDezimal(color.substr(2,2));
    	var b = HexToDezimal(color.substr(4,2));
         var result = r+","+g+","+b;
         return result;
    }

    function HexToDezimal(hex)
    {
         var number = 0;
         var x;
         var value;
         hex=hex.toLowerCase();
         hex=strRev(hex);
         for(var j=0; j<hex.length; j++){
                 x = hex.substr(j,1);
                 switch(x){
	                  case 'a' : value = 10;
                           	break;
	                  case 'b' : value = 11;
                           	break;
	                  case 'c' : value = 12;
                           	break;
                           case 'd' : value = 13;
                           	break;
                           case 'e' : value = 14;
                           	break;
                           case 'f' : value = 15;
                           	break;
                           default: value = parseInt(x);
                           	break;
                 }
         	number += Math.pow(16,j)*value;
         }
         return number;

    }

    function DezimalToHex(dezimal)
    {
    	var counter = dezimal;
	var result ='';
         var rest;
  	var hexcode = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
         while(counter>=1){
         	rest = counter%16;
                 result += hexcode[rest];
         	counter = Math.floor(counter/16);
         }
         return strRev(result);
    }

    function strRev(str)
    {
             if (!str) return "";
             var revst="";
             for (var i = str.length-1; i>=0; i--)
                     revst+=str.charAt(i)
             return revst;
    }

    function takeTime()
    {
         if(timeflag==1 && mousedown == 1){
                 mousedown = 0;
                 mouseup = 1;
                 var time = new Date();
		zeit = time.getTime();
		timer = setInterval("grow()",50);
         }
    }

    function stopTime(Ereignis)
    {
         if(timeflag==1 && mouseup == 1){
                  mousedown = 1;
                  mouseup = 0;
                  timeflag = 0;
	         if (!Ereignis)
	                 Ereignis = window.event;
	         clearInterval(timer);
	         var time = new Date();
	         zeit = time.getTime()-zeit;
	         zeit /=1000;
	         speed = 50+zeit*20;
	         shoot(Ereignis);
         }
    }

    function grow()
    {
    	document.getElementById('power').style.width = parseInt(document.getElementById('power').style.width)+1+"px";
    }

    document.onmousedown = takeTime;
    document.onmouseup = stopTime;