function getCheckedValue(radioObj) {
        if(!radioObj)
                return "";
        var radioLength = radioObj.length;
        if(radioLength == undefined)
                if(radioObj.checked)
                        return radioObj.value;
                else
                        return "";
        for(var i = 0; i < radioLength; i++) {
                if(radioObj[i].checked) {
                        return radioObj[i].value;
                }
        }
        return "";
}

function cm2foot(val, obj)
{
	//alert (obj?obj.value:val);
	x = (obj) ? obj.value : val;
	y = Math.round(x / 30.48 * 10)/10;
	if (x > 0 && x < 20) {
		y = x;
		x = Math.round(y * 30.48);
	}
	if (y > 0)
		y = y + "'";
	else
		y = "";
	if (obj) {
		document.getElementById(obj.id+'_conv').innerHTML = y;
		return x;
	}
	else {
		y = " / "+y;
		return y;
	}
}

function kg2pounds(val, obj)
{
	//alert (obj?obj.name:val);
	x = (obj) ? obj.value : val;
	y = Math.round(x * 2.2);
	if (x > 120) {
		y = x;
		x = Math.round(y / 2.2);
	}
	if (y > 0)
		y = y + " lbs";
	else
		y = "";
	if (obj) {
		document.getElementById(obj.id+'_conv').innerHTML = y;
		return x;
	}
	else {
		y = " / "+y;
		return y;
	}
}

function trim(value)
{
	return value.replace(/^\s+|\s+$/, '');
}

// convert date input into dateFormat
function correctDate(inputDate, dateFormat) {	
	var outputDate = "";
	var Daten = (inputDate.split(".")).length == 3 ? inputDate.split(".") : inputDate.split("/");
	var Format = (dateFormat.split(".")).length == 3 ? dateFormat.split(".") : dateFormat.split("/");

	if(Daten.length == 3) {
		
		for(var i = 0; i < Daten.length; i++) {
			if(Format[i] == 'TT' || Format[i] == 'DD') var day = parseInt(Daten[i], 10);
			if(Format[i] == 'MM') var month = parseInt(Daten[i], 10);
			if(Format[i] == 'JJJJ' || Format[i] == 'YYYY') var year = parseInt(Daten[i], 10);
		}

		if(day > 0 && day < 10) {
			day = "0"+day;
		} else if(day >= 10) {
		} else {
			return inputDate;
		}
		
		if(month > 0 && month < 10) {
			month = "0"+month;
		} else if(month >= 10) {
		} else {
			return inputDate;
		}
		
		if(year >= 0 && year < 10) {
			year = "200"+year;
		} else if(year >= 10 && year < 30) {
			year = "20"+year;
		} else if(year >= 30 && year < 100) {
			year = "19"+year;
		} else if(year >= 100) {
		} else {
			return inputDate;
		}

		outputDate = dateFormat;
		outputDate = outputDate.replace(/TT/, day);
		outputDate = outputDate.replace(/DD/, day);
		outputDate = outputDate.replace(/MM/, month);
		outputDate = outputDate.replace(/JJJJ/, year);
		outputDate = outputDate.replace(/YYYY/, year);

		//alert("Inputdate: "+inputDate+"\nOutputdate: "+outputDate);

		return outputDate;
	} else {
		return inputDate;
	}
}

function fontsize(sel,x){
    var b = $$(sel+' p', sel+' td', sel+' input', sel+' h1', sel+' h2', sel+' h3', sel+' h4');
    b.each(function(el){
        var size = el.getStyle('fontSize');
        if (size.toLowerCase()=='small'){size='10px';}
        if(size.endsWith('px')){size=size.toLowerCase().replace('px','')*x+'px';}
        if(size.endsWith('%')) {size=size.toLowerCase().replace('%' ,'')*x+'%' ;}
        if(size.endsWith('em')){size=size.toLowerCase().replace('em','')*x+'em';}
        if(size.endsWith('pt')){size=size.toLowerCase().replace('pt','')*x+'pt';}
        el.setStyle({'fontSize': size});
    });
}

function tooltip(ev){
    var el = $(ev.target);
    var tip = $('tooltip');
    if(!tip){$('body').append("<div id='tooltip' style='position:absolute;background:#eee;border:1px solid #555;padding:3px;'></div>");}
    tip = $('#tooltip');
    tip.html('');
    tip.css('position','absolute');
    var tmp = el.attr('title');
    if(tmp){el.attr('tooltip',tmp);el.removeAttr('title');}
    tip.html(el.attr('tooltip'));
    tooltip_update(ev);
    tip.show();
    el.mousemove(tooltip_update);
    el.mouseout(tooltip_close);
}
function tooltip_update(ev){
    var el = $(ev.target);
    var tip = $('#tooltip');
    var offset = 10;
    ttx = 0;
    if(ev.pageX + 2*offset + tip.width() >= window.innerWidth)
        {ttx = window.innerWidth - offset - tip.width();}
    else {ttx = ev.pageX + offset;}
    tty = 0;
    if(ev.pageY - 2*offset - tip.height() <= 0)
        {tty = ev.pageY + offset;}
    else {tty = ev.pageY - offset - tip.height();}
    tip.css('left',ttx);
    tip.css('top',tty);
}
function tooltip_close(ev){
    $('tooltip').hide();
}
function maketooltip(els){
    $$(els).each(function(el){el.observe('mouseover',tooltip);});
}


function starttooltips(els){
      $$('input[title]').invoke('observe', 'mouseover', function(evt){
          var element = evt.findElement('input');
		  var text = element.getAttribute('title');
          var tooltip = new Element('div', {'class':'tooltip'}).update(text);
          element.removeAttribute('title'); 
		  element.setAttribute('_title', text);
          element.insert({'after': tooltip.setStyle({'left':element.positionedOffset()[0]+'px', 'top':element.positionedOffset()[1]+'px'})});
      }).invoke('observe', 'mouseout', function(evt){
          var element = evt.findElement('input'), text = element.getAttribute('_title');
          element.removeAttribute('_title'); element.setAttribute('title', text);
          if (element.next().hasClassName('tooltip')) element.next().remove();
      });
}

function setCookie(name, wert, domain, expires, path, secure){
   var cook = name+"="+unescape(wert);
   if (!domain) {
		domain = window.location.host.replace(/^www/, "");
   }
   cook += (domain) ? "; domain="+ domain : "";
   cook += (expires) ? "; expires="+expires : "";
   cook += (path) ? "; path="+path : "; path=/";
   cook += (secure) ? "; secure"+secure : "";
   document.cookie = cook;
}

function eraseCookie(name, domain, path){
   var cook=name+"=; expires=Thu, 01-Jan-70 00:00:01 GMT";
   if (!domain) {
		domain = window.location.host.replace(/^www/, "");
   }
   cook += (domain) ? "; domain="+domain : "";
   cook += (path) ? "; path="+path : "; path=/";
   document.cookie = cook;
}

function getCookie(name){
   var i=0;  //Suchposition im Cookie
   var suche = name+"=";
   while (i<document.cookie.length){
      if (document.cookie.substring(i, i+suche.length)==suche){
         var ende = document.cookie.indexOf(";", i+suche.length);
         ende = (ende>-1) ? ende : document.cookie.length;
         var cook = document.cookie.substring(i+suche.length, ende);
         return unescape(cook);
      }
      i++;
   }
   return null;
}

function checkCookie(){
   setCookie("CookieTest", "OK");
   if (!getCookie("CookieTest"))
      return false;
   else{
      eraseCookie("CookieTest");
      return true;
   }
}

function insertIntoWatchlist(articleid){
   var oldwatchlist = getCookie("watchlist");
   var watchlist = (oldwatchlist) ? oldwatchlist + "," + articleid : articleid;
   var expires = new Date(+new Date()+31*864e5); // go ahead 31*24 hours
   setCookie("watchlist", watchlist, null, expires);

   if (!checkCookie())
      alert(E_activate_cookies);
   else
      alert(E_watchlist_added);

   document.getElementById('watchedarticles').innerHTML=countWatchedArticles();
}

function removeFromWatchlist(articleid){
   var oldwatchlist = getCookie("watchlist");
   if(!oldwatchlist) return;
   var watchlistarray = oldwatchlist.split(',');
   
   for(var i=0; i<watchlistarray.length;i++ ) {
      if(watchlistarray[i]==articleid)
         watchlistarray.splice(i,1); 
   }
   
   if(watchlistarray.length > 0) {
	   var watchlist = watchlistarray[0];
	   if(watchlistarray.length > 1) {
		   for(var i=1; i<watchlistarray.length;i++ ) { 
		      watchlist += ","+watchlistarray[i];
		   }
	   }
	   var expires = new Date(+new Date()+31*864e5); // go ahead 31*24 hours
	   setCookie("watchlist", watchlist, null, expires);
   } else {
       eraseCookie('watchlist');
   }

   if (!checkCookie())
      alert(E_activate_cookies);
   else
      alert(E_watchlist_removed);

   document.getElementById('watchedarticles').innerHTML=countWatchedArticles();
}

function changeTeaser(teaserid, start) {
	//alert(teaserid);
	if (numberOfTeaserImages <= 2) return;
	// LIMIT number of 
	if (numberOfTeaserImages > 7) numberOfTeaserImages = 7;
	
	var speed = 100;
	
	if (stopChange == 0) {
		if (!start) {
			setTimeout("if (document.getElementById('teaser_black_"+oldteaserid+"')) { document.getElementById('teaser_black_"+oldteaserid+"').style.opacity = 0.2; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000)'; }", speed*1);
			setTimeout("if (document.getElementById('teaser_black_"+oldteaserid+"')) { document.getElementById('teaser_black_"+oldteaserid+"').style.opacity = 0.4; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#66000000)'; }", speed*2);
			setTimeout("if (document.getElementById('teaser_black_"+oldteaserid+"')) { document.getElementById('teaser_black_"+oldteaserid+"').style.opacity = 0.6; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000)'; }", speed*3);
			setTimeout("if (document.getElementById('teaser_black_"+oldteaserid+"')) { document.getElementById('teaser_black_"+oldteaserid+"').style.opacity = 0.8; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#CC000000,endColorstr=#CC000000)'; }", speed*4);
			//setTimeout("if(document.getElementById('teaser_black_"+oldteaserid+"')) document.getElementById('teaser_black_"+oldteaserid+"').style.opacity = 1.0;", 250);

		
			setTimeout("if (document.getElementById('teaser_"+oldteaserid+"')) { document.getElementById('teaser_"+oldteaserid+"').style.display = 'none'; }", 200);
			setTimeout("document.getElementById('teaser_"+teaserid+"').style.display = 'block';", 200);
		
			//setTimeout("if(document.getElementById('teaser_black_"+teaserid+"')) document.getElementById('teaser_black_"+teaserid+"').style.opacity = 0.8;", 350);
			setTimeout("document.getElementById('teaser_black_"+teaserid+"').style.opacity = 0.6; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000)';", speed*4);
			setTimeout("document.getElementById('teaser_black_"+teaserid+"').style.opacity = 0.4; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000)';", speed*5);
			setTimeout("document.getElementById('teaser_black_"+teaserid+"').style.opacity = 0.2; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000)';", speed*6);
			setTimeout("document.getElementById('teaser_black_"+teaserid+"').style.opacity = 0.0; document.getElementById('teaser_black_"+teaserid+"').style.filter = 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#00000000)';", speed*7);
		}

		oldteaserid = teaserid;
		if (++teaserid > numberOfTeaserImages-1) teaserid = 1;
	}

	setTimeout("changeTeaser("+teaserid+", false)", changeTime);
}

var Url = {
 
	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},
 
	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if(c == 43) {
				string += " ";
				i += 1;
			}
			else if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}
