Event.observe(window,"load",function(){$$(".picasatn").each(function(a){Event.observe($(a.id),"click",function(){var b=a.id.split("_")[0];window["Picasa_AutoPlay"+b]=0;Picasa_SwitchImage(b,a.id)})})});function Picasa_RightClick(a,b,c){if(b<c){window["Picasa_AutoPlay"+a]=0;b++;window["pica"+a].ci=b;Picasa_SwitchImage(a.toString(),a+"_"+b)}}function Picasa_LeftClick(a,b){if(b>1){window["Picasa_AutoPlay"+a]=0;b--;window["pica"+a].ci=b;Picasa_SwitchImage(a.toString(),a+"_"+b)}} function Picasa_SwitchImage(a,b){b=b.split("_")[1];$(a).hide();$(a).update('<img src="'+window["picp"+a].rows[b-1].contentsrc+"?size="+window["pica"+a].albumwidth+'" />');$(a).appear();$(a+"_summary").update(window["picp"+a].rows[b-1].summary);if(eval("document.f_"+a)!=null)$("product_"+a).value="Bild-Nr."+b;window["pica"+a].ci=b;location.hash=b;Picasa_HighlightCurrentImage(a);window["pica"+a].scrollbar&&Picasa_PositionSlider(a)} function Picasa_PositionSlider(a){var b=Math.ceil(window["pica"+a].imagesperrow/2),c=window["pica"+a].ci,d=window["pica"+a].tndistance+window["pica"+a].tnwidth,e=(c-b)*d;if(c<=b)e=0;else if(c>window["picp"+a].rows.length-b+1)e=(window["picp"+a].rows.length-window["pica"+a].imagesperrow)*d;new Effect.Move($(a+"_picasaslider"),{x:-e,mode:"absolute"})} function Picasa_HighlightCurrentImage(a){var b=window["pica"+a].ci;$$("#"+a+'_picasaimagebar img[class="picasathumbnailactive"]',"#"+a+"_picasaimagebar img:not([class])").each(function(d){$(d.id).removeClassName("picasathumbnailactive");$(d.id).addClassName("picasathumbnailinactive")});$(a+"img_"+b).addClassName("picasathumbnailactive");$(a+"img_"+b).removeClassName("picasathumbnailinactive");$("picasacurrimage_"+a).update(b+" / "+window["picp"+a].rows.length);if(location.hash.length>1){var c=location.hash.replace(/#/, "");c!=b&&isNaN(c)==false&&c>0&&c<=window["picp"+a].rows.length&&Picasa_SwitchImage(a,a+"_"+Math.floor(c))}}function Picasa_AutoPlay(a){if(window["pica"+a].ci>=window["picp"+a].rows.length)window["pica"+a].ci=1;else window["pica"+a].ci++;Picasa_SwitchImage(a,a+"_"+window["pica"+a].ci)};

// Soy (Google Closure)
var soy=soy||{};(function(){var a=navigator.userAgent,b=a.indexOf("Opera")==0;soy.IS_OPERA_=b;soy.IS_IE_=!b&&a.indexOf("MSIE")!=-1;soy.IS_WEBKIT_=!b&&a.indexOf("WebKit")!=-1})();soy.StringBuilder=function(a){this.buffer_=soy.IS_IE_?[]:"";a!=null&&this.append.apply(this,arguments)};soy.StringBuilder.prototype.bufferLength_=0; soy.StringBuilder.prototype.append=function(a,b){if(soy.IS_IE_)if(b==null)this.buffer_[this.bufferLength_++]=a;else{this.buffer_.push.apply(this.buffer_,arguments);this.bufferLength_=this.buffer_.length}else{this.buffer_+=a;if(b!=null)for(var c=1;c<arguments.length;c++)this.buffer_+=arguments[c]}return this};soy.StringBuilder.prototype.clear=function(){if(soy.IS_IE_)this.bufferLength_=this.buffer_.length=0;else this.buffer_=""}; soy.StringBuilder.prototype.toString=function(){if(soy.IS_IE_){var a=this.buffer_.join("");this.clear();a&&this.append(a);return a}else return this.buffer_};soy.renderElement=function(a,b,c){a.innerHTML=b(c)};soy.renderAsFragment=function(a,b){var c=document.createElement("div");c.innerHTML=a(b);if(c.childNodes.length==1)return c.firstChild;else{for(a=document.createDocumentFragment();c.firstChild;)a.appendChild(c.firstChild);return a}}; soy.$$augmentData=function(a,b){function c(){}c.prototype=a;a=new c;for(var d in b)a[d]=b[d];return a};soy.$$escapeHtml=function(a){a=String(a);if(!soy.$$EscapeHtmlRe_.ALL_SPECIAL_CHARS.test(a))return a;if(a.indexOf("&")!=-1)a=a.replace(soy.$$EscapeHtmlRe_.AMP,"&amp;");if(a.indexOf("<")!=-1)a=a.replace(soy.$$EscapeHtmlRe_.LT,"&lt;");if(a.indexOf(">")!=-1)a=a.replace(soy.$$EscapeHtmlRe_.GT,"&gt;");if(a.indexOf('"')!=-1)a=a.replace(soy.$$EscapeHtmlRe_.QUOT,"&quot;");return a}; soy.$$EscapeHtmlRe_={ALL_SPECIAL_CHARS:/[&<>\"]/,AMP:/&/g,LT:/</g,GT:/>/g,QUOT:/\"/g};soy.$$escapeJs=function(a){a=String(a);for(var b=[],c=0;c<a.length;c++)b[c]=soy.$$escapeChar(a.charAt(c));return b.join("")};soy.$$escapeChar=function(a){if(a in soy.$$escapeCharJs_)return soy.$$escapeCharJs_[a];var b=a,c=a.charCodeAt(0);if(c>31&&c<127)b=a;else{if(c<256){b="\\x";if(c<16||c>256)b+="0"}else{b="\\u";if(c<4096)b+="0"}b+=c.toString(16).toUpperCase()}return soy.$$escapeCharJs_[a]=b}; soy.$$escapeCharJs_={"\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\x0B",'"':'\\"',"'":"\\'","\\":"\\\\"};soy.$$escapeUri=function(a){a=String(a);return soy.$$ENCODE_URI_REGEXP_.test(a)?a:encodeURIComponent(a)};soy.$$ENCODE_URI_REGEXP_=/^[a-zA-Z0-9\-_.!~*'()]*$/; soy.$$insertWordBreaks=function(a,b){a=String(a);for(var c=[],d=0,h=false,f=false,e=0,j=0,g=0,k=a.length;g<k;++g){var i=a.charCodeAt(g);if(e>=b&&i!=soy.$$CharCode_.SPACE){c[d++]=a.substring(j,g);j=g;c[d++]=soy.WORD_BREAK_;e=0}if(h){if(i==soy.$$CharCode_.GREATER_THAN)h=false}else if(f)switch(i){case soy.$$CharCode_.SEMI_COLON:f=false;++e;break;case soy.$$CharCode_.LESS_THAN:f=false;h=true;break;case soy.$$CharCode_.SPACE:f=false;e=0;break}else switch(i){case soy.$$CharCode_.LESS_THAN:h=true;break; case soy.$$CharCode_.AMPERSAND:f=true;break;case soy.$$CharCode_.SPACE:e=0;break;default:++e;break}}c[d++]=a.substring(j);return c.join("")};soy.$$CharCode_={SPACE:32,AMPERSAND:38,SEMI_COLON:59,LESS_THAN:60,GREATER_THAN:62};soy.WORD_BREAK_=soy.IS_WEBKIT_?"<wbr></wbr>":soy.IS_OPERA_?"&shy;":"<wbr>";soy.$$changeNewlineToBr=function(a){a=String(a);if(!soy.$$CHANGE_NEWLINE_TO_BR_RE_.test(a))return a;return a.replace(/(\r\n|\r|\n)/g,"<br>")};soy.$$CHANGE_NEWLINE_TO_BR_RE_=/[\r\n]/; soy.$$bidiTextDir=function(a,b){a=soy.$$bidiStripHtmlIfNecessary_(a,b);if(!a)return 0;return soy.$$bidiDetectRtlDirectionality_(a)?-1:1};soy.$$bidiDirAttr=function(a,b,c){b=soy.$$bidiTextDir(b,c);if(b!=a)return b<0?"dir=rtl":b>0?"dir=ltr":"";return""};soy.$$bidiMarkAfter=function(a,b,c){var d=soy.$$bidiTextDir(b,c);return soy.$$bidiMarkAfterKnownDir(a,d,b,c)}; soy.$$bidiMarkAfterKnownDir=function(a,b,c,d){return a>0&&(b<0||soy.$$bidiIsRtlExitText_(c,d))?"\u200e":a<0&&(b>0||soy.$$bidiIsLtrExitText_(c,d))?"\u200f":""};soy.$$bidiStripHtmlIfNecessary_=function(a,b){return b?a.replace(soy.$$BIDI_HTML_SKIP_RE_," "):a};soy.$$BIDI_HTML_SKIP_RE_=/<[^>]*>|&[^;]+;/g; soy.$$bidiSpanWrap=function(a,b){b=String(b);var c=soy.$$bidiTextDir(b,true),d=soy.$$bidiMarkAfterKnownDir(a,c,b,true);if(c>0&&a<=0)b="<span dir=ltr>"+b+"</span>";else if(c<0&&a>=0)b="<span dir=rtl>"+b+"</span>";return b+d};soy.$$bidiUnicodeWrap=function(a,b){b=String(b);var c=soy.$$bidiTextDir(b,true),d=soy.$$bidiMarkAfterKnownDir(a,c,b,true);if(c>0&&a<=0)b="\u202a"+b+"\u202c";else if(c<0&&a>=0)b="\u202b"+b+"\u202c";return b+d};soy.$$bidiLtrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u2c00-\ufb1c\ufdfe-\ufe6f\ufefd-\uffff"; soy.$$bidiNeutralChars_="\u0000- !-@[-`{-\u00bf\u00d7\u00f7\u02b9-\u02ff\u2000-\u2bff";soy.$$bidiRtlChars_="\u0591-\u07ff\ufb1d-\ufdfd\ufe70-\ufefc";soy.$$bidiRtlDirCheckRe_=new RegExp("^[^"+soy.$$bidiLtrChars_+"]*["+soy.$$bidiRtlChars_+"]");soy.$$bidiNeutralDirCheckRe_=new RegExp("^["+soy.$$bidiNeutralChars_+"]*$|^http://");soy.$$bidiIsRtlText_=function(a){return soy.$$bidiRtlDirCheckRe_.test(a)};soy.$$bidiIsNeutralText_=function(a){return soy.$$bidiNeutralDirCheckRe_.test(a)}; soy.$$bidiRtlDetectionThreshold_=0.4;soy.$$bidiRtlWordRatio_=function(a){var b=0,c=0;a=a.split(" ");for(var d=0;d<a.length;d++)if(soy.$$bidiIsRtlText_(a[d])){b++;c++}else soy.$$bidiIsNeutralText_(a[d])||c++;return c==0?0:b/c};soy.$$bidiDetectRtlDirectionality_=function(a){return soy.$$bidiRtlWordRatio_(a)>soy.$$bidiRtlDetectionThreshold_};soy.$$bidiLtrExitDirCheckRe_=new RegExp("["+soy.$$bidiLtrChars_+"][^"+soy.$$bidiRtlChars_+"]*$"); soy.$$bidiRtlExitDirCheckRe_=new RegExp("["+soy.$$bidiRtlChars_+"][^"+soy.$$bidiLtrChars_+"]*$");soy.$$bidiIsLtrExitText_=function(a,b){a=soy.$$bidiStripHtmlIfNecessary_(a,b);return soy.$$bidiLtrExitDirCheckRe_.test(a)};soy.$$bidiIsRtlExitText_=function(a,b){a=soy.$$bidiStripHtmlIfNecessary_(a,b);return soy.$$bidiRtlExitDirCheckRe_.test(a)};


// New Picasa Version with Thumbnal Position
// This file was automatically generated from wmpicasa.soy.
// Please don't edit this file by hand.

if (typeof wmsoy == 'undefined') { var wmsoy = {}; }
if (typeof wmsoy.picasa == 'undefined') { wmsoy.picasa = {}; }


wmsoy.picasa.slideshow = function(opt_data, opt_sb) {
  var output = opt_sb || new soy.StringBuilder();
  output.append('\t<div id="picasa_album_', soy.$$escapeHtml(opt_data.a.id), '" style="width:', soy.$$escapeHtml(opt_data.a.albumwidth), 'px;" >', (! opt_data.a.tnposition || opt_data.a.tnposition == 2) ? '<table border="0" cellpadding="0" cellspacing="0"><tr style="text-align:center;height:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; vertical-align:bottom;"><td style="text-align:center; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px;cursor:pointer;"><div id="' + soy.$$escapeHtml(opt_data.a.id) + '" onclick="Picasa_RightClick(' + soy.$$escapeHtml(opt_data.a.id) + ',pica' + soy.$$escapeHtml(opt_data.a.id) + '.ci,' + soy.$$escapeHtml(opt_data.p.rows.length) + ');"><img src="' + soy.$$escapeHtml(opt_data.p.rows[opt_data.a.ci - 1].contentsrc) + '?size=' + soy.$$escapeHtml(opt_data.a.albumwidth) + '" /></div></td></tr></table><div class="picasaaddinfo" id="picasaaddinfo_' + soy.$$escapeHtml(opt_data.a.id) + '"></div><div id="picasacurrimage_' + soy.$$escapeHtml(opt_data.a.id) + '" style="float:right;font-size:0.8em;text-align:right;padding:13px 25px 0 0;"></div><div style="clear:both; height:0px;"></div><div id="' + soy.$$escapeHtml(opt_data.a.id) + '_summary" style="margin:10px 0 10px 0; font-size:1.' + ((opt_data.a.albumwidth == 200) ? '0' : '3') + 'em; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; text-align:center;">' + ((opt_data.p.rows[opt_data.a.ci - 1].summary) ? soy.$$escapeHtml(opt_data.p.rows[opt_data.a.ci - 1].summary) : '') + '</div>' : '', '<div style="width:', soy.$$escapeHtml(opt_data.a.albumwidth), 'px;" id="picasaimagecontrol', soy.$$escapeHtml(opt_data.a.id), '">');
  if (opt_data.a.scrollbar == 1) {
    output.append('<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="picasaclick" onclick="Picasa_LeftClick(', soy.$$escapeHtml(opt_data.a.id), ',pica', soy.$$escapeHtml(opt_data.a.id), '.ci);"><img src="', soy.$$escapeHtml(opt_data.a.tnimage), 'arrowleft_', soy.$$escapeHtml(opt_data.a.tnwidth), '.gif" class="picasaarrows"/></td><td class="picasacenter"><div id="', soy.$$escapeHtml(opt_data.a.id), '_picasaimagebar" style="width:', soy.$$escapeHtml(opt_data.a.imagebarwidth), 'px;overflow:hidden;position:relative;margin-left:auto;margin-right:auto;"><div id="', soy.$$escapeHtml(opt_data.a.id), '_picasaslider" class="picasaslider"><table cellpadding="0" cellspacing="0" border="0"><tr valign="top">');
    var photoList69 = opt_data.p.rows;
    var photoListLen69 = photoList69.length;
    for (var photoIndex69 = 0; photoIndex69 < photoListLen69; photoIndex69++) {
      var photoData69 = photoList69[photoIndex69];
      output.append('<td style="width:', soy.$$escapeHtml(opt_data.a.tnwidth), 'px;padding-right:', soy.$$escapeHtml(opt_data.a.tndistance), 'px;vertical-align:middle;"><div id="', soy.$$escapeHtml(opt_data.a.id), '_', soy.$$escapeHtml(photoIndex69 + 1), '" class="picasatn" style="float:left;width:', soy.$$escapeHtml(opt_data.a.tnwidth), 'px;', (opt_data.a.scrollbar == 0) ? 'margin-bottom:' + soy.$$escapeHtml(opt_data.a.tndistance) + 'px;' : '', ';cursor:pointer;"><img src="', soy.$$escapeHtml(photoData69.contentsrc), '?size=', soy.$$escapeHtml(opt_data.a.tnwidth), '" id="', soy.$$escapeHtml(opt_data.a.id), 'img_', soy.$$escapeHtml(photoIndex69 + 1), '" /></div></td>');
    }
    output.append('</tr></table></div></div></td><td class="picasaclick" onclick="Picasa_RightClick(', soy.$$escapeHtml(opt_data.a.id), ',pica', soy.$$escapeHtml(opt_data.a.id), '.ci,', soy.$$escapeHtml(opt_data.p.rows.length), ');"><img src="', soy.$$escapeHtml(opt_data.a.tnimage), 'arrowright_', soy.$$escapeHtml(opt_data.a.tnwidth), '.gif" class="picasaarrows"/></td></tr></table>');
  } else {
    output.append('<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="picasacenter"><div id="', soy.$$escapeHtml(opt_data.a.id), '_picasaimagebar" style="width:', soy.$$escapeHtml(opt_data.a.imagebarwidth), 'px;overflow:hidden;position:relative;margin-left:auto;margin-right:auto;"><table cellpadding="0" cellspacing="0" border="0"><tr valign="top">');
    var photoList113 = opt_data.p.rows;
    var photoListLen113 = photoList113.length;
    for (var photoIndex113 = 0; photoIndex113 < photoListLen113; photoIndex113++) {
      var photoData113 = photoList113[photoIndex113];
      output.append('<td class="picasathumbnail_', soy.$$escapeHtml(opt_data.a.tnwidth), '"><div id="', soy.$$escapeHtml(opt_data.a.id), '_', soy.$$escapeHtml(photoIndex113 + 1), '" class="picasatn" style="float:left;width:', soy.$$escapeHtml(opt_data.a.tnwidth), 'px;', (opt_data.a.scrollbar == 0) ? 'margin-bottom:' + soy.$$escapeHtml(opt_data.a.tndistance) + 'px;' : '', ';cursor:pointer;"><img src="', soy.$$escapeHtml(photoData113.contentsrc), '?size=', soy.$$escapeHtml(opt_data.a.tnwidth), '" id="', soy.$$escapeHtml(opt_data.a.id), 'img_', soy.$$escapeHtml(photoIndex113 + 1), '" /></div></td>', ((photoIndex113 + 1) / opt_data.a.tnonlyamount == Math.ceil((photoIndex113 + 1) / opt_data.a.tnonlyamount)) ? '</tr>' + ((photoIndex113 == photoListLen113 - 1 != true) ? '<tr>' : '') : '');
    }
    output.append('</tr></table></div></td></tr></table>');
  }
  output.append('</div>', (opt_data.a.tnposition && opt_data.a.tnposition == 1) ? '<div class="picasaaddinfo" id="picasaaddinfo_' + soy.$$escapeHtml(opt_data.a.id) + '"></div><div id="picasacurrimage_' + soy.$$escapeHtml(opt_data.a.id) + '" style="float:right;font-size:0.8em;text-align:right;padding:13px 25px 0 0;"></div><div style="clear:both; height:0px;"></div><div id="' + soy.$$escapeHtml(opt_data.a.id) + '_summary" style="margin:10px 0 10px 0; font-size:1.' + ((opt_data.a.albumwidth == 200) ? '0' : '3') + 'em; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; text-align:center;">' + ((opt_data.p.rows[opt_data.a.ci - 1].summary) ? soy.$$escapeHtml(opt_data.p.rows[opt_data.a.ci - 1].summary) : '') + '</div><table border="0" cellpadding="0" cellspacing="0"><tr style="text-align:center;height:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px; vertical-align:top; margin-top:15px;"><td style="text-align:center; width:' + soy.$$escapeHtml(opt_data.a.albumwidth) + 'px;cursor:pointer;"><div id="' + soy.$$escapeHtml(opt_data.a.id) + '" onclick="Picasa_RightClick(' + soy.$$escapeHtml(opt_data.a.id) + ',pica' + soy.$$escapeHtml(opt_data.a.id) + '.ci,' + soy.$$escapeHtml(opt_data.p.rows.length) + ');"><img src="' + soy.$$escapeHtml(opt_data.p.rows[opt_data.a.ci - 1].contentsrc) + '?size=' + soy.$$escapeHtml(opt_data.a.albumwidth) + '" /></div></td></tr></table>' : '', '</div>');
  if (!opt_sb) return output.toString();
};





/* Hierachical Drop Down Menu */
var Menu = Class.create();
Menu.prototype = {
	
	initialize: function(idOrElement, name, customConfigFunction) {
		this.name = name;
		this.type = "menu";
		this.closeDelayTimer = null;
		this.closingMenuItem = null;
		this.config();
		if (typeof customConfigFunction == "function") {
			this.customConfig = customConfigFunction;
			this.customConfig();
		}
		this.rootContainer = new MenuContainer(idOrElement, this);
	},
	
	config: function() {
		this.collapseBorders = true;
		this.quickCollapse = true;
		this.closeDelayTime = 300;
	}
}





var MenuContainer = Class.create();
MenuContainer.prototype = {
	
	initialize: function(idOrElement, parent) {
		this.type = "menuContainer";
		this.menuItems = [];
		this.init(idOrElement, parent);
	},

	init: function(idOrElement, parent) {
		this.element = $(idOrElement);
		this.parent = parent;
		this.parentMenu = (this.type == "menuContainer") ? ((parent) ? parent.parent : null) : parent;
		this.root = parent instanceof Menu ? parent : parent.root;
		this.id = this.element.id;

		if (this.type == "menuContainer") {
			if (this.element.hasClassName("level1")) 
				this.menuType = "horizontal";
			else if (this.element.hasClassName("dssubmenus_1") || this.element.hasClassName("submenus_1")) 
				this.menuType = "dropdown";
			else 
				this.menuType = "flyout";
	
			if (this.menuType == "flyout" || this.menuType == "dropdown") {
				this.isOpen = false;
				Element.setStyle(this.element, {
					position: "absolute",
					top: "0px",
					left: "0px",
					visibility: "hidden"
				});
			}
			else {
				this.isOpen = true;
			}
		}
		else {
			this.isOpen = this.parentMenu.isOpen;
		}

		var childNodes = this.element.childNodes;
		if (childNodes == null) return;
	
		for (var i = 0; i < childNodes.length; i++) {
			var node = childNodes[i];
			if (node.nodeType == 1) {
				if (this.type == "menuContainer") {
					if (node.tagName.toLowerCase() == "li") {
						this.menuItems.push(new MenuItem(node, this));
					}
				}
				else {
					if (node.tagName.toLowerCase() == "ul")
						this.subMenu = new MenuContainer(node, this);
				}
			}
		}
	},

	getBorders: function(element) {
		var ltrb = ["Left","Top","Right","Bottom"];
		var result = {};
		for (var i = 0; i < ltrb.length; ++i) {
			if (this.element.currentStyle)
				var value = parseInt(this.element.currentStyle["border"+ltrb[i]+"Width"]);
			else if (window.getComputedStyle)
				var value = parseInt(window.getComputedStyle(this.element, "").getPropertyValue("border-"+ltrb[i].toLowerCase()+"-width"));
			else
				var value = parseInt(this.element.style["border"+ltrb[i]]);
			result[ltrb[i].toLowerCase()] = isNaN(value) ? 0 : value;
		}
		return result;
	},

	open: function() {
		if (this.root.closeDelayTimer) window.clearTimeout(this.root.closeDelayTimer);
		this.parentMenu.closeAll(this);
		this.isOpen = true;
		if (this.menuType == "dropdown") {
			Element.setStyle(this.element,{
				left: (Position.positionedOffset(this.parent.element)[0]) + "px",
				top: (Position.positionedOffset(this.parent.element)[1] + Element.getHeight(this.parent.element)) + "px"
			});
	  	}
		else if (this.menuType == "flyout") {
			var parentMenuBorders = this.parentMenu ? this.parentMenu.getBorders() : new Object();
			var thisBorders = this.getBorders();
			if ((Position.positionedOffset(this.parentMenu.element)[0] + this.parentMenu.element.offsetWidth + this.element.offsetWidth + 20) > (window.innerWidth ? window.innerWidth : document.body.offsetWidth)) {
				Element.setStyle(this.element,{
					left: (- this.element.offsetWidth - (this.root.collapseBorders ?  0 : parentMenuBorders["left"])) + "px"
				});
			}
			else {
				Element.setStyle(this.element,{
					left: (this.parentMenu.element.offsetWidth - parentMenuBorders["left"] - (this.root.collapseBorders ?  Math.min(parentMenuBorders["right"], thisBorders["left"]) : 0)) + "px"
				});
			}
			Element.setStyle(this.element,{
				top: (this.parent.element.offsetTop - parentMenuBorders["top"] - this.menuItems[0].element.offsetTop) + "px"
			});
		}
		Element.setStyle(this.element,{visibility: "visible"});
	},

	close: function() {
		Element.setStyle(this.element,{visibility: "hidden"});
		this.isOpen = false;
		this.closeAll();
	},

	closeAll: function(trigger) {
		for (var i = 0; i < this.menuItems.length; ++i) {
			this.menuItems[i].closeItem(trigger);
		}
	}
}


var MenuItem = Class.create();
Object.extend(Object.extend(MenuItem.prototype, MenuContainer.prototype), {
							
	initialize: function(idOrElement, parent) {
		var menuItem = this;
		this.type = "menuItem";
		this.subMenu;
		this.init(idOrElement, parent);
		if (this.subMenu) {
			this.element.onmouseover = function() {
				menuItem.subMenu.open();
			}
		}
		else {
			if (this.root.quickCollapse) {
				this.element.onmouseover = function() {
					menuItem.parentMenu.closeAll();
				}
			}
		}
		var linkTag = this.element.getElementsByTagName("A")[0];
		if (linkTag) {
			linkTag.onfocus = this.element.onmouseover;
			this.link = linkTag;
			this.text = linkTag.text;
		}
		if (this.subMenu) {
			this.element.onmouseout = function() {
				if (menuItem.root.openDelayTimer) window.clearTimeout(menuItem.root.openDelayTimer);


if (menuItem.root.closeDelayTimer) window.clearTimeout(menuItem.root.closeDelayTimer);



eval(menuItem.root.name + ".closingMenuItem = menuItem");
				menuItem.root.closeDelayTimer = window.setTimeout(menuItem.root.name + ".closingMenuItem.subMenu.close()", menuItem.root.closeDelayTime);
			}
		}
	},
	
	openItem: function() {
		this.isOpen = true;
		if (this.subMenu) { this.subMenu.open(); }
	},
	
	closeItem: function(trigger) {
		this.isOpen = false;
		if (this.subMenu) {
			if (this.subMenu != trigger) this.subMenu.close();
		}
	}
});

// END Hierachical Drop Down Menu
