var u_id = null;

function getProgress(){
/*
  new Ajax.Updater('tester', '/classes/getprogress.php', {
    method:'get',
    parameters: {progress_key: u_id, limit: u_id.length},
  });
*/

  new Ajax.Request('/classes/getprogress.php',
  {
    method:'get',
    parameters: {progress_key: u_id, limit: u_id.length, ui: Math.random()},
    
    onSuccess: function(transport){
    
      var response = transport.responseText;
      var up_data = response.evalJSON();
      
      var percent = 100 / up_data.bytes_total * up_data.bytes_uploaded;
      new Effect.Morph('progressinner', {style:'width:' + percent + '%', duration:'1.8'});
      
      var up_bytes = up_data.bytes_uploaded  / 1024; 
      var up_bytes_total = up_data.bytes_total / 1024; 
      
      if(up_bytes > 1000) 
        up_bytes_ausgabe = number_format (up_bytes/1024 , 2, ".") + 'MB'
      else
       up_bytes_ausgabe = number_format (up_bytes , 2, ".") + 'kB'

      if(up_bytes_total > 1000) 
        up_bytes_total_ausgabe = number_format (up_bytes_total/1024 , 2, ".") + 'MB'
      else
       up_bytes_total_ausgabe = number_format (up_bytes_total, 2, ".") + 'kB'
      
      up_speed_ausgabe = number_format (up_data.speed_last/1024, 2, ".") + 'kB'
      up_speed_av_ausgabe = number_format (up_data.speed_average/1024, 2, ".") + 'kB'
      
      
    
      if(up_data) {
        document.getElementById('up_percent').innerHTML = Math.round(percent) + '%';
        document.getElementById('up_filename').innerHTML = ' <div style="float:right; text-align:right;">(' + up_speed_ausgabe + ') Average ' + up_speed_av_ausgabe + '<br>(' + up_bytes_ausgabe + ') Total ' + up_bytes_total_ausgabe + '</div> Uploading: <b>' + up_data.filename + '</b><br>noch ' + trans_sec(up_data.est_sec);
        document.getElementById("progressouter").style.display="block";
      }
      
      else {
        document.getElementById('progressinner').style.width = '100%';
        document.getElementById('up_percent').innerHTML = 'Bitte warten...';
        document.getElementById('up_filename').innerHTML = '';
      }      

      if (percent >= 100){
        
        //clearInterval(getProgress);
        //setTimeout("getProgress()", 1000);
      }      

    },
    onFailure: function(){ alert('Something went wrong...') }
  });
}


function startProgress(){
    if(u_id) {
      document.getElementById("progressouter").style.display="block";
      setInterval("getProgress()", 1500);
    }
}


function CDownloadUrl(method, url, func) {

   
   var httpObj;
   var browser = navigator.appName;
   if(browser.indexOf("Microsoft") > -1)
      httpObj = new ActiveXObject("Microsoft.XMLHTTP");
   else
      httpObj = new XMLHttpRequest();
 

    httpObj.onreadystatechange = function() {
   alert(httpObj.readyState);
  
      if(httpObj.readyState == 4){


         if (httpObj.status == 200) {
            var contenttype = httpObj.getResponseHeader('Content-Type');
            if (contenttype.indexOf('xml')>-1) {
               func(httpObj.responseXML);
   alert('test');
            } else {
   alert('test');
               func(httpObj.responseText);
            }
         } else {
            func('Error: '+httpObj.status);
         }
      }
   };
   httpObj.open(method, url, true);

   httpObj.send(null);
}


function q_invite(foo) {
  return false;
}

function mini(button,ziel_id) {
  
  if(document.getElementById(ziel_id).style.display == 'none') {
     //document.getElementById(ziel_id).style.display = ''; 
     Effect.Appear(ziel_id, { duration: 0.3 });
     button.value='-';
     button.alt='einklappen';
  } 
  else {
     Effect.Fade(ziel_id, { duration: 0.2 });
    //document.getElementById(ziel_id).style.display = 'none'; 
    button.value='+'; 
    button.alt='ausklappen';
  }
}


function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);


var TimeToFade = 300.0;
var timeout	= 300;
var closetimeout	= 50;
var closetimer	= 0;
var ddmenuitem	= 0;
var ddmenuitemc	= 0;

function mopentime() {
	if(ddmenuitem) {
    //ddmenuitem.style.opacity = 0.0;
    ddmenuitem.style.display= 'block';
    //ddmenuitem.FadeState = 0;
    //fade(ddmenuitem.id);
    
  }
}

function mopen(id) {	

    mcancelclosetime();

    if(ddmenuitem.id != id) {

      if(ddmenuitem) mclose();

      ddmenuitem = document.getElementById(id);
      window.setTimeout(mopentime, timeout);

    }
}


function mclose() {
  if(ddmenuitem) {
    //ddmenuitem.style.opacity = 0.0;
    ddmenuitem.style.display= 'none';
    //ddmenuitem.FadeState = 1;
    ddmenuitem = 0;
    
  }
}


function mclosetime() {
    
    if(ddmenuitem) {
      closetimer = window.setTimeout(mclose, closetimeout);

    }
}

function mcancelclosetime() {

	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

document.onclick = mclose; 


function fade(eid)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null 
        || element.style.opacity == '' 
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
      
    }
    else
    {
      element.FadeState = -2;
    }
  }
    
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 10);
  }  
}

function animateFade(lastTick, eid)
{  

  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' 
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1) {
    
    newOpVal = 1 - newOpVal;
  }


  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function GetScrollPosition() {
  var scrollPos;
  
  if (typeof window.pageYOffset != 'undefined') {
    scrollPos = window.pageYOffset;
  }
  else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
   scrollPos = document.documentElement.scrollTop;
  }
  else if (typeof document.body != 'undefined') {
    scrollPos = document.body.scrollTop;
  }
  return(scrollPos);
}


function MoveToScrollPosition(XPos) {
  window.scrollTo(0, XPos);
}

function chrom_fix() {

  if(document.getElementById('quickbar')) {
    document.getElementById('quickbar').style.bottom='0px';
  }
  
}


function number_format (number, decimals, dec_point, thousands_sep)
{
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }
  
  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ? 
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }
  
  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }
  
  return sign + integer + fractional + exponent;
}

 function checkBrowserName(name){  
   var agent = navigator.userAgent.toLowerCase();  
   if (agent.indexOf(name.toLowerCase())>-1) {  
     return true;  
   }  
   return false;  
 }  

function trans_sec(sec) {

  var minute = number_format (sec/60, 0, ".");
  
  if(minute > 1) re_min = minute + ' Minuten'; else if(minute > 1) re_min = minute + ' Minute'; else if(minute == 0) re_min = ' < 1 Minute';

	return(re_min);
}


document.OnLoad = chrom_fix();
document.OnResize = chrom_fix();
