/*
	krumedia GmbH
	Michael Reetz
	
	Bitte in dieser Datei keine Projektspezifischen Änderungen, eventuelle 
	Fehler bitte im Defaultsite-Repository korrigieren 	und dann die Datei von 
	dort beziehen.
*/



function setzteIE(element,name,value){
	element.setAttribute('value',value);
	element.setAttribute('name',name);
}

function findPosX(obj){
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj){
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
}

/*
 * 
 */
function zufallzeit(){
	var jetzt = new Date();
	var ss = jetzt.getSeconds()
	var ms = jetzt.getMilliseconds();
	return ((1000*ss+ms)*1000+Math.round(Math.random()*1000));
}

/*
	Die Base64 funktionen encode64 und decode64 für Javascript.
*/
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}


function Include(){
	if(
		(typeof Prototype=='undefined')
		|| 
		(typeof Element == 'undefined')
		|| 
		(typeof Element.Methods=='undefined')
		||
		parseFloat(Prototype.Version.split(".")[0] + "." +Prototype.Version.split(".")[1]) < 1.5
	){
		throw("i need the the Prototype JavaScript framework");
	}else{
		var head = $$('head')[0];
		if (head){
			for (var i = 0; i < arguments.length; ++i){
				var script = document.createElement('script');
				if(script){
					script.setAttribute('type', 'text/javascript');
					script.setAttribute('src', arguments[i]);
					head.appendChild(script);
				}else{
					throw("could not create script element");
				}
			}
		}else{
			throw("i need html head element");
		}
	}
}