var SAFARI_STYLESHEET_REFERENCE = "./_resources/css/styles_safari.css";
/********************************************************************/
/*START: browser detection*/
function BrowserDetection()
{
	var sUserAgent = navigator.userAgent.toLowerCase();

	// browser name
	this.isIE = (sUserAgent.indexOf('msie') != -1);
	this.isIE7 = (this.isIE && typeof window.XMLHttpRequest != "undefined");
	this.isSafari = (sUserAgent.indexOf('safari') != - 1);
	this.isMozilla = (sUserAgent.indexOf('gecko') != -1 && this.isSafari == false);
	this.isFirefox = (this.isMozilla == true && sUserAgent.indexOf('firefox') != -1);
	this.isOpera = (sUserAgent.indexOf('opera') != -1 || typeof window.opera != "undefined");
}

var oBrowser = new BrowserDetection();
/*END: browser detection*/
/********************************************************************/
/*START: Safari Browser Detection and Serve Styles */
if (oBrowser.isSafari)
{
	document.write ("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + SAFARI_STYLESHEET_REFERENCE + "\" />");
}
/*END: Safari Browser Detection and Serve Styles */
/********************************************************************/
/*START: Fix IE 6 Text Selection Bug & Flickering Background Images */
if(window.createPopup && document.compatMode && document.compatMode=="CSS1Compat" && !window.XMLHttpRequest){
document.onreadystatechange=function fixIE6AbsPos(){if(!document.body){return;}if(document.readyState == "complete"){if($(document.body).getStyle("height")=="100%"){window.onresize=function fixIE6AbsPosOnResize(){if(!document.body){return;}document.body.style.height="100%";document.body.style.height=document.body.offsetHeight+'px';}}document.body.style.height=document.documentElement.scrollHeight+'px';}}
try{document.execCommand('BackgroundImageCache', false, true);}catch(e){}
}
/*END: Fix IE 6 Text Selection Bug & Flickering Background Images   */
/********************************************************************/
/*START: SWFObject v1.5 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
/*END: SWFObject v1.5 */
/********************************************************************/
/*START: addDOMLoadEvent*/
function addDOMLoadEvent(f){if(!window.__ADLE){var n=function(){if(arguments.callee.d)return;arguments.callee.d=true;if(window.__ADLET){clearInterval(window.__ADLET);window.__ADLET=null}for(var i=0;i<window.__ADLE.length;i++){window.__ADLE[i]()}window.__ADLE=null};if(document.addEventListener)document.addEventListener("DOMContentLoaded",n,false);/*@cc_on @*//*@if (@_win32)var proto="src='javascript:void(0)'";if(location.protocol=="https:")proto="src=//:";document.write("<scr"+"ipt id=__ie_onload defer "+proto+"><\/scr"+"ipt>");var s=document.getElementById("__ie_onload");s.onreadystatechange=function(){if(this.readyState=="complete")n()};/*@end @*/if(/WebKit/i.test(navigator.userAgent)){window.__ADLET=setInterval(function(){if(/loaded|complete/.test(document.readyState)){n()}},10)}window.onload=n;window.__ADLE=[]}window.__ADLE.push(f)}
/*END: addDOMLoadEvent*/
/********************************************************************/
/*START: window dimensions as an extension to prototype*/
Position.getWindowSize = function(w)
{
	var width, height;
	w = w ? w : window;
	width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
	height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
	return { width: width, height: height };
}
/*END: window dimensions as an extension to prototype*/
/********************************************************************/
/*START: individual functions*/
function initLayout()
{
	if(oBrowser.isIE && !oBrowser.isIE7){
		var innerWidth = Position.getWindowSize().width;
		if(innerWidth < 990) $('toolbar-zone').setStyle({'width':'916px'});
		else $('toolbar-zone').setStyle({'width':(innerWidth - 66)+"px"});
		if($('headervisual-zone') && $('fluid-zone') && !$('header-zone').hasClassName('w362')) {
			var sStoreFluidZoneLeftPos = $('fluid-zone').getStyle('left');
			var iRealHeaderWidth = $('headervisual-zone').getWidth() + $('fluid-zone').getWidth();
			if(innerWidth <= iRealHeaderWidth) {
				var fluidWidth = $('fluid-zone').getWidth();
				var newWidth = innerWidth;
				newWidth = (newWidth - fluidWidth < 364) ? fluidWidth + 364 : newWidth;
				$('header-zone').setStyle({'width': newWidth + 'px'});
			} else {
				$('header-zone').setStyle({'width': iRealHeaderWidth + 'px'});
			}
		}
	}
}

/*START: toolbar */
var checkHashRegex = /(.*)(#)(toolbar-layer[^#]+)(.*)/;

function toggleState() {
	$(document.body).toggleClassName('h393');
	$(document.body).toggleClassName('h144');
	this.isActivated = !this.isActivated;
};

var Toolbar = Class.create();
Toolbar.prototype = {
	initialize : function(toolbar) {
		this.toolbar = $(toolbar);
		if (!this.toolbar) return;
		this.isActivated = false;
		if($(document.body).hasClassName('h393')){
			this.toggleState = toggleState.bind(this);
		}

		this.allToolbarLinks = $A(this.toolbar.getElementsByTagName('a'));

		//filter only internal toolbar-layer hrefs
		this.filteredToolbarLinks = this.allToolbarLinks.findAll(function(s) {
			return checkHashRegex.test(s.href);
		});

		this.showLayer(this.getInitialToolbarLayer());
		this.allToolbarLinks.each(this.setupToolbarLink.bind(this));
	},

	setupToolbarLink : function(elm) {
		if(this.filteredToolbarLinks.include(elm)) Event.observe(elm,'click',this.activateLayer.bindAsEventListener(this),false);
		else Event.observe(elm,'click',this.resetLayers.bindAsEventListener(this),false);
	},

	toggleStateOrig : function() {
		$(document.body).toggleClassName('h393');
		$(document.body).toggleClassName('h144');
		this.isActivated = !this.isActivated;
	},

	activateLayer : function(ev) {
		var elm = Event.findElement(ev, "a");
		Event.stop(ev);
		this.filteredToolbarLinks.without(elm).each(this.hideLayer.bind(this));
		this.toggleLayer(elm);
		$(elm).addClassName('clicked');
		this.bindFx = this.removeClickIndicator.bindAsEventListener(this);
		Event.observe(elm,'mouseout', this.bindFx, false);
		if(elm.style.outline === undefined && elm.style.MozOutline === undefined) elm.blur(); // remove outline when CSS style is not supported i.e. in IE
	},

	resetLayers : function() {
		this.filteredToolbarLinks.each(this.hideLayer.bind(this));
	},

	removeClickIndicator : function(ev) {
		var elm = Event.findElement(ev, "a");
		Event.stop(ev);
		$(elm).removeClassName('clicked');
		Event.stopObserving(elm,'mouseout', this.bindFx, false);
	},

	hideLayer : function(elm) {
		var listElement = $(elm).up();
		if(this.toggleState && listElement.hasClassName('active') && this.isActivated) this.toggleState();
		listElement.removeClassName('active');
		$(this.toolbarLayerId(elm)).hide();
	},

	toggleLayer : function(elm) {
		var listElement = $(elm).up();
		var toolbarLayer = $(this.toolbarLayerId(elm));
		if(toolbarLayer){
			if(toolbarLayer.controller){
				if(this.toggleState && (!listElement.hasClassName('active') && !this.isActivated) || (listElement.hasClassName('active') && this.isActivated)) this.toggleState();
				listElement.toggleClassName('active');
				toolbarLayer.controller.setToolbar(this);
				toolbarLayer.controller.positionTopLayer(this.calcLayerPosition());
			}
			toolbarLayer.toggle();
		}
	},

	showLayer : function(elm) {
		if(elm != null) {
			var listElement = $(elm).up();
			if((this.toggleState && !listElement.hasClassName('active') && !this.isActivated)) this.toggleState();
			listElement.addClassName('active');
			var toolbarLayer = $(this.toolbarLayerId(elm));
			if(toolbarLayer){
				if(toolbarLayer.controller){
					toolbarLayer.controller.setToolbar(this);
					toolbarLayer.controller.positionTopLayer(this.calcLayerPosition());
				}
				toolbarLayer.show();
			}
		}
	},

	toolbarLayerId : function(elm) {
		return elm.href.replace(checkHashRegex,'$3');
	},

	calcLayerPosition : function() {
		var calcHeight = this.toolbar.getHeight() ? this.toolbar.getHeight() : this.toolbar.up().getHeight();
		return calcHeight + Position.cumulativeOffset(this.toolbar)[1];
	},

	getInitialToolbarLayer : function() {
		if(checkHashRegex.test(document.location.href)) {
			var loc = document.location.href.replace(checkHashRegex,'$3');
			var elm = this.filteredToolbarLinks.find(function(s) {
				return s.href.replace(checkHashRegex,'$3') == loc;
			});
			return elm;
		} else {
			return null;
		}
	}
}

var ToolbarLayer = Class.create();
ToolbarLayer.prototype = {
	initialize : function(toolbarLayer) {
		if (!toolbarLayer || !$(toolbarLayer.id)) return;
		this.toolbarLayer = $(toolbarLayer.id);
		this.toolbarLayer.controller = this;
		this.toolbarLayerClose = this.toolbarLayer.getElementsByClassName('close');
		if(!this.toolbarLayerClose[0]) // special treatment IE5.5
		{
			this.toolbarLayerClose = getElementsByClassNameIE55('close', this.toolbarLayer);
		}
		if(this.toolbarLayerClose[0])
		{
			Event.observe(this.toolbarLayerClose[0].firstDescendant(), 'click', this.hideLayer.bindAsEventListener(this));
		}
	},

	hideLayer : function() {
		if(this.toolbarLayer)
		{
			this.toolbarLayer.hide();
			if(this.toolbar) this.toolbar.resetLayers();
		}
	},

	positionTopLayer : function(xPos) {
		if(this.toolbarLayer)
		{
			this.toolbarLayer.style.top = xPos +"px";
		}
	},
	
	setToolbar : function (toolbar) {
		this.toolbar = toolbar;
	}
};

var ToolbarLayers = {
	initialize: function() {
		//find all toolbar layers
		this.toolbarLayerSelectors = $$('div.toolbar-layer');

		if (!this.toolbarLayerSelectors) return;

		this.toolbarLayerSelectors.each(function(element) {
			new ToolbarLayer(element);
		});
	}
};
/*END: toolbar */

function getElementsByClassNameIE55(class_name, ancestor_obj)
{
	//NOTE: getElementsByClassNameIE55 requires prototype
	var ancestor = ancestor_obj ? $(ancestor_obj) : null;
	var all_obj,ret_obj=new Array(),j=0;
	if(document.all)all_obj=document.all;
	else if(document.getElementsByTagName && !document.all)all_obj=document.getElementsByTagName("*");
	for(i=0;i<all_obj.length;i++) {
		if($(all_obj[i]).hasClassName(class_name)) {
			if(ancestor && !$(all_obj[i]).descendantOf(ancestor)) continue;
			ret_obj[j]=all_obj[i];
			j++
		}
	}
	return ret_obj;
}
/*END: individual functions*/
/********************************************************************/
/*START: Functions onload and onresize */
if (typeof addDOMLoadEvent != "undefined") {
	addDOMLoadEvent(initLayout);
	addDOMLoadEvent(ToolbarLayers.initialize.bind(ToolbarLayers));
	addDOMLoadEvent(function(){ new Toolbar('toolbar-nav'); });
} else {
	Event.observe(window, 'load', initLayout, false);
	Event.observe(window, 'load', ToolbarLayers.initialize.bind(ToolbarLayers), false);
	Event.observe(window,'load',function(){ new Toolbar('toolbar-nav'); }, false);
}

Event.observe(window, 'resize', initLayout, false);
/*END: Functions onload and onresize */
/********************************************************************/
