/****************************** siemens' new web appearance script *****/
/****************************** Copyright (c) 2007-2009 Siemens AG *****/
/***********************************************************************/
/************************************************* javascript core *****/
/***********************************************************************/
/* $LastChangedDate: 2009-04-24 13:49:48 +0200 (Fr, 24 Apr 2009) $ *****/

// constants

var USE_FLASH_IN_HEADER = false; // could be overwritten in template

var SAFARI_STYLESHEET_REFERENCE = RESOURCES_PATH + "css/styles-safari.css";
var MACOS_STYLESHEET_REFERENCE  = RESOURCES_PATH + "css/styles-macos.css";
var SIFR_SLAB_PATH              = RESOURCES_PATH + "sifr/siemensslab.swf";

var LINK_REL_REGEX = /^jump-to-(.+)$/;

// global vars

var zone     = {};   // global hash for standard zones
var pageType = null; // page type, set in initGlobals()

// serve special styles for Safari and Mac OS

if (Info.browser.isSafari) document.write ('<link rel="stylesheet" type="text/css" media="screen,projection" href="' + SAFARI_STYLESHEET_REFERENCE + '" />');
if (Info.os.isMac)         document.write ('<link rel="stylesheet" type="text/css" media="screen,projection" href="' + MACOS_STYLESHEET_REFERENCE  + '" />');

/********************************************************************/
/* START: layout initalisation                                      */

// inits global vars as std zones and page type

function initGlobals() {

	if(SkipInitializeStartUpScripts != 'undefined' && SkipInitializeStartUpScripts) return;

	var ptReg = /^page-type-/;
	
	if(document.getElementById("page-type-homeapp")== null) return;
	
	pageType = $(document.getElementById("page-type-homeapp")).classNames().find(function(className) {
		return ptReg.test(className);
	}).replace(ptReg, "");

	$A(["content", "header"]).each(function(zoneId) {
		try {
			var _zone = $(zoneId + "-zone");
			if (!_zone) {
				throw ("Implementation Exception: Zone " + zoneId + " is missing.");
			}
			zone[zoneId] = _zone;
		} catch (e) {
			alert(e);
			return false;
		}
	});
	return true;
}

// provides min-width/max-width for IE < 7

function initLayout_IEPre7() {

	var innerWidth = document.documentElement.clientWidth;
	if ($("toolbar-zone")) {
		if (innerWidth <= 996 && innerWidth > 982) {
			$("toolbar-zone").setStyle({"width": (innerWidth - 56) + "px"});
		} else if (innerWidth > 996) {
			$("toolbar-zone").setStyle({"width": "940px"});
		} else {
			$("toolbar-zone").setStyle({"width": "926px"});
		}
	}

	if (innerWidth > 960) {
		$("content-zone").style.width = "auto";
	} else {
		$("content-zone").style.width = "960px";
	}

	if ($("headervisual-zone") && $("fluid-zone") && pageType != "1" && pageType != "entry") {
				var realHeaderWidth = $("headervisual-zone").getWidth() + $("fluid-zone").getWidth();
		if (innerWidth <= realHeaderWidth) {
			var fluidWidth = $("fluid-zone").getWidth();
			var newWidth = innerWidth;
			newWidth = (newWidth - fluidWidth < 364) ? fluidWidth + 364 : newWidth;
			zone.header.setStyle({"width": newWidth + "px"});
		} else {
			zone.header.setStyle({"width": realHeaderWidth + "px"});
		}
	}
}

// inits sifr

function initLayout_sifr() {
	if (typeof sIFR != "function" || Info.browser.isOpera || Info.os.isLinux) return;

		//sIFR.replaceElement(named({sSelector:"div.link-list span.sifr", sFlashSrc: SIFR_SLAB_PATH, sColor:"#666666", sHoverColor:"#990000", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr h3", sFlashSrc: SIFR_SLAB_PATH, sColor:"#333333", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr-h1 h1", sFlashSrc: SIFR_SLAB_PATH, sColor:"#333333", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr-h2 h2", sFlashSrc: SIFR_SLAB_PATH, sColor:"#666666", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr-header h1", sFlashSrc: SIFR_SLAB_PATH, sColor:"#ffffff", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr-header h2", sFlashSrc: SIFR_SLAB_PATH, sColor:"#ffffff", sWmode:"transparent"}));
		//sIFR.replaceElement(named({sSelector:"div.sifr-header h3", sFlashSrc: SIFR_SLAB_PATH, sColor:"#ffffff", sHoverColor:"#990000", sWmode:"transparent"}));
}

// replaces search button and generic buttons by a-elements to provide css styled buttons

function initLayout_buttons() {
	$$("button#site-search-button", "button.generic").each(function(elt) {
		if (!elt.form.id) {
			elt.form.id = Helper.getUniqueId();
		}

		linkAsButton = document.createElement('a');
		linkAsButton.className = (elt.id == "site-search-button") ? "search-button" : "generic-button";
		linkAsButton.href = "javascript:submitForm('" + elt.form.id + "');";
		if (elt.id == "site-search-button") {
			linkAsButton.innerHTML = $(elt).innerHTML;
		} else {
			linkAsButton.innerHTML = '<span><span>' + $(elt).innerHTML + '</span></span>';
		}

		$(elt).parentNode.replaceChild($(linkAsButton), $(elt));

	});
}
/* END: layout initalisation                                        */
/********************************************************************/
/* START: functional initalisation                                  */

function init_contentLayers() {
	if ($("toolbar-nav")) {
		$A($("toolbar-nav").getElementsByTagName("a")).each(
			function(trigger) {
				trigger = $(trigger);
				if(trigger.rel == 'lightbox-energy-layer') return;
				if (LINK_REL_REGEX.test(trigger.rel)) { // layer link
					var id = trigger.rel.replace(LINK_REL_REGEX, "$1");
					var node = $("toolbar-layer-" + id);
					if(node == null) return;
					new ContentLayer(node, trigger);
				} else { // standard link, probably external
					trigger.observe("click", function() {
						HeaderAnimation.animate = false;
						Layer.closeCurrent();
						HeaderAnimation.animate = true;
					}.bindAsEventListener(this));
				}
			}.bind(this)
		);
	}
}

function init_siteIdLayer() {
	if(Info.browser.isIEpre6) { return; }
	if ($("site-id-layer")) {
		trigger = $($("site-id").getElementsByTagName("a")[0]);
		new SiteIdLayer($("site-id-layer"), trigger);
		var links = $("site-id-layer").select("div.toolbar-content a");

		//initalize list element hovers
		links.filter(function(link) {
			return !$(link).hasClassName('c');
		}).each(function(link) {
			link.observe("mouseover", function() {
				$(link).up("li").addClassName("hover");
			});
			link.observe("mouseout", function() {
				$(link).up("li").removeClassName("hover");
			});
		});

		// workaround for missing adjacent sibling combinator
		// ("ul.countries li a.c:hover + a" and "ul.countries li a.worldwide:hover + a") support in IE6 and Safari
		if(Info.browser.isIEpre7 || Info.browser.isSafari) {
			links.filter(function(link) {
				return $(link).hasClassName("c") || $(link).hasClassName("worldwide");
			}).each(function(link) {
				link.observe("mouseover", function() {
					$(link).next("a").addClassName("hover");
				});
				link.observe("mouseout", function() {
					$(link).next("a").removeClassName("hover");
				});
			});
		}
	}
}

function init_siteExplorer() {
	if ($("site-explorer-layer")) {
		trigger = $($("sitemap-link").getElementsByTagName("a")[0]);
		SiteExplorer.layer = new SiteExplorerLayer($("site-explorer-layer"), trigger);
	}
}

/* END: functional initalisation                                    */
/********************************************************************/
/* START: "abstract" layer - do not instantiate                     */

var Layer = Class.create();

Layer.current = null;
Layer.toggle = false;

Layer.initialize = function() {
	Event.observe(document, "click", function(e) {
	
			if (Layer.current) {
				var element   = $(Event.element(e));
				var layerNode = Layer.current.node;
				if (element != layerNode && !element.descendantOf(layerNode)) {
					Layer.closeCurrent();
				}
			}
			
	});

	Event.observe(document, 'keydown', function(e) {
		if (Layer.current) {
			var code = e.keyCode;
			if (code == Event.KEY_ESC) {
				Layer.closeCurrent();
			} else {
				if (Layer.current.onkeydown) {
					Layer.current.onkeydown(e);
				}
			}
		}
	});
}

Layer.closeCurrent = function(newLayer) {
	if (Layer.current) {
		return Layer.current.close(newLayer);
		Layer.current = null;
	}
	return true; /* nothing to close, but ok */
}

Layer.prototype = {

	initialize: function() {
	},

	initSuper: function(node, trigger) {
		this.node   = node;
		this.isOpen = false;
		this.trigger = trigger || null;

		if (this.trigger) {
			this.trigger.observe("click", function(e) {this.toggle(); Event.stop(e); }.bindAsEventListener(this));
		}

		if (Info.browser.isIEpre7) {
			this.iframeLining = new IframeLining(this.node);
			this.correctIframe();
		}

	},

	open: function() {
	
	
		Injection.Style.RemoveBody();
	
		Layer.toggle = !!Layer.current;
		if (Layer.closeCurrent(this)) {
			if (this.beforeOpen()) {
				this.show();
				if (this.iframeLining) {
					this.iframeLining.show();
				}
				this.isOpen = true;
				Layer.current = this;
				Layer.toggle = false;
				this.afterOpen();
				return true;
			}
		}

		return false;
	},

	close: function(newLayer) {
	
		if (this.beforeClose(newLayer)) {
			if (this.iframeLining) {
				this.iframeLining.hide();
			}
			this.hide(newLayer);
			this.isOpen = false;
			Layer.current = null;
			this.afterClose(newLayer);
			return true;
		}
		return false;
	},

	toggle: function() {
		if (this.isOpen) {
			this.close();
		} else {
			this.open();
		}
	},

	afterClose: function() {},

	afterOpen: function() {},

	beforeClose: function() {
		return true;
	},

	beforeOpen: function() {
		return true;
	},

	correctIframe: function() {},

	hide: function(newLayer) {},

	show: function() {},

	superSetOffset: function(offset) {
		this.setOffset(offset);
		if (this.iframeLining) {
			this.iframeLining.refresh();
		}
	},

	setOffset: function(offset) {}

}

/* END: "abstract" layer                                            */
/********************************************************************/
/* START: content layer e. g. contact layer                         */

var ContentLayer = Class.create();

ContentLayer.prototype = Object.extend(new Layer, {

	initialize: function(node, trigger) {
		this.initSuper(node, trigger);

		var closeButton = Helper.getCloseButton(this.node);

		if (!closeButton) alert("Implementation Error: no close button found");

		closeButton.observe("click",
			function() {
				this.close();
			}.bindAsEventListener(this)
		);
	},

	afterClose: function(newLayer) {
		if (!Layer.toggle) {
			HeaderAnimation.augment();
		}
	},

	afterOpen: function() {
		HeaderAnimation.diminish();
	},

	beforeClose: function() {
		HeaderAnimation.unregisterLayer();
		return true;
	},

	beforeOpen: function() {
		HeaderAnimation.registerLayer(this);
		return true;
	},

	hide: function() {
		this.node.removeClassName("active-layer");
		this.trigger.up().removeClassName("active");
	},

	show: function() {
		this.node.addClassName("active-layer");
		this.trigger.up().addClassName("active");
		this.trigger.addClassName("clicked"); // avoids hover effect (only for the first time)
		this.trigger.observe("mouseout",
			function(e) {
				var elm = Event.findElement(e, "a");
				elm.removeClassName("clicked");
				elm.stopObserving("mouseout");
			}
		);
	},

	setOffset:function(offset) {
		this.node.style.top = offset + "px";
	}

});

/* END: content layer                                               */
/********************************************************************/
/* START: site id                                                   */

var SiteIdLayer = Class.create();

SiteIdLayer.prototype = Object.extend(new Layer, {

	initialize: function(node, trigger) {
		this.initSuper(node, trigger);
		var closeButton = Helper.getCloseButton(this.node);
		closeButton.observe("click", function(){this.close();}.bindAsEventListener(this));
	},

	afterClose: function(newLayer) {
		if (!Layer.toggle) {
			HeaderAnimation.augment();
		}
	},

	afterOpen: function() {
		HeaderAnimation.diminish();
	},

	beforeClose: function() {
		HeaderAnimation.unregisterLayer();
		return true;
	},

	beforeOpen: function() {
		HeaderAnimation.registerLayer(this);
		return true;
	},

	correctIframe: function() {
		this.iframeLining.correction.left = -1;
		this.iframeLining.correction.top = -1;
	},

	hide: function() {
		$("site-id-wrapper").removeClassName("active");
	},

	show: function() {
		$("site-id-wrapper").addClassName("active");
		this.trigger.addClassName("clicked"); // avoids hover effect (only for the first time)
		this.trigger.observe("mouseout",
			function(e) {
				this.trigger.removeClassName("clicked");
				this.trigger.stopObserving("mouseout");
			}.bindAsEventListener(this)
		);
	}

});

/* END: site id                                                     */
/********************************************************************/
/* START: site explorer                                             */

var SiteExplorer = Class.create();

SiteExplorer.getContent = function() {
	// overwrite this to implement a custom method
	alert("Implementation Error: SiteExplorer.getContent is missing");
}

SiteExplorer.registerEvents = function(contentNode) {
	$A(contentNode.getElementsByTagName("a")).each(function(link) {
		link = $(link);
		if (link.hasClassName("page")) {
			link.observe("click", function(e) {
				SiteExplorer.followLink(link);
			});
		} else {
			link.observe("click", function(e) {
				SiteExplorer.toggleSubtree(link);
			});
		}
	});
}

SiteExplorer.toggleSubtree = function(node) {
	if (node.up().hasClassName("expanded")) {
		SiteExplorer.collapseSubtree(node);
	} else {
		SiteExplorer.expandSubtree(node);
	}
}

SiteExplorer.followLink = function(linkNode) {
	// not implemented
}

SiteExplorer.expandSubtree = function(linkNode) {
	// not implemented
}

SiteExplorer.collapseSubtree = function(linkNode) {
	// not implemented
}

/* END: site explorer                                               */
/********************************************************************/
/* START: site explorer layer                                       */
var SiteExplorerLayer = Class.create();

SiteExplorerLayer.prototype = Object.extend(new Layer, {

	initialize: function(node, trigger) {
		this.initSuper(node, trigger);

		var closeButton = Helper.getCloseButton(this.node);

		closeButton.observe("click",
			function() {
				this.close();
			}.bindAsEventListener(this)
		);

		this.content     = null;
		this.contentNode = $(document.createElement("div"));
		this.node.appendChild(this.contentNode);
	},

	afterClose: function(newLayer) {
	
		if (!Layer.toggle) {
			HeaderAnimation.augment();
		}
	},

	afterOpen: function() {
		if (Info.browser.isIE) { // correct float bug in all IE versions
			Helper.getCloseButton(this.node).setStyle(
				{
					position: "absolute",
					left: (this.contentNode.getDimensions().width - 20) + "px"
				}
			);
		}
		
		
		HeaderAnimation.diminish();
	},

	beforeClose: function() {
		HeaderAnimation.unregisterLayer();
		return true;
	},

	beforeOpen: function() {
		this.getContent();
		HeaderAnimation.registerLayer(this);
		return true;
	},

	hide: function() {
	
		$("site-explorer").removeClassName("active");
	},

	show: function() {
		$("site-explorer").addClassName("active");
		this.trigger.addClassName("clicked"); // avoids hover effect (only for the first time)
		this.trigger.observe("mouseout",
			function(e) {
				this.trigger.removeClassName("clicked");
				this.trigger.stopObserving("mouseout");
			}.bindAsEventListener(this)
		);
	},

	getContent: function() {
		if (!this.content) {
			this.content = SiteExplorer.getContent();
			this.contentNode.id="site-explorer-layer-list";
			this.contentNode.innerHTML = this.content;
			SiteExplorer.registerEvents(this.contentNode);
			
			setTimeout("init_lightboxLayer_explorer()",1000)
			
			
		}
	}

});

/* END: site explorer layer                                         */
/********************************************************************/
/* START: header zone animation                                     */

var HeaderAnimation = Class.create();

HeaderAnimation.initialize = function() {
	this.layer         = null;
	this.slide         = {}
	this.animate       = true;
	this.augmented     = true;
	this.listenerQueue = new ListenerQueue('');

	if (pageType == "1" || pageType == "2" || pageType == "entry") {
		if (USE_FLASH_IN_HEADER && !Info.hasTransparencySupport) {
			// deactivate animation on browsers that have problems with wmode=transparent */
			this.diminishable = false;
		} else {
			this.diminishable = true;
		}
	} else {
		this.diminishable = false;
	}
	



	this.diminish      = (this.diminishable) ? this.diminish_393 : function() {};
	this.augment       = (this.diminishable) ? this.augment_393 : function() {};

	this.toolbarNode   = $("toolbar-nav");
	this.toolbarHeight = (this.toolbarNode) ? this.toolbarNode.up().getHeight() : 0;
}

HeaderAnimation.augment_393 = function() {

	if (!this.augmented) {
		this.listenerQueue.fire('augmentBegin');
		
		if(EnergRaterSiteExplorerAnimateLocker) {
		
		} else {
		
			if (this.animate) {
				this._toggleAnimated([154, 174, 204, 244, 284, 324, 354, 385, 393]);
			} else {
				this._toggle(393);
			}
		}
		
		this.augmented = true;
	}
}

HeaderAnimation.diminish_393 = function() {
	if (this.augmented) {
		this.listenerQueue.fire('diminishBegin');
		
			if(EnergRaterSiteExplorerAnimateLocker) {
			
			}else {
				if (this.animate) {
					this._toggleAnimated([363, 313, 263, 213, 183, 163, 152, 144]);
				} else {
					this._toggle(144);
				}
			}
		
		this.augmented = false;
		
	}
}

HeaderAnimation.registerLayer = function(layer) {
	this.layer = layer;
	if (this.layer) {
		this.layer.superSetOffset(this.toolbarHeight + Position.cumulativeOffset(this.toolbarNode)[1]);
	}
}

HeaderAnimation.unregisterLayer = function() {
	this.layer = null;
}

HeaderAnimation._toggle = function(offset) {
	this.diminished = !this.diminished;
	this._setOffsets(offset);
	if (this.diminished) {
		this.listenerQueue.fire('diminishDone');
	} else {
		this.listenerQueue.fire('augmentDone');
	}
}

HeaderAnimation._toggleAnimated = function(offsets) {
	this.slide.offsets = offsets;
	this.slide.length = offsets.length;
	this.slide.index = 1;

	this._toggle(this.slide.offsets[0]);
	new PeriodicalExecuter(function(pe) {
		if (this.slide.index >= this.slide.length) {
			this.diminished = !this.diminished;
			if (this.diminished) {
				this.listenerQueue.fire('diminishDone');
			} else {
				this.listenerQueue.fire('augmentDone');
			}
			pe.stop();
		} else {
			this._setOffsets(this.slide.offsets[this.slide.index]);
			this.slide.index++;
		}
	}.bind(this), .06);
}

HeaderAnimation._setOffsets = function(offset) {
	$(document.getElementById("page-type-homeapp")).style.backgroundPosition = "0 " + (offset - 393) + "px";
	zone.header.style.height = offset + "px";
	if (this.layer) {
		this.layer.superSetOffset(this.toolbarHeight + 1 + offset);
	}
}

/* END: header zone animation                                       */
/********************************************************************/
/* START: Listener queue                                            */

ListenerQueue = Class.create();

ListenerQueue.prototype = {
	initialize: function(wildcardHandlerName) {
		this._listeners = [];
		this._wildcardHandlerName = wildcardHandlerName;
	},

	add: function(listener) {
		this._listeners.push(listener);
	},

	remove: function(listener) {
		var listeners = this._listeners;
		for (var i = 0; i < listeners.length; i++) {
			if (listeners[i] == listener) {
				listeners.splice(i, 1);
				break;
			}
		}
	},

	fire: function(handlerName, args) {
		var listeners = [].concat(this._listeners);
		for (var i = 0; i < listeners.length; i++) {
			var listener = listeners[i];
			try {
				listener[handlerName].call()
			} catch(e) {
				//if there is no handler with handlerName
				if (this._wildcardHandlerName)listener[this._wildcardHandlerName].call();
			}
		}
	}
}

/* END: Listener queue                                              */
/********************************************************************/
/* START: iframe to hide select elements in IE<7                    */

var IframeLining = Class.create();

IframeLining.prototype = {

	initialize: function(layer) {
		this.layer = layer;
		this.active = false;
		this.correction = {
			width:  0,
			height: 0,
			left:   0,
			top:    0
		} // since cumulativeOffset doesn't include borders

		this.div = $(document.createElement("div"));
		this.div.className = 'iframe-lining';
		this.div.innerHTML = '<iframe src="javascript:false" frameborder="0" style="position:absolute; left:0; top:0; width:100%; height:100%; margin:0; padding:0; background:transparent; filter:alpha(opacity=0);"></iframe>';
		this.hide();
		document.getElementById("page-type-homeapp").appendChild(this.div);
	},

	show: function() {
		this.refresh();
		this.div.show();
		this.active = true;
	},

	refresh: function() {
		var dimension = $(this.layer).getDimensions();
		var position  = Position.cumulativeOffset(this.layer);
		this.div.setStyle(
			{
				height: (dimension.height + this.correction.height) + "px",
				left:   (position[0] + this.correction.left)        + "px",
				top:    (position[1] + this.correction.top)         + "px",
				width:  (dimension.width + this.correction.width)   + "px",
				position: "absolute",
				zIndex:   "1"
			}
		);
	},

	setOffset: function(offset) {
		this.div.style.top = offset + "px";
	},

	hide: function() {
		this.div.hide();
		this.active = false;
	}
}

/* END: iframe to hide select elements in IE<7                    */
/********************************************************************/
/* START: misc. helper                                              */

var Location = Class.create();

Location.setMarker = function(id) {
	// not implemented
}

Location.clearMarker = function() {
	// not implemented
}

var Helper = Class.create();

Helper._uniqueIdInt = 0;

Helper.getUniqueId = function() {
	Helper._uniqueIdInt++;
	return "unique-" + Helper._uniqueIdInt;
}

Helper.getCloseButton = function(layer) {
	var closeButton = layer.down("div.close");
	if (!closeButton) { // could be IE<6
		$A(layer.getElementsByTagName("div")).each(
			function(div) {
				if ($(div).hasClassName("close")) {
					closeButton = $(div);
				}
			}
		);
	}
	return closeButton;
}

// a wrapper to show a nicer function call in the status bar

function submitForm(id) {
	$(id).submit();
}

function init_newWindow(domChunk) {
	$$(domChunk).each(function(element) {
		element.observe('click', function(e) {
			window.open(this.href);
			Event.stop(e);
		}.bindAsEventListener(element));
	});
}

/* END: misc. helper                                                */
/********************************************************************/

var Injection = {

				Style : {
						
						Body : function()
						{
							var obj = null;
							var objBody = null;
							
							obj = $('page-type-homeapp');
							objBody = document.body;
							
	
						try {
								if(obj != null && objBody != null)
								{
									if(obj.hasClassName("page-type-3")) {
									
										objBody.addClassName('body-injection-3');
										
									} else if(obj.hasClassName("page-type-2")) {
									
										objBody.addClassName('body-injection-2');
										
									}
							}
							} catch(ex)
							{
								// exception handling ..
							}
						},
						RemoveBody : function() {
												
								document.body.removeClassName('body-injection-1');
								document.body.removeClassName('body-injection-2');
						}
				},
				
				IsBigHeader : function() {
				
						var obj = null;
						
						obj = $('page-type-homeapp');
					
					return obj.hasClassName("page-type-2");
					
				},
				
				GetHeaderSize : function() {
				
					var _header = $('header-zone');
					var _toolbar = $('toolbar-zone');

						if(_header != null && _toolbar != null)	{	
							return (parseInt(_header.getDimensions().height - _toolbar.getDimensions().height));
						}
						else
						{
							return 0;
						}
				},
				
			GetResizedHeight :function(element)
				{
				
					var _x = $('pnlContainer').getDimensions().height;
					var _y = $(element).getDimensions().height;
					
					_x = _x - Injection.GetHeaderSize();
				
				
					if((_x < _y)) { 
						return  (_y + 200);
					}else
					{
						return 0;
					}					
				}					
				
	
}

	Header = {
	
		Visual : {
		
			Get: function() {
				return $('header-visual-container');
			},
			Hide : function() {
				return $('header-visual-container').hide();
			},
			Show : function() {
				return $('header-visual-container').show();
			},
			SetContent : function(str) {
				
				if(str =='') alert('String is Empty');
			
				try{
					$('header-visual-container').innerHTML=str;
			    }
			    catch (ex)
			    {
					alert('Fail:' + ex )
			    }
			},
			
			GetContent : function() {
			
				return $('header-visual-container').innerHTML;
			},
			SetFlash: function(width, height, file) {
			
				// Skip Admin...
				if(document.body.className == "editing-page-cms")  return;
			
				if(width =='' || height =='' || file =='') {return false;}
			
				Event.observe(window, "load", function() {
					var sft = new SWFObject(file, "header",width, height, "7", "#ffffff");
					sft.addParam("wmode", "transparent");
					sft.write("header-visual-container");
				});

			},
			Sample: function(width, height, file) {
			
					Header.Visual.Show();
					var spml = new SWFObject(file, "header",width, height, "7", "#ffffff");
					spml.addParam("wmode", "transparent");
					spml.write("header-visual-container");

			},
			Extender: function(a, b, c, d) {
		
				var _value = $(a).value;
				
				$(a).value = _value == '' ? 'true' : '';
				
				$('extender-link').innerHTML = $(a).value == '' ? c : d;
				$(b).innerHTML = $(a).value;
				
				if(typeof(SaveState) != 'undefined') {
					SaveState(b);
				}
				
				
				if($(a).value == '') {
						$('page-type-homeapp').removeClassName('extend-banner');
				}else
				{
				
					if(!$('page-type-homeapp').hasClassName('extend-banner')){
					
						$('page-type-homeapp').addClassName('extend-banner')
					}
				}
								
			},
			BigStageExtender: function(a, b, c, d) {
		
				var _value = $(a).value;
				
				$(a).value = _value == '' ? 'true' : '';
				
				$('extender-banner-link').innerHTML = $(a).value == '' ? c : d;
				$(b).innerHTML = $(a).value;
				
				if(typeof(SaveState) != 'undefined') {
					SaveState(b);
				}
				
				if($(a).value == '') {
						
					$('page-type-homeapp').addClassName('page-type-3')								
					$('page-type-homeapp').removeClassName('page-type-2')	

					
					if($('big-header-options') != null)
					{
						$('big-header-options').hide();
					}
					
					if($('header-visual-container') != null)
					{
						$('header-visual-container').hide();
					}
					
				}else
				{

					$('page-type-homeapp').addClassName('page-type-2')								
					$('page-type-homeapp').removeClassName('page-type-3')	
					$('big-header-options').show();
					
					if($('header-visual-container') == null) {
						alert("Please first click Save button to start using big banner area option");
						
						if($('headline-desc-save') != null)
						{
							$('headline-desc-save').show();
						}
							if($('header-options-navigation') != null)
						{
							$('header-options-navigation').hide();
						}
						
					}
											
				}
								
			}			
				
		}
	}

		var Product = {
				Compare: {
						Toggle:  function(obj, group, heade) {
								if(obj!= 'undefined' && obj!= null)
								{
								  obj.className = obj.className == 'collapse' ? 'expand':'collapse';
								}
								
								$$('tr.' + group).each(function(s) {
									 
									 if(obj.className == 'collapse'){	
									 	
										s.show();	
										$(heade).className='headline headline-type-1 active';
									 }
									 else
									 {
										 s.hide();
										 
										 $(heade).className='headline headline-type-1 passive';
										 
										 }
									});
							}
					},
					
					Feature : {
					
						Toggle:  function(obj, pid) { 
						
							obj.className = obj.className == 'collapse' ? 'expand':'collapse';
						
							var _obj = $('Child' + pid)  
							
								 if(obj.className == 'collapse'){	
										_obj.hide();	
									 }
									 else {
										_obj.show();
									}
						}
					}
			};


var PageTabbed = {
	Show : function(str,obj){

			
			var objclass = document.getElementsByClassName("TabbedPanelsTab");
			
			for (var j=0;j<objclass.length;j++){
					objclass[j].className = 'TabbedPanelsTab';
			}

			obj.className='TabbedPanelsTab TabbedPanelsTabSelected';
			str.className='TabbedPanelsContent TabbedPanelsContentVisible';

			
			PageTabbed.Reset(str);
	
		},
		
	Reset : function(str){
	
			var strclass = document.getElementsByClassName("TabbedPanelsContent");
			
			for (var i=0;i<strclass.length;i++){
				
				strclass[i].style.display = "none"
				
				if(strclass[i].id== str)
				{
					strclass[i].style.display = "block"
				}		
			}
						
	
			return true;

		}


	}

function UpdateNewCIValidatorDisplay(val)
{
	if (!val.isvalid)
	{
		$(val).hide();
		$(val).up().setStyle({color:'red'});
	}
	else
	{
		$(val).up().setStyle({color:''});
	}
}


var ToolbarOption = {

	Init : function(){
			
			var dimension = $('header-zone').getDimensions();
			
			if(dimension.height == 393)
			{
				ToolbarOption.Up();
			}else{
				ToolbarOption.Down();
			}
			
		},
	Up : function(){
	
			$('page-type-homeapp').style.backgroundPosition = '0pt -249px';
			$('header-zone').style.height = '144px';
			
			if($('toolbar-option') != null) {
				$('toolbar-option').innerHTML = '<strong>Toolbar Down</strong>';
			}
			
		},
		
	Down : function(){
	
			$('page-type-homeapp').style.backgroundPosition = '0px 0px';
			$('header-zone').style.height = '393px';
			
			if($('toolbar-option') != null) {
				$('toolbar-option').innerHTML = '<strong>Toolbar Up</strong>';
			}
			

		}

	}
	
	

var PageHelper = {

		ScrollTopAndLeft : function ()
		{
 				if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
					document.body.scrollTop = 0;
					document.body.scrollLeft = 0;
				} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
					document.documentElement.scrollTop = 0 ;
					document.documentElement.scrollLeft = 0 ;
				}
		},
		
		ScrollTopAndRight : function ()
		{
 				if( document.body && ( document.body.scrollRight || document.body.scrollTop ) ) {
					document.body.scrollTop = 0;
					document.body.scrollRight = 0;
				} else if( document.documentElement && ( document.documentElement.scrollRight || document.documentElement.scrollTop ) ) {
					document.documentElement.scrollTop = 0 ;
					document.documentElement.scrollRight = 0 ;
				}
		}		
 
 }
 
function ClassAddRemove(e)
{
	var oldclass = e.className;
	if (oldclass.indexOf("withhover")!=-1)
	{
		e.className = e.className.replace("withhover","");
	}else
	{
		e.className = "withhover "+ oldclass;
	}
}
