function parse_url (str, component) {
	// Parse a URL and return its components, version: 905.3122
	var  o   = {
		strictMode: false,
		key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
		q: {
			name: "queryKey",
			parser: /(?:^|&)([^&=]*)=?([^&]*)/g
		},
		parser: {
			strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
			loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-protocol to catch file:/// (should restrict this)
		}
	};
	
	var m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i = 14;
	while (i--) {uri[o.key[i]] = m[i] || "";}
	// Uncomment the following to use the original more detailed (non-PHP) script
	/*
	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
	if ($1) uri[o.q.name][$1] = $2;
	});
	return uri;
	*/
	
	switch (component) {
		case 'PHP_URL_SCHEME':
			return uri.protocol;
		case 'PHP_URL_HOST':
			return uri.host;
		case 'PHP_URL_PORT':
			return uri.port;
		case 'PHP_URL_USER':
			return uri.user;
		case 'PHP_URL_PASS':
			return uri.password;
		case 'PHP_URL_PATH':
			return uri.path;
		case 'PHP_URL_QUERY':
			return uri.query;
		case 'PHP_URL_FRAGMENT':
			return uri.anchor;
		default:
			var retArr = {};
			if (uri.protocol !== '') {retArr.scheme=uri.protocol;}
			if (uri.host !== '') {retArr.host=uri.host;}
			if (uri.port !== '') {retArr.port=uri.port;}
			if (uri.user !== '') {retArr.user=uri.user;}
			if (uri.password !== '') {retArr.pass=uri.password;}
			if (uri.path !== '') {retArr.path=uri.path;}
			if (uri.query !== '') {retArr.query=uri.query;}
			if (uri.anchor !== '') {retArr.fragment=uri.anchor;}
			return retArr;
	}
}


function strpos( haystack, needle, offset){
	var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
	return i === -1 ? false : i;
}

function openExternalNews() {
	if (strpos(document.location.href, '/Presse/Nachrichten/items/')>0) {
		var gotoUrl = jQuery("#blockContent div.elementLink a").attr('href');
		window.open(gotoUrl);
	}
}

function strrev( string ){
	var ret = '', i = 0;
	string += '';
	for ( i = string.length-1; i >= 0; i-- ){
		ret += string.charAt(i);
	}
	return ret;
}

function substr( f_string, f_start, f_length ) {
	f_string += '';
	if(f_start < 0) {
		f_start += f_string.length;
	}
	
	if(f_length === undefined) {
		f_length = f_string.length;
	} else if(f_length < 0){
		f_length += f_string.length;
	} else {
		f_length += f_start;
	}
	
	if(f_length < f_start) {
		f_length = f_start;
	}
	return f_string.substring(f_start, f_length);
}

function str_replace(search, replace, subject, count) {
/**
	var r;
	var s = subject;
	var ra = r instanceof Array, sa = s instanceof Array;
	var f = [].concat(search);
	r = [].concat(replace);
	var i = (s = [].concat(s)).length;
	var j = 0;
	while (j = 0, i--) {
		if (s[i]) {
			while (s[i] = (s[i]+'').split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
		}
	}
	return sa ? s : s[0];
**/
	// version: 908.406
	var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];

}

function utf8_decode ( str_data ) {
	var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
	str_data += '';
	while ( i < str_data.length ) {
		c1 = str_data.charCodeAt(i);
		if (c1 < 128) {
			tmp_arr[ac++] = String.fromCharCode(c1);
			i++;
		} else if ((c1 > 191) && (c1 < 224)) {
			c2 = str_data.charCodeAt(i+1);
			tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
			i += 2;
		} else {
			c2 = str_data.charCodeAt(i+1);
			c3 = str_data.charCodeAt(i+2);
			tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}
	}
	return tmp_arr.join('');
}

//////////////////// scroll ////////////////////////////////////////////////////////////////////////////
jQuery.getPos = function (e)
{
	var l = 0;
	var t  = 0;
	var w = jQuery.intval(jQuery.css(e,'width'));
	var h = jQuery.intval(jQuery.css(e,'height'));
	var wb = e.offsetWidth;
	var hb = e.offsetHeight;
	while (e.offsetParent){
		l += e.offsetLeft + (e.currentStyle?jQuery.intval(e.currentStyle.borderLeftWidth):0);
		t += e.offsetTop  + (e.currentStyle?jQuery.intval(e.currentStyle.borderTopWidth):0);
		e = e.offsetParent;
	}
	l += e.offsetLeft + (e.currentStyle?jQuery.intval(e.currentStyle.borderLeftWidth):0);
	t  += e.offsetTop  + (e.currentStyle?jQuery.intval(e.currentStyle.borderTopWidth):0);
	return {x:l, y:t, w:w, h:h, wb:wb, hb:hb};
};
jQuery.getClient = function(e)
{
	if (e) {
		w = e.clientWidth;
		h = e.clientHeight;
	} else {
		w = (window.innerWidth) ? window.innerWidth : (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth : document.body.offsetWidth;
		h = (window.innerHeight) ? window.innerHeight : (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.offsetHeight;
	}
	return {w:w,h:h};
};
jQuery.getScroll = function (e) 
{
	if (e) {
		t = e.scrollTop;
		l = e.scrollLeft;
		w = e.scrollWidth;
		h = e.scrollHeight;
	} else  {
		if (document.documentElement && document.documentElement.scrollTop) {
			t = document.documentElement.scrollTop;
			l = document.documentElement.scrollLeft;
			w = document.documentElement.scrollWidth;
			h = document.documentElement.scrollHeight;
		} else if (document.body) {
			t = document.body.scrollTop;
			l = document.body.scrollLeft;
			w = document.body.scrollWidth;
			h = document.body.scrollHeight;
		}
	}
	return { t: t, l: l, w: w, h: h };
};

jQuery.intval = function (v)
{
	v = parseInt(v);
	return isNaN(v) ? 0 : v;
};

jQuery.fn.ScrollTo = function(s) {
	o = jQuery.speed(s);
	return this.each(function(){
		new jQuery.fx.ScrollTo(this, o);
	});
};

jQuery.fx.ScrollTo = function (e, o)
{
	var z = this;
	z.o = o;
	z.e = e;
	z.p = jQuery.getPos(e);
	z.s = jQuery.getScroll();
	z.clear = function(){clearInterval(z.timer);z.timer=null};
	z.t=(new Date).getTime();
	z.step = function(){
		var t = (new Date).getTime();
		var p = (t - z.t) / z.o.duration;
		if (t >= z.o.duration+z.t) {
			z.clear();
			setTimeout(function(){z.scroll(z.p.y, z.p.x)},13);
		} else {
			st = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.y-z.s.t) + z.s.t;
			sl = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.x-z.s.l) + z.s.l;
			z.scroll(st, sl);
		}
	};
	z.scroll = function (t, l){window.scrollTo(l, t)};
	z.timer=setInterval(function(){z.step();},13);
};

// hoverintent
(function(jQuery) {
	jQuery.fn.hoverIntent = function(f,g) {
		// default configuration options
		var cfg = {
			sensitivity: 7,
			interval: 100,
			timeout: 0
		};
		// override configuration options with user supplied object
		cfg = jQuery.extend(cfg, g ? { over: f, out: g }: f );

		// instantiate variables
		// cX, cY = current X and Y position of mouse, updated by mousemove event
		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
		var cX, cY, pX, pY;

		// A private function for getting mouse position
		var track = function(ev) {
			cX = ev.pageX;
			cY = ev.pageY;
		};

		// A private function for comparing current and previous mouse position
		var compare = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			// compare mouse positions to see if they've crossed the threshold
			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
				jQuery(ob).unbind("mousemove",track);
				// set hoverIntent state to true (so mouseOut can be called)
				ob.hoverIntent_s = 1;
				return cfg.over.apply(ob,[ev]);
			}else {
				// set previous coordinates for next time
				pX = cX; pY = cY;
				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);},cfg.interval);
			}
		};

		// A private function for delaying the mouseOut function
		var delay = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			ob.hoverIntent_s = 0;
			return cfg.out.apply(ob,[ev]);
		};

		// A private function for handling mouse 'hovering'
		var handleHover = function(e) {
			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
			if (e !== 'undefined') {
				var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
				while (p && p!=this){try{p=p.parentNode; }catch(e){ p = this; }}
				if ( p == this ) { return false; }
			}

			// copy objects to be passed into t (required for event object to be passed in IE)
			var ev = jQuery.extend({},e);
			var ob = this;

			// cancel hoverIntent timer if it exists
			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

			// else e.type == "onmouseover"
			if (e.type == "mouseover") {
				// set "previous" X and Y position based on initial entry point
				pX = ev.pageX; pY = ev.pageY;
				// update "current" X and Y position based on mousemove
				jQuery(ob).bind("mousemove",track);
				// start polling interval (self-calling timeout) to compare mouse coordinates over time
				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);}, cfg.interval );}

			// else e.type == "onmouseout"
			}else {
				// unbind expensive mousemove event
				jQuery(ob).unbind("mousemove",track);
				// if hoverIntent state is true, then call the mouseOut function after the specified delay
				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);}, cfg.timeout );}
			}
		};

		// bind the function to the two event listeners
		return this.mouseover(handleHover).mouseout(handleHover);
	};
})(jQuery);

function activeState() {
	$activelinks = jQuery("ul.menulist a[href='" + location.pathname + "']").addClass('selected');
}

/* experimental */
function inlineImages() {
	if (!strpos('weblication',window.location)) {
		jQuery("#blockContent img").each(function(){
			var pxwidth = jQuery(this).width();
			if (pxwidth > 620) {
				var factor = 620 / pxwidth;
				var newht = jQuery.intval(factor * jQuery(this).height());
				jQuery(this).attr({width:620});
				jQuery(this).attr({height:newht});
			}
		});
	}
}

function imageCaptions() {
	// alert('IEsucks');
	$captions = jQuery("div.elementPicture");
	// only if there are images with captions
	if ($captions.length > 0 && !strpos(window.location,'weblication')) {
		// alert(captions.length);
		$captions.each(function(){
			jQuery(this).find('a').attr({rel:'gallery'});
			the_image = jQuery(this).find("img");
			// alert(the_image);
			the_image.load(function(){
				var the_width = the_image.width();
				var the_height = the_image.height();
				//alert('the_width: '+the_width);
				//alert('the_height: '+the_width);
				jQuery(this).attr({
					width:the_width
				}).parents("div:eq(0)").find('div.title').css({
					// width:the_width+'px'
				});
				jQuery(this).parents("div.elementPicture").css({
					width:the_width+'px'
				});
			});
		});
	}
}


function filterPath(string) {
	return string
	.replace(/^\//,'')
	.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
	.replace(/\/$/,'');
}

function smoothScroll() {
	var locationPath = filterPath(location.pathname);
	
	jQuery('a[href*="#"]').each(function() {
		var thisPath = filterPath(this.pathname) || locationPath;
		if ( locationPath == thisPath && (location.hostname == this.hostname || !this.hostname) && this.hash.replace(/#/,'') ) {
			var $target = jQuery(this.hash), target = this.hash;
			if (target) {
				var targetOffset = $target.offset().top;
				jQuery(this).click(function(event) {
					event.preventDefault();
					jQuery('html, body').animate({scrollTop: targetOffset}, 400, function() {
						location.hash = target;
					});
				});
			}
		}
	});
}

/**function smoothScroll() {
	jQuery('a[@href*="#"]:not(a[@href="#"])').click(function() {
		var parts = this.href.split('#');
		var scrolltarget = '#' + parts[1];
		jQuery(scrolltarget).ScrollTo(500);
		return false;
	});
} **/

/* jQury AlphaNumeric Addon */
(function(jQuery){jQuery.fn.alphanumeric = function(p) { 
		p = jQuery.extend({ichars: "!@#$%^&*()+=[]\\\';,/{}|\":<>?~`.- ",nchars: "",allow: ""}, p);
		return this.each(function(){
			if (p.nocaps) { p.nchars += "AÄBCDEFGHIJKLMNOÖPQRSTUÜVWXYZß"; }
			if (p.allcaps) { p.nchars += "aäbcdefghijklmnoöpqrstuüvwxyzß"; }
			s = p.allow.split('');
			for ( i=0;i<s.length;i++) {
				if (p.ichars.indexOf(s[i]) != -1) {
					s[i] = "\\" + s[i];
				}
			}
			p.allow = s.join('|');
			var reg = new RegExp(p.allow,'gi');
			var ch = p.ichars + p.nchars;
			ch = ch.replace(reg,'');
			jQuery(this).keypress (function (e) {
				if (!e.charCode) { k = String.fromCharCode(e.which); }
					else { k = String.fromCharCode(e.charCode); }
				if (ch.indexOf(k) != -1) { e.preventDefault(); }
				if (e.ctrlKey&&k=='v') { e.preventDefault(); }
			});
			jQuery(this).bind('contextmenu',function () {return false});});
	};
	jQuery.fn.numeric = function(p) {
		var az = "aäbcdefghijklmnoöpqrstuüvwxyzß";
		az += az.toUpperCase();
		p = jQuery.extend({ nchars: az }, p);
		return this.each (function() { jQuery(this).alphanumeric(p); } );
	};
	jQuery.fn.alpha = function(p) {
		var nm = "1234567890";
		p = jQuery.extend({ nchars: nm }, p);
		return this.each (function() { jQuery(this).alphanumeric(p); });
	};
})(jQuery);

// fix for common dequeue error caused by old interface.js syntax.
/**( function( jQuery ) { 
	jQuery.dequeue = function( a , b ) { return jQuery(a).dequeue(b); };
})( jQuery ); **/

function contactForm(id) {
	// limit user input to something that makes sense (numbers for the captha, alphabet for a name)
	$f = jQuery(id);
	$f.find('li.C input').numeric().attr("maxlength","4");
	$f.find('input[name="Ihr_Name"]').alpha({allow:"- "});
	$f.find('textarea').focus(function(){
		if (jQuery.trim(this.innerHTML) === '') { this.innerHTML = ''; }
	});
}

function cropText(string,length) {
	if (string.length > length) {
		var tmp_str = substr(string,0,length);
		tmp_str = strrev(tmp_str);
		var blankpos = strpos(tmp_str,' ');
		tmp_str = substr(tmp_str,blankpos+1);
		return strrev(tmp_str)+'...';
	} else {
		return string;
	}
}

(function(jQuery){
  jQuery.fn.extend({
        readRss: function(options, cat) {

           var defaults = {
                url: '',
                html: '<div class="content"><h4><a href="{link}">{title}</a></h4><p class="date">{date}</p><p>{text}</p><div class="tl"></div><div class="tr"></div><div class="bl"></div><div class="br"></div></div><p class="nav nojs"><a class="goto-article" title="{readmoreTitle}" href="{link2}">{readmore}</a><a class="prev" title="{prevTitle}" href="#"><span class="screenreader">{prevTitle}</span></a><a class="next" title="{nextTitle}" href="#"><span class="screenreader">{next}</span></a></p>',
                wrapper: 'div class="item" style="display:none;"',
                //dataType: 'html',
                display: 9,
                //dataType: ($.browser.msie) ? "text" : "xml"
            }
            
            var options = jQuery.extend(defaults, options);
            return this.each(function() {
                var o = options;
                var c = jQuery(this);
                if (o.url == '') {
                    return;
                }
                jQuery.ajax({
                    url: o.url,
                    type: 'GET',
                    dataType: o.dataType,
                    error: function (xhr, status, e) {
                        //console.debug('C: #%s, Error: %s, Feed: %s', $(c).attr('id'), e, o.url);
                    },
	                    success: function(feed){
	                      if( $.browser.msie ){
										    	var xml;
										     	if (typeof feed == "string") {
										      	xml = new ActiveXObject("Microsoft.XMLDOM");
										      	xml.async = false;
										      	xml.loadXML(feed);
										     	} else {
										       xml = feed;
										     	}
										     } else {xml = feed;}
										     
                        jQuery(xml).find('item').each(function(i){
                            var itemHtml = o.html.replace(/{title}/, jQuery(this).find('headline').text());
                            itemHtml = itemHtml.replace(/{text}/, jQuery(this).find('description').text());
                            itemHtml = itemHtml.replace(/{date}/, jQuery(this).find('pubDate').text());
                            itemHtml = itemHtml.replace(/{link}/, jQuery(this).find('rsslink').text());
                            itemHtml = itemHtml.replace(/{link2}/, jQuery(this).find('rsslink').text());
                            itemHtml = itemHtml.replace(/{readmore}/, jQuery(this).find('readmore').text());
                            itemHtml = itemHtml.replace(/{readmoreTitle}/, jQuery(this).find('readmore').text());
                            itemHtml = itemHtml.replace(/{next}/, jQuery(this).find('next').text());
                            itemHtml = itemHtml.replace(/{nextTitle}/, jQuery(this).find('next').text());
                            itemHtml = itemHtml.replace(/{prev}/, jQuery(this).find('prev').text());
                            itemHtml = itemHtml.replace(/{prevTitle}/, jQuery(this).find('prev').text());
                            jQuery(c).append(jQuery('<' + o.wrapper + '>').append(itemHtml));
                            if (i == o.display) {
                                return false;
                            }
                        });
                        if(cat == 'news'){sidebarInitNews();}
		          					if(cat == 'events'){sidebarInitEvents();}
                    }
                });
            });
            return this;
        }
    });
})(jQuery);

function sidebarInitNews() {
  jQuery("#news img.ajaxloader").hide();
	jQuery("#news p.nav").removeClass('nojs');
	jQuery("#news div.item:lt(1)").show();
	jQuery("#news h4 a").each(function(){
		var tmptxt = jQuery(this).text();
		jQuery(this).text(cropText(tmptxt,55));
	});
	jQuery("#news p:not('p.nav,p.date')").each(function(){
		var tmptxt = jQuery(this).html();
		jQuery(this).html(cropText(tmptxt,80));
	});
	var defhl = jQuery("#news div.item:eq(0)").find("h4").html();
	var defcopy = jQuery("#news div.item:eq(0)").find("p:not('p.nav,p.date')").html();
	var deflink = jQuery("#news div.item:eq(0)").find("a.goto-article").attr('href');
	var defdate = jQuery("#news div.item:eq(0)").find("p.date").text();

	var nonews = jQuery('#news div.item').length;
	var isnum;
  
	jQuery("#news a.next").click(function(){
			$item = jQuery(this).parents("div.item");
			if (typeof($item.attr('rel')) === 'undefined') {
				isnum = 0;
				$item.attr('rel',isnum);
			} else {
				isnum = Number($item.attr('rel'));
			}
			if (isnum>=(nonews-2)) {
				jQuery("#news a.next").css('opacity','0.3');
				return false;
			} else {
				var nextitem = isnum + 1;
				var nexthl = jQuery("#news div.item:eq("+nextitem+")").find("h4").html();
				var nextcopy = jQuery("#news div.item:eq("+nextitem+")").find("p:not('p.nav,p.date')").text();
				var nextlink = jQuery("#news div.item:eq("+nextitem+")").find("a").attr("href");
				var nextdate = jQuery("#news div.item:eq("+nextitem+")").find("p.date").text();
				$item.attr("rel",nextitem);
				
				$item.find("h4").html(nexthl);
				$item.find("p:not('p.nav,p.date')").text(nextcopy);
				$item.find("p.date").text(nextdate);
				$item.find("a.goto-article").attr("href", nextlink);
				var inextern = parse_url(nextlink,'PHP_URL_HOST');
				inextern = str_replace("www.","",inextern);
				if (substr(inextern,0,1) == '/' || inextern === '') { inextern = 'kernenergie.de'; }
				if (substr($item.find("a.goto-article").attr("href"),-3,3) == 'pdf' || inextern !== 'kernenergie.de') {
					$item.find("a.goto-article").attr("target", "_blank");
					$item.find("h4 a").attr("target", "_blank");
				} else {
					$item.find("a.goto-article").removeAttr("target");
					$item.find("h4 a").removeAttr("target");
				}
			}
			if (isnum+1>0) {
				jQuery("#news a.prev").css('opacity','1');
			}
			return false;
		});
	
	jQuery("#news a.prev").css({opacity:'0.3'}).addClass('inactive');
	var inum;
	jQuery("#news a.prev").click(function(){
		$item = jQuery(this).parents("div.item");
		if ($item.attr('rel') == 'undefined') {
			inum = 0; $item.attr('rel',inum); } else { inum = Number($item.attr('rel')); }
		var previtem = inum-1;
		if (inum-2 < 0) { jQuery(this).css({opacity:'0.3'}); }
		if (inum-1 < 0) { return false; }
		if (previtem === 0) { 
			var prevhl = defhl;
			var prevcopy = defcopy;
			var prevlink = deflink;
			var prevdate = defdate;
		} else {
			var prevhl = jQuery("#news div.item:eq("+previtem+")").find("h4").html();
			var prevcopy = jQuery("#news div.item:eq("+previtem+")").find("p:not('p.nav,p.date')").text();
			var prevlink = jQuery("#news div.item:eq("+previtem+")").find("a.goto-article").attr("href");
			var prevdate = jQuery("#news div.item:eq("+previtem+")").find("p.date").text();
		}
		$item.attr("rel",previtem);
		$item.find("h4").html(prevhl);
		$item.find("p:not('p.nav')").text(prevcopy);
		$item.find("p.date").text(prevdate);
		$item.find("a.goto-article").attr("href", prevlink);
		var inextern = parse_url(prevlink,'PHP_URL_HOST');
		inextern = str_replace("www.","",inextern);
		if (substr(inextern,0,1) == '/' || inextern === '') { inextern = 'kernenergie.de'; }
		if (substr($item.find("a.goto-article").attr("href"),-3,3) == 'pdf' || inextern !== 'kernenergie.de') {
			$item.find("a.goto-article").attr("target", "_blank");
			$item.find("h4 a").attr("target", "_blank");
		} else {
			$item.find("a.goto-article").removeAttr("target");
			$item.find("h4 a").removeAttr("target");
		}
		if (inum<10) { jQuery(this).parents("div.item").find('a.next').css({opacity:1}).show(); }
		return false;
	});
}

function sidebarInitEvents() {
  jQuery("#events img.ajaxloader").hide();
  jQuery("#events p.nav").removeClass('nojs');
	jQuery("#events div.item:lt(1)").show();
	var numevents = jQuery("#events div.item").length;

	jQuery("#events h4 a").each(function(){
		var tmptxt = jQuery(this).html();
		jQuery(this).html(cropText(tmptxt,55));
	});
	jQuery("#events p:not('p.nav,p.date')").each(function(){
		var tmptxt = jQuery(this).html();
		jQuery(this).html(cropText(tmptxt,80));
	});
	var defevdate = jQuery("#events div.item:eq(0)").find("p.date").text();
	var defevtitle = jQuery("#events div.item:eq(0)").find("h4").html();
	var defevplace = jQuery("#events div.item:eq(0)").find("p:not('p.nav,p.date')").html();
	var defevlink = jQuery("#events div.item:eq(0)").find("a.goto-article").attr('href');
	var firstevlink = jQuery("#events div.item:eq(0)").find("h4 a").attr('href');

	// next events button
	var i = 0;

	jQuery("#events a.next").click(function(){
		if (typeof(jQuery(this).parents("div.item").attr('rel')) === 'undefined') {
			i = 0;
			jQuery(this).parents("div.item").attr('rel',i);
		} else {
			i = Number(jQuery(this).parents("div.item").attr('rel'));
		}
		if (i>=(numevents-2)) {
			jQuery(this).css({opacity:'0.3'}).addClass('inactive');
			return false;
		} else {
			var nextitem = i + 1;
			var nexthl = jQuery("#events div.item:eq("+nextitem+")").find("h4").html();
			var nextdate = jQuery("#events div.item:eq("+nextitem+")").find("p.date").text();
			var nextlink = jQuery("#events div.item:eq("+nextitem+")").find("a.goto-article").attr('href');
			var nextplace = jQuery("#events div.item:eq("+nextitem+")").find("p:not('p.date,p.nav')").text();
			// alert(jQuery("#events div.item:eq("+nextitem+") h4").text());
			jQuery(this).parents("div.item").attr("rel",nextitem);
			jQuery(this).parents("div.item").find("h4").html(nexthl);
			jQuery(this).parents("div.item").find("p:not('p.nav, p.date')").text(nextplace);
			jQuery(this).parents("div.item").find("p.date").text(nextdate);
			jQuery(this).parents("div.item").find("a.goto-article").attr({href:nextlink});
		}
		if (i+1>0) { jQuery("#events a.prev").css({opacity:'1'},250).removeClass('inactive'); }
		return false;
	});
	// previous events button
	jQuery("#events a.prev").css({opacity:'0.3'}).addClass('inactive');
	jQuery("#events a.prev").click(function(){
		if (jQuery(this).parents("div.item").attr('rel') == 'undefined') {
			var i = 0;
			jQuery(this).parents("div.item").attr('rel',i);
		} else {
			var i = Number(jQuery(this).parents("div.item").attr('rel'));
		}
		var previtem = i-1;
		if (i-2 < 0) {
			jQuery(this).css({opacity:'0.3'}).addClass('inactive');
		}
		if (i-1 < 0) {
			return false;
		}

		if (previtem === 0) {
			var prevhl = defevtitle;
			var prevcopy = defevplace;
			var prevlink = defevlink;
			var prevdate = defevdate;
		} else {
			var prevhl = jQuery("#events div.item:eq("+previtem+")").find("h4").html();
			var prevcopy = jQuery("#events div.item:eq("+previtem+")").find("p:not('p.nav,p.date')").text();
			var prevlink = jQuery("#events div.item:eq("+previtem+")").find("a.goto-article").attr("href");
			var prevdate = jQuery("#events div.item:eq("+previtem+")").find("p.date").text();
		}
		$item_obj = jQuery(this).parents("div.item");
		$item_obj.attr("rel",previtem);
		$item_obj.find("h4").html(prevhl);
		$item_obj.find("p:not('p.nav,p.date')").text(prevcopy);
		$item_obj.find("p.date").text(prevdate);
		$item_obj.find("a.goto-article").attr("href", prevlink);
		if (i<10) { $item_obj.find('a.next').css({opacity:1}).removeClass('inactive'); }
		return false;
	});
}

function fixSitemap() {
	if (strpos(window.location,'Inhaltsuebersicht')>0) {
		// lösche die Heading...
		jQuery('div.wglPortletHead').remove();
		jQuery("div.wSitemap ul li ul li:last-child").addClass("last");
	}
}

function fixIE7breadcrumb () {
	jQuery('#path').css({'z-index':'1000'});
	jQuery('#path div').hover(function() {
		jQuery(this).addClass('hover');
		jQuery(this).find('ul').css({'z-index':'1000',top:'30px'});
	}, function() {
		jQuery(this).removeClass('hover');
		jQuery(this).find('ul').css({'z-index':'0',top:'-9999px'});	
	});
	jQuery('#path').mouseout(function(){
		jQuery(this).find('div').removeClass('hover');
	});
}

function sendToPrinter() {
	jQuery("#toprinter").click(function(){
		var printlocation = document.location.href;
		printlocation = printlocation + "?viewmode=print";
		printlocation = str_replace("?langVersion=0","",printlocation);
		printlocation = str_replace("?langVersion=","",printlocation);
		window.open(printlocation,"Druckversion","width=740,height=700,menubar=yes,scrollbars=yes,resize= yes,toolbar=yes,location");
		return false;
	});
}

function printCSS() {
  if(location.search.indexOf("viewmode=print")>-1) {
    jQuery('link').attr("href", "/kernenergie/wGlobal/layout/styles/print.css");
	}
}

function recognizePrintVersion() {
	// oh this was intendend - and I thought something was broken ;)
	var printlocation = document.location.href;
	if(printlocation.indexOf("viewmode=print") != -1){
		window.print();
	}
}

// Zahl der Woche fancybox
function zdw() {
	var thispage = str_replace("index.php","",document.location);
	var thishost = parse_url(document.location,'PHP_URL_HOST');
	var thisprotocol = parse_url(document.location,'PHP_URL_SCHEME');
	// console.log(thispage);
	if (thispage == thisprotocol+'://'+thishost+'/kernenergie/') {
		jQuery("div.bigContentBlock a[@title='Zahl der Woche'] img").attr({src:"/kernenergie/img/zahl_der_woche/zdw.gif","class":"pictureZDW"});
		jQuery("img.pictureZDW").parents("a:eq(0)").attr({href:"/kernenergie/Zahl-der-Woche/index.php",title:""});
		jQuery("img.pictureZDW").parents("a:eq(0)").addClass('lightbox').fancybox({
			frameWidth:320,
			frameHeight:235,
			padding:20,
			hideOnContentClick:false // enabling clickable links inside a lightboxs' content
		});
	}
}

function mailtoLinks() {
	jQuery("a[href*='mailto:']").addClass('mailto');
}

function breadcrumbFix() {
	jQuery('#path ul:empty').remove(); // delete empty ul's (TODO fix in class.Navigation.php)
}

function imgRotateHome() {
	var imgRandomPath = ("/kernenergie/documentpool/Keyvisuals/bilder/zufallspool/");
  var x = new Array("visual_brokdorf_neu.jpg");
	var zaehler = x.length;
	var zufall = Math.floor(Math.random()*zaehler);
	jQuery(".home #contentHeaderImage img").attr("src",imgRandomPath + x[zufall]).attr("alt","Klimaschützer");
}

function replaceImgSrcImgPrc() {
	jQuery("img").each(function() {
		var src = jQuery(this).attr("src");
		if(src.indexOf("/lib/php/exe/imgPrc.php")>=0) {
			var newSrc = src.match(/src=(.*\....)/);
			alert(newSrc);
			var dim = src.match(/cmd=ri?b?:([0-9]+):?([0-9]+)?/);
			jQuery(this).attr("src", newSrc[1]);
			if(dim[1] != "") {
				jQuery(this).attr("width", dim[1]);
			}
			if(dim[2] != "") {
				jQuery(this).attr("height", dim[2]);
			}
		}
	});
}

function fancyboxInit() {
	// initialize fancybox for content links with class lightbox
	jQuery("a.lightbox").fancybox();
	// rewrite href of links pointing to .flv's to the videoplayer iframe
	//jQuery("a[href*='.flv']:not(a[href*='playvideo.php'])").each(function(){
	//	var flvfile = jQuery(this).attr('href');
		// jQuery(this).attr('href','/kernenergie/mediapool/de/playvideo.php?videofile='+flvfile+'&iframe');
	//	jQuery(this).attr('href','/kernenergie/mediapool/de/playvideo.php?videofile='+flvfile);
	//});
	// initialize fancybox for videos:
	jQuery("a[href*='.flv']").each(function(){
    var flvhref = jQuery(this).attr('href');
    var newflvhref = flvhref.slice(50).split("&");
     jQuery(this).attr('href',newflvhref[0]+".php").fancybox({
			frameWidth:355,
			frameHeight:310
		});
	});
	
	
	// initialize fancybox for swf videos
	// example link: http://grid.kernenergie.navdev.de/lib/php/exe/flashPlayer.php?f=/kernfragen/documentpool/flash/phy3_4a.swf&w=800&h=600
	jQuery("a[href*='.swf']").each(function(){
		var myhref = jQuery(this).attr("href");
		var uriparts = parse_url(myhref,'PHP_URL_QUERY');
		var myparts = {};
		parse_str(uriparts, myparts);
		var mywidth = Number(myparts.w);
		var myheight = Number(myparts.h);
		var myswf = myparts.f;
		if (isNaN(mywidth) || isNaN(myheight)) {
			// retrieve dimensions via AJAX request
			jQuery.ajax({
				url:"/kernenergie/lib/php/inc.getSwfDimensions.php",
				type:"GET",
				data: "f="+urldecode(myhref),
				dataType: "json",
				success: function(data){
					mywidth = data.w;
					myheight = data.h;
					/* jQuery(this).href='/lib/php/exe/flashPlayer.php?f='+myhref+'&w='+mywidth+'&h='+myheight;
					jQuery(this).fancybox({
						frameWidth:mywidth,
						frameHeight:myheight,
						hideOnContentClick:false
					});
					*/
					setSWFLink(myhref, mywidth, myheight);
				}
			});
		} else {
			jQuery(this).href='/lib/php/exe/flashPlayer.php?f='+myswf+'&w='+mywidth+'&h='+myheight;
			jQuery(this).fancybox({
				frameWidth:mywidth,
				frameHeight:myheight,
				hideOnContentClick:false
			});
		}
	});
}

function setSWFLink(link,w,h) {
	jQuery("a[href='"+link+"']")
		.attr("href",'/lib/php/exe/flashPlayer.php?f='+link+'&w='+w+'&h='+h)
		.fancybox({
			frameWidth:w,
			frameHeight:h,
			hideOnContentClick:false
		});
}


function urldecode (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +   improved by: Orlando
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +      bugfixed by: Rob
    // +      input by: e-mike
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // %        note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // %        note 2: Please be aware that this function expects to decode from UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    // *     example 2: urldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: urldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'
    
    return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}

function parse_str (str, array){
    // http://kevin.vanzonneveld.net
    // +   original by: Cagri Ekin
    // +   improved by: Michael White (http://getsprink.com)
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   reimplemented by: stag019
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: stag019
    // -    depends on: urldecode
    // +   input by: Dreamer
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // %        note 1: When no argument is specified, will put variables in global scope.
    // *     example 1: var arr = {};
    // *     example 1: parse_str('first=foo&second=bar', arr);
    // *     results 1: arr == { first: 'foo', second: 'bar' }
    // *     example 2: var arr = {};
    // *     example 2: parse_str('str_a=Jack+and+Jill+didn%27t+see+the+well.', arr);
    // *     results 2: arr == { str_a: "Jack and Jill didn't see the well." }

    var glue1 = '=', glue2 = '&', array2 = String(str).replace(/^&?([\s\S]*?)&?$/, '$1').split(glue2),
    i, j, chr, tmp, key, value, bracket, keys, evalStr, that = this,
    fixStr = function (str) {
        return that.urldecode(str).replace(/([\\"'])/g, '\\$1').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
    };

    if (!array) {
        array = this.window;
    }

    for (i = 0; i < array2.length; i++) {
        tmp = array2[i].split(glue1);
        if (tmp.length < 2) {
            tmp = [tmp, ''];
        }
        key   = fixStr(tmp[0]);
        value = fixStr(tmp[1]);
        while (key.charAt(0) === ' ') {
            key = key.substr(1);
        }
        if (key.indexOf('\0') !== -1) {
            key = key.substr(0, key.indexOf('\0'));
        }
        if (key && key.charAt(0) !== '[') {
            keys    = [];
            bracket = 0;
            for (j = 0; j < key.length; j++) {
                if (key.charAt(j) === '[' && !bracket) {
                    bracket = j + 1;
                }
                else if (key.charAt(j) === ']') {
                    if (bracket) {
                        if (!keys.length) {
                            keys.push(key.substr(0, bracket - 1));
                        }
                        keys.push(key.substr(bracket, j - bracket));
                        bracket = 0;
                        if (key.charAt(j + 1) !== '[') {
                            break;
                        }
                    }
                }
            }
            if (!keys.length) {
                keys = [key];
            }
            for (j = 0; j < keys[0].length; j++) {
                chr = keys[0].charAt(j);
                if (chr === ' ' || chr === '.' || chr === '[') {
                    keys[0] = keys[0].substr(0, j) + '_' + keys[0].substr(j + 1);
                }
                if (chr === '[') {
                    break;
                }
            }
            evalStr = 'array';
            for (j = 0; j < keys.length; j++) {
                key = keys[j];
                if ((key !== '' && key !== ' ') || j === 0) {
                    key = "'" + key + "'";
                }
                else {
                    key = eval(evalStr + '.push([]);') - 1;
                }
                evalStr += '[' + key + ']';
                if (j !== keys.length - 1 && eval('typeof ' + evalStr) === 'undefined') {
                    eval(evalStr + ' = [];');
                }
            }
            evalStr += " = '" + value + "';\n";
            eval(evalStr);
        }
    }
}



function utf8_encode ( argString ) {
    // Encodes an ISO-8859-1 string to UTF-8  
    // 
    // version: 905.1217
    // discuss at: http://phpjs.org/functions/utf8_encode
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    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 makeTablesZebra()
{
	jQuery(document).ready(function(){
		jQuery(".altTable").find(".trAlt").each(function(){jQuery(this).removeClass("trAlt")});
		jQuery(".altTable").find("tr:odd").each(function(){jQuery(this).addClass("trAlt")});
	});
}


function warenkorb() {
	$order = jQuery('#KEProduktBasket table');
	var finalorderstring = '';
	$order.find('td').each(function(){
		finalorderstring = finalorderstring + jQuery(this).text() + String.fromCharCode(13);
	});
	// finalorderstring = utf8_encode(finalorderstring);
	finalorderstring = str_replace(":",": ",finalorderstring);
	finalorderstring = str_replace("€","Euro",finalorderstring);
	jQuery("textarea[name='order']").attr({value:finalorderstring}).parents('li').hide();
}

function fotostrecke() {
	$fotostrecken = jQuery('div.fotostrecke');
	$fotostrecken.each(function(){

		// do this for each and every Fotostrecke
		var height = jQuery(this).find('img:eq(0)').attr('height');
		jQuery(this).find('img').each(function(){
			if (jQuery(this).attr('height') > height) {
				 height = (jQuery(this).attr('height'));
			}
		});
		jQuery(this).find('ul').height(height);

		// add an item number to each link
		var zaehler = 0;
		jQuery(this).find('div a').each(function(zaehler){
			jQuery(this).addClass('bild'+zaehler);
			zaehler++;
		});

		// set the visibility for the chosen item
		jQuery(this).find('div a').click(function(){
			var showimg = str_replace('bild','',this.className);
			$aktuelle_galerie = jQuery(this).parents('div.fotostrecke');
			$aktuelle_galerie.find('ul li img').fadeOut(250);
			$aktuelle_galerie.find('ul li:eq('+showimg+')').find('img').fadeIn(500);
			return false;
		});
		
	});
}

function newWindow() {
	jQuery('a.newwindow').click(function(){
		this.target = "_blank";
	});
}

function heightFixes() {
	var p = jQuery('.inner .elementText p:first');
	var img = jQuery('.inner .elementPicture img:first');
	var elementText = p.height();
	var elementPicture = img.height();
  if (elementText < elementPicture) {
    var newImgHeight = elementPicture + 50;
    jQuery('.inner .elementText p:first').attr("style", "height:"+ newImgHeight +"px;");
    }
}

/*******************************/
/* Shop / Formulare */
/* Stand: 21.03.2011 - 13:56 */
/*******************************/

var captchaId ;
var isFormularValid ;
var isCaptchaValid ;
var JSON = JSON || {};

JSON.stringify = JSON.stringify || function (obj){
	var t = typeof (obj);
	if (t != "object" || obj === null){
		// simple data type
		if (t == "string") obj = '"'+obj+'"';
		return String(obj);
	}
	else{
		// recurse array or object
		var n, v, json = [], arr = (obj && obj.constructor == Array);
		for (n in obj) {
			v = obj[n]; t = typeof(v);
			if (t == "string") v = '"'+v+'"';
			else if (t == "object" && v !== null) v = JSON.stringify(v);
			json.push((arr ? "" : '"' + n + '":') + String(v));
		}
		return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
	}
};

JSON.parse = JSON.parse || function (str){
	if (str === "") str = '""';
	eval("var p=" + str + ";");
	return p;
};

jQuery(document).ready(function(){
	changeCaptcha();
	jQuery(".wFormular input[type='submit'], .wFormular button[type='submit']").click(function(){
		result = checkFelder();
		if(!result)	{
			changeCaptcha();
			return false ;
		}
		checkCaptcha();
		return false;
	});
	attachWarenkorbIfAny();
	doShop();
});

function attachWarenkorbIfAny(){
	var url=document.URL;
	if(url.indexOf('/Shop20/Order.php') > 0) {
		cookiestring = get_cookie("basket");
		if(cookiestring){
			input1 = createElement("input",["type","name","id","value"],["hidden","basket","basket",cookiestring]);
			document.getElementById("wFormular").appendChild(input1);
			//delete_cookie("basket");
			/*html = jQuery("form#wFormular").html();
			html += '<input type="hidden" name="basket" value="'+cookiestring+'"/>';
			jQuery("form#wFormular").html(html);*/
		}
	}
}

function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function getShopKennzeichendeUrl(){
	var url=document.URL;
	if(url.indexOf('/Shop20/') < 0) return null;
	arr = url.split("?");
	if(arr.length < 2) return null ;
	arr2 = arr[0].split("/");
	index = arr2.length -1 ;
	kennzeichendeurl = arr2[index] + '?' + arr[1];
	return kennzeichendeurl ;
}
function calculateVersandkosten(sum){
		if(0<sum && sum<=25) return 2.50;
		else if(25<sum && sum <=50) return 5.0;
		return 0.0;
}

function calculateGesamptpreis(sum){
	return (sum + calculateVersandkosten(sum));
}

function refreshRightBasket(){
	var  arrBasket ;
	cookiestring = get_cookie("basket");
	if(cookiestring == null) return;
	else {
		objekt = JSON.parse(cookiestring);
		arrBasket = objekt.basket ;
	}
	var n = arrBasket.length ;
	sum = 0 ;
	s='' ;
	counter = 0 ;
	s2 = '' ;
	for(i=0;i < n;i++){
		if(arrBasket[i][1] > 0 && arrBasket[i][0] != null){
			counter += arrBasket[i][1] ;
			if((arrBasket[i][1]-arrBasket[i][5])> 0)
				sum += (arrBasket[i][1]- arrBasket[i][5])* arrBasket[i][3] ;
			s2 += '<tr><td colspan="2"><span class="artikel"><name_de>'+arrBasket[i][2]+'</name_de></span></td></tr>' ;
			positionPreis = '0.00';
			if((arrBasket[i][1]-arrBasket[i][5])> 0){
				positionPreis = (arrBasket[i][1]-arrBasket[i][5]) * arrBasket[i][3] ;
				positionPreis = positionPreis.toFixed(2);
			}
			s2 += '<tr class="artikelrow"><td class="artnrwk">'+arrBasket[i][1]+' x Art.-Nr.:'+arrBasket[i][0]+'</td><td class="artprice">'+positionPreis+' &euro;</td></tr>' ;
		}
	}
	if(!counter) return ;
	versandkosten = calculateVersandkosten(sum);
	versandkosten =versandkosten.toFixed(2);
	gesamtPreis = calculateGesamptpreis(sum) ;
	gesamtPreis=gesamtPreis.toFixed(2);
	sum = sum.toFixed(2);
	s1 = '<div id="KEProduktBasket"><div class="box"><div class="cornersTop"><div><!--I am a new text node.--></div></div><div class="inner line"><h3>Warenkorb</h3></div><div class="inner"><table class="smallwk"><tbody>';
	s1 += '<tr><td colspan="2" class="inhalt">Ihr Warenkorb enth&auml;lt ' + counter+' Artikel</td></tr>' ;
	s1 += s2 ;
	s1 += '<tr class="wkzwischensumme"><td>Zwischensumme</td><td class="zsvalue">'+sum+' &euro;</td></tr>';
	s1 += '<tr class="vk"><td class="zzgl">zzgl. Versandkosten</td><td class="zsvalue">'+versandkosten+' &euro;</td></tr>' ;
	s1 += '<tr class="wkendsumme"><td><strong>Endsumme</strong></td><td class="zsvalue"><strong>'+gesamtPreis+' &euro;</strong></td></tr>' ;
	s1 += '<tr><td colspan="2" class="bestellbuttonzelle"><a title="Bestellen" href="Order.php" class="goto-article">Bestellen</a></td></tr></tbody></table></div><div class="cornersBottom"><div> </div></div></div><br></div>' ;
	html = jQuery("div#sidebar").html();
	//html  = s1 +html ;
	html  = s1;
	jQuery("div#sidebar").html(html);
}

function prepareShopOrder(){
	var  arrBasket ;
	cookiestring = get_cookie("basket");
	if(cookiestring == null)
		return;
	else {
		objekt = JSON.parse(cookiestring);
		arrBasket = objekt.basket ;
	}
	var n = arrBasket.length ;
	sum = 0 ;
	counter = 0 ;
	s4 = '' ;
	for(i=0;i < n;i++){
		if(arrBasket[i][1] > 0 && arrBasket[i][0] != null){
			positionPreis = '0.00';
			if((arrBasket[i][1]-arrBasket[i][5])> 0){
				positionPreis = (arrBasket[i][1]-arrBasket[i][5]) * arrBasket[i][3] ;
				positionPreis = positionPreis.toFixed(2);
			}
			mwst1 = positionPreis * parseFloat(arrBasket[i][4]) /(100.0 + parseFloat(arrBasket[i][4]));
			mwst1 = mwst1.toFixed(2);
			counter += arrBasket[i][1] ;
			if((arrBasket[i][1]-arrBasket[i][5])> 0)
				sum += (arrBasket[i][1]-arrBasket[i][5]) * arrBasket[i][3] ;
			freieExmplareText ="" ;
			if(arrBasket[i][5] > 0)
				freieExmplareText= '<small>(max. '+arrBasket[i][5]+' Freiexemplare)</small>' ;
			s4 += '<tr><td colspan="2"><span class="artikel"><name_de>'+arrBasket[i][2]+'</name_de></span></td></tr>' ;
			s4 += '<tr><td class="artnrwk">Art.-Nr.:'+arrBasket[i][0]+'</td><td class="xmy">'+arrBasket[i][1]+' Stk.'+freieExmplareText+'</td><td class="artprice">'+positionPreis+' &euro;</td></tr>' ;
			s4 += '<tr class="mwst"><td colspan="2" class="mwst">Enthaltene MwSt. ('+arrBasket[i][4]+' %)</td><td class="artprice">'+mwst1+' &euro;</td></tr>' ;
			s4 += '<tr class="artikelrow"><td colspan="3"><form method="get" action=""><input value="'+arrBasket[i][1]+'" name="menge" class="count"><input type="hidden" value="update" name="wAction"><input type="hidden" value="'+arrBasket[i][0]+'" name="id"><span class="updatebutton"><input class="korbaktualisieren" type="submit" value="aktualisieren"></span></form><form method="get" action=""><input type="hidden" value="delete" name="wAction"><input type="hidden" value="'+arrBasket[i][0]+'" name="id"><span class="delbutton"><input class="korbleeren" type="submit" value="entfernen"></span></form></td></tr>' ;
		}
	}
	if(!counter){
		delete_cookie("basket");
		window.location = "index.php" ;
		return ;
	}
	versandkosten = calculateVersandkosten(sum);
	versandkosten =versandkosten.toFixed(2);
	gesamtPreis = calculateGesamptpreis(sum) ;
	gesamtPreis=gesamtPreis.toFixed(2);
	sum = sum.toFixed(2);
	s3 = '<tbody>';
	s3 += '<tr><td colspan="2" class="inhalt">Ihr Warenkorb enth&auml;lt '+ counter+ 'Artikel</td></tr>' ;
	s3 += s4 ;



	s3 += '<tr class="wkzwischensumme"><td colspan="2">Zwischensumme</td><td class="zsvalue">'+sum+' &euro;</td></tr>';

	s3 += '<tr class="vk"><td colspan="2" class="zzgl">zzgl. Versandkosten</td><td class="zsvalue">'+versandkosten+' &euro;</td></tr>' ;
	s3 += '<tr class="wkendsumme"><td colspan="2"><strong>Endsumme</strong></td><td class="zsvalue"><strong>'+gesamtPreis+' &euro;</strong></td></tr></tbody>' ;

	//html = jQuery(".bigContentBlock div#KEProduktBasket table").html();

	//html  = s3 + html ;
	jQuery(".bigContentBlock div#KEProduktBasket table").html(s3);
	jQuery("input.korbleeren").click(function(){
		updateBasket(jQuery(this).parent().parent().find("input[name='id']").val(),0);
	});
		jQuery("input.korbaktualisieren").click(function(){
		updateBasket(jQuery(this).parent().parent().find("input[name='id']").val(),jQuery(this).parent().parent().find("input[name='menge']").val());
	});
}

function doShop() {
	var url=document.URL;
	if(url.indexOf('/Shop20/') > 0) refreshRightBasket();
	if(url.indexOf('/Shop20/Order.php') > 0){
		prepareShopOrder();
		return false;
	}
	kennzeichendeurl = getShopKennzeichendeUrl();//z.B. 2010.php?d=1
	if(kennzeichendeurl == null) return false ;
	url = 'http://81.26.175.4/ajax/getShopFileAction.php';
	jQuery.ajax({
		dataType: 'jsonp' ,
		data: 'url='+ kennzeichendeurl,
		jsonp: 'jsonp_callback',
		url: 'http://81.26.175.4/ajax/getShopFileAction.php',
		success: function (data) {
			replaceShopBody(data);
		}
	});
}

function replaceShopBody(data){
	returnUrl = getShopKennzeichendeUrl();
	returnUrl = returnUrl.split("?")[0] ;
	html1 = '<div class="bigContentBlock"><div class="cornersTop"><div></div></div>';
	html1 += '<div class="inner"><div class="elementHeadline"><h1>'+ data.name +'</h1>';
	html1 += '</div><div class="elementShop"><div id="KEProdukt"><div class="productList">';
	html1 += '<ul><li class="wglListEntryDetails"><form name="formprod1" method="get" id="prod1" action="?d=1">';
	html1 += '<img title="atw - Ausgabe 12 2010" src="';
	html1 += data.bildsrc+'" rel="otherwise" class="wglListThumbnail" alt="atw - Ausgabe 12 2010">';
	html1 += '<input type="hidden" value="addItem" name="wAction" class=" ">';
	html1 += '<input type="hidden" value="/var/www/Produktdaten/kernenergie/atw/2010/produkte/atw_12_10.xml" name="id" class=" ">';
	html1 += '<div class="productListMiddle"><h3 class="wglListTitle"><name_de>'+ data.name +'</name_de></h3>';
	html1 += '<p class="wglListDescription"><information_de>'+ data.info +'</information_de></p>';
	html1 += '<p class="wglListArtikelNummer">Art.-Nr.:'+data.nummer+'</p></div><div class="productListRight">';
	html1 += '<p class="wglListText">Einzelpreis:<strong class="wglListPrice"> '+data.preis+' â‚¬</strong> (inkl. MwSt.)</p>';
	html1 += '<p class="wglListArtikelOrder"><input type="text" value="1" size="2" name="menge" id="mengeatw_12_10" class="count">';
	html1 += '<label for="mengeatw_12_10" class="mengeLabel">StÃ¼ck</label><span class="buttonlarge">';
	html1 += '<input type="submit" value="In den Warenkorb legen" class="buttonlarge"></span></p></div></form>';
	html1 += '<hr class="clearfloat"><hr class="clearfloat"></li></ul></div>';
	html1 += '<a href="/kernenergie/Service/Shop20/'+returnUrl+'" class="wglListMore">ZurÃ¼ck</a></div>';
	html1 += '</div><div style="clear: both; height: 2px;"></div></div><div class="cornersBottom">';
	html1 += '<div></div></div></div>';
	jQuery("div#blockContentInner").html(html1);
	jQuery("div#blockContentInner form input[type = 'submit']").click(function(){
		addToBasket(data);
		window.location = returnUrl ;
		return false;
	});
}

function get_cookie ( cookie_name )
{
	var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
	if ( results )	return ( unescape ( results[2] ) );
	else	return null;
}

function updateBasket(attr,count){
	var  arrBasket ;
	//var found = false ;
	cookiestring = get_cookie("basket");
	if(cookiestring == null) arrBasket = [];
	else {
		objekt = JSON.parse(cookiestring);
		arrBasket = objekt.basket ;
	}
	//menge = parseInt(jQuery("div#blockContentInner form input[name = 'menge']").val());
	var n = arrBasket.length ;
	for(i=0;i < n;i++){
		if(arrBasket[i][0] == attr){
			//found = true ;
			arrBasket[i][1] = count ;
			break;
		}
	}

	var objekt2 = {basket : arrBasket} ;
	cookieValue = JSON.stringify(objekt2);
	set_cookie_shop ("basket", cookieValue) ;
}

function addToBasket(data){
	var  arrBasket ;
	var found = false ;
	cookiestring = get_cookie("basket");
	if(cookiestring == null) arrBasket = [];
	else {
		objekt = JSON.parse(cookiestring);
		arrBasket = objekt.basket ;
	}
	menge = parseInt(jQuery("div#blockContentInner form input[name = 'menge']").val());
	var n = arrBasket.length ;
	for(i=0;i < n;i++){
		if(arrBasket[i][0] == data.nummer){
			found = true ;
			arrBasket[i][1] = parseInt(arrBasket[i][1]) + parseInt(menge) ;
		}
	}
	if(!found){
		arrHelp = [data.nummer,menge,data.name,data.preis,data.mwst,data.kostenfrei];
		arrBasket.push(arrHelp);
	}
	var objekt2 = {basket : arrBasket} ;
	cookieValue = JSON.stringify(objekt2);
	set_cookie_shop ("basket", cookieValue) ;
}

function createElement(tagname,attributes,attributeValues){
	var element = document.createElement(tagname);
	n = attributes.length ;
	for(i=0;i<n;i++)
		element.setAttribute(attributes[i],attributeValues[i]);
	return element ;
}
function sendEmail(){
	prepareRemoteScripting();
	erfolgTextAusgeben();
	delete_cookie("basket");
	var url=document.URL;
	if(url.indexOf('/Shop20/Order.php') > 0){
		jQuery("#sidebar #KEProduktBasket").hide();
		jQuery("#blockContent form").hide();
		jQuery("span.notice").hide();
    jQuery("td.inhalt").html("Vielen Dank f&uuml;r Ihre Bestellung");

		//jQuery(".bigContentBlock #KEProduktBasket").html("Vielen Dank fÃ¼r Ihre Bestellung");
	}

}

function changeCaptcha(){
	var result;
	jQuery(".wFormular li.C img").each(function(index){
		captchaBild = jQuery(this);
		jQuery.ajax({
			dataType: 'jsonp' ,
			jsonp: 'jsonp_callback',
			url: 'http://81.26.175.4/ajax/getCaptchaAction.php',
			success: function (data) {
				captchaBild.attr("src",data.url);
				window.captchaId = data.id;
			}
		});
	});
	return result ;
}

function checkCaptcha(){
	window.isCaptchaValid = false ;
	jQuery(".wFormular input.C").each(function(index){
		value = jQuery(this).val();
		stringQuery = getSTringQuery();
		jQuery.ajax({
			dataType: 'jsonp',
			data: stringQuery + 'captchaid='+window.captchaId ,
			jsonp: 'jsonp_callback',
			url: 'http://81.26.175.4/ajax/checkCaptchaAction.php',
			success: function (data) {
				if(!data.ok){
					changeCaptcha();
				}
				else sendEmail();
			}
		});
	});

}


function erfolgTextAusgeben(){
	erfolgText = '<h2>Vielen Dank!</h2><p>Deine Nachricht wurde versendet!</p>';
	jQuery(".wFormular").html(erfolgText);
}
function getSTringQuery(){
	var result = '' ;
	jQuery(".wFormular input, .wFormular select, .wFormular textarea").each(function(index){
		result += jQuery(this).attr("name") + '=';
		value = jQuery(this).val();
		result += escape(value) + "&";
	});
	return result;
}



function checkFelder(){
	window.isFormularValid= true;
	jQuery(".wFormular span.jsError").each(function(index){
		if(jQuery(this).val() != ""){
			if(jQuery(this).parent().find("input").val()== ""){
				jQuery(this).css("display","block");
				window.isFormularValid = false;
			}else jQuery(this).css("display","none");
		}
	});
	jQuery(".wFormular input.XFEmailField").each(function(index){
		//result = isValidEmailAddress(jQuery(".wFormular input.XFEmailField").val());
		result = isValidEmailAddress(jQuery(this).val());
		if(!result){
			window.isFormularValid = false;
			jQuery(this).parent().find("span.jsError").css("display","block");
		}else
			jQuery(this).parent().find("span.jsError").css("display","none");
	});
	return window.isFormularValid;
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function set_cookie_shop (name, value)
{
	var cookie_string = name + "=" + escape ( value );
	var tExpDate=new Date();
	//cookie for 10 minutes active
	tExpDate.setTime( tExpDate.getTime()+(10*60*1000) );
	cookie_string += "; expires=" + tExpDate.toGMTString();
	document.cookie = cookie_string;
}


function createIframe (iframeName, width, height) {
	s = "<iframe width='"+width+"' height='"+height+"' name='"+iframeName+"'></iframe>";
	helpingDiv = document.createElement('div');
	helpingDiv.innerHTML = s ;
	document.body.appendChild(helpingDiv);
}

function prepareRemoteScripting () {
	createIframe ('iframeajax', 0, 0);
	form = cloneForm("wFormular");
	/*jQuery("form#ajaxform").submit(function(){
		delete_cookie("basket");
	});*/
}

function cloneForm(formId){
	theForm = document.getElementById(formId);
	s="" ;
	for (e=0;e<theForm.elements.length;e++) {
		if (theForm.elements[e].name!='')
			s+= "<input type='hidden' name='"+theForm.elements[e].name+"' value='"+theForm.elements[e].value+"' />" ;
	}
	s+= "<input type='hidden' name='captchaid' value='"+window.captchaId+"' />" ;
  var form;
	if (document.createElement && (form =document.createElement('form'))) {
		form.name = form.id = "ajaxform";
		form.setAttribute("target","iframeajax");
		form.setAttribute("method","post");
		form.setAttribute("action","http://81.26.175.4/ajax/postdata.php");
		form.innerHTML = s ;
		document.body.appendChild(form);
	}
	var script = document.createElement('script');
	script.text = "document.getElementById('ajaxform').submit();" ;
	document.body.appendChild(script);
	return form;
}

/* Shop / Formulare END */
function fixTwitterLink() {
  jQuery('#metaNav a#twitter[href*="Deut_Atomforum"]').attr("href", "http://www.twitter.com/atomforum");
}

function buildNews() {
	//jQuery('.news-de #news').readRss({url:'/kernenergie/RSS/news.sidebar.php'}, 'news');
	jQuery(".inner .news-de #news img.ajaxloader").hide();
	//jQuery('.news-en #news').readRss({url:'http://en.kernenergie.de/kernenergie/RSS/news.sidebar.php'});
	jQuery('.events-de #events').readRss({url:'/kernenergie/RSS/events.sidebar.php'}, 'events');
}


jQuery(document).ready(function(){
	//imgRotateHome();
	buildNews();
	//openExternalNews(); // redirect script
	fancyboxInit();
	breadcrumbFix();
	inlineImages('620');
	smoothScroll();
	contactForm("#wFormular");
	//sidebarInit();
	imageCaptions();
	sendToPrinter();
	recognizePrintVersion();
	fixSitemap();
	fixIE7breadcrumb();
	//zdw();
	mailtoLinks();
	activeState();
	warenkorb();
	makeTablesZebra();
	fotostrecke();
	newWindow();
	printCSS();
	fixTwitterLink();
	//heightFixes();
	//mainnavEffects();
	//replaceImgSrcImgPrc();
});

