function base64_encode (data) 
{  
	// Encodes string using MIME base64 algorithm
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];
 
    if (!data) {
        return data;
    }
 
    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);
 
        bits = o1<<16 | o2<<8 | o3;
 
        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;
 
        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }
 
    return enc;
}

function utf8_encode ( argString ) 
{
    // Encodes an ISO-8859-1 string to UTF-8  
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
 
    var utftext = "";
    var start, end;
    var stringl = 0;
 
    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;
 
        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }
 
    if (end > start) {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}

function refresh_creditstats_timer(FileID)
{
	document.getElementById('DownloadedCheck_'+FileID).innerHTML = '<img hspace="5" vspace="0" style="vertical-align:middle" src="/pictures/Check_Green_18.png" alt="" title="Du hast diese Datei bereits einmal heruntergeladen" />';
	
	var t1=setTimeout("refresh_creditstats()",2000);
	var t2=setTimeout("refresh_creditstats()",5000);
}

function refresh_creditstats()
{
	var myAjax = new Ajax.Request(
		"/header_worker.php",
		{
			method: 'post', 
			parameters: 'action=GetCredits',
			onComplete: function(originalRequest) 
			{
				var Antwort = originalRequest.responseText;
				if(Antwort != '')
				{
					document.getElementById('CreditContainer').innerHTML = Antwort;
				}
			}
		}
	);
}

var credithistory_lastmode = 0;
function load_credithistory(mode)
{
	if(mode == 1)
	{
		if(credithistory_lastmode == 0)
		{
			credithistory_lastmode = 1;
			var myAjax = new Ajax.Request(
				"/header_worker.php",
				{
					method: 'post', 
					parameters: 'action=GetCreditsHistory',
					onComplete: function(originalRequest) 
					{
						var Antwort = originalRequest.responseText;
						if(Antwort != '')
						{
							if(credithistory_lastmode == 1)
							{
								document.getElementById('CreditHistory').innerHTML = Antwort;
								credithistory_lastmode = 2;
							}
						}
					}
				}
			);
		}
	}
	else
	{
		document.getElementById('CreditHistory').innerHTML ='';
		credithistory_lastmode = 0;
	}
}

function file_upload_form_button_onclick()
{
	if((UserID == 1) || (UserID == 0))
	{
		alert('Du musst dich einloggen um etwas hochladen zu können!');
	}
	else
	{
		var SendButtonHTML = '<img src="/pictures/loading_dots_64.gif" alt="Uploading..." width="64" height="21" />'; 
		
		if(document.getElementById('upload_file_form_path').value != '')
		{
			document.getElementById('upload_file_form_button_container').innerHTML = SendButtonHTML;
			document.forms["upload_form"].submit();
		}
		else
		{
			document.getElementById('upload_file_form_path_container').style.background = '#FF2233';
		}
	}
}

function select_uni_onchange()
{
	var myAjax = new Ajax.Request(
		"/header_worker.php",
		{
			method: 'post', 
			parameters: 'AJAX=true&action=SetSelectedUni&uniid='+document.getElementById('select_uni').value,
			onComplete: function(originalRequest) {
			location.reload(true);
			}
		}
	);	
}
