/** ***************************************************************** */
/* START: browser detection */
var Info = new function() {
	var userAgent = navigator.userAgent.toLowerCase();
	var b = {};
	b.isIE = userAgent.indexOf("msie") != -1;
	b.isIE7 = b.isIE && (typeof window.XMLHttpRequest != "undefined");
	b.isIEpre7 = b.isIE && !b.isIE7;
	b.isIEpre6 = b.isIE && (!document.compatMode);
	b.isSafari = userAgent.indexOf("safari") != -1;
	b.isMozilla = userAgent.indexOf("gecko") != -1 && b.isSafari == false;
	b.isFirefox = b.isMozilla == true && userAgent.indexOf("firefox") != -1;
	b.isOpera = typeof window.opera != "undefined";
	this.browser = b;
	this.os = {
		isLinux : (navigator.platform.indexOf("Linux") == 0),
		isMac : (navigator.platform.indexOf("Mac") == 0),
		isWin : (navigator.platform.indexOf("Win") == 0)
	}
};
/* END: browser detection */

/* START: page tools */
var Tools = {
	spamProtector : /\.wewantnospam\./,

	print : function() {
		window.print();
	},

	unSpamProtect : function() {
		var arrLinks = $$('a');
		for ( var i = 0; i < arrLinks.length; ++i) {
			if (Object.isString(arrLinks[i].href) && arrLinks[i].href.indexOf('mailto:') == 0) {
				arrLinks[i].href = arrLinks[i].href.replace(Tools.spamProtector, '@');
				if (Object.isString(arrLinks[i].title)) {
					arrLinks[i].title = arrLinks[i].title.replace(Tools.spamProtector, '@');
				}
				if (arrLinks[i].childNodes[0] && Object.isString(arrLinks[i].childNodes[0].nodeValue)) {
					arrLinks[i].innerHTML = arrLinks[i].childNodes[0].nodeValue.replace(Tools.spamProtector, '@');
				}
			}
		}
	},
	
	openPopup: function(url, width, height, toolbar, scrollbars) {
		window.open(url,'popup','width=' + width + ',height=' + height + ',toolbar=' + toolbar + ',scrollbars=' + scrollbars); 
	}

};
/* END: page tools */

/* START: Search */
var Search = {
	oldValue : ''
};
/* END: Search */

/* START: Finder */
var Finder = {
	partnerRoot : '/content/modules/partner/',
	defaultName : '',
	defaultStreet : '',
	defaultZIP : '',
	defaultCity : '',

	setCanton : function(name) {
		var canton = $('canton');
		for ( var i = 0; i < canton.options.length; i++) {
			if (canton.options[i].value == name) {
				canton.selectedIndex = i;
				Finder.submitForm();
				$('partnerFinder').submit();
				break;
			}
		}
	},
	
	showForm : function(obj) {
		var finderLink = $('finderLink');
		if (Object.isElement(finderLink)) {
			finderLink.toggle();
		}
		var finderFormAdvanced = $('finderFormAdvanced');
		if (Object.isElement(finderFormAdvanced)) {
			finderFormAdvanced.toggle();
		}
		var finder = $('finder');
		if (Object.isElement(finder)) {
			finder.toggle();
		}
	},
	
	submitForm : function() {
		var finderFormName = $('finderFormName');
		if (Object.isElement(finderFormName) && Finder.defaultName == finderFormName.value) {
			finderFormName.value = '';
		}
		var finderFormStreet = $('finderFormStreet');
		if (Object.isElement(finderFormStreet) && Finder.defaultStreet == finderFormStreet.value) {
			finderFormStreet.value = '';
		}
		var finderFormZIP = $('finderFormZIP');
		if (Object.isElement(finderFormZIP) && Finder.defaultZIP == finderFormZIP.value) {
			finderFormZIP.value = '';
		}
		var finderFormCity = $('finderFormCity');
		if (Object.isElement(finderFormCity) && Finder.defaultCity == finderFormCity.value) {
			finderFormCity.value = '';
		}
	},
	
	redirectToGarage: function() {
		if (parent && parent.location && Object.isString(parent.location.href)) { 
			var params = parent.location.href.toQueryParams();
			if (Object.isString(params.u)) {
				//prevent endless loop
				if (location.href.indexOf(Finder.partnerRoot + params.u) == -1) {
					location.href = location.protocol + '//' + location.host + Finder.partnerRoot + params.u;
				}
			}
		}
	},

    doFilter: function() {
        Finder.submitForm();
        $('partnerFinder').submit();
    }

};
/* END: Finder */

/* START: Flashplayer */
var Flashplayer = {
		
	totalmobilColors: {
		frameColor : 'EEEEEE',
		fontColor : '737373',
		iconColor : '8B7B40',
		themeColor : 'D0B355'
	},
	amagColors: {
		frameColor : 'EEEEEE',
		fontColor : '737373',
		iconColor : '73A0D2',
		themeColor : '456DAD'
	},
	config : {
		showShareButton : false,
		showPlaylistButton : false,
		showScrubBar : true
	},
	params : {
		menu : 'false',
		wmode : 'transparent',
		allowScriptAccess : 'sameDomain',
		allowFullScreen: true
	},
	attributes : {},

	loadMovie : function(flashvars, id, width, height) {
		if (typeof(width) == 'undefined') {
			width = 460;
		}
		if (typeof(height) == 'undefined') {
			height = 375;
		}
		CQ_swfobject.embedSWF('/apps/base/components/flashplayer/player.swf',
				id, width, height, '10.0.0',
				'/libs/foundation/components/shared/swf/expressInstall.swf',
				flashvars, Flashplayer.params,
				Flashplayer.attributes);
	}
};
/* END: Flashplayer */

/* START: News */
var News = {
	tabLink : function(element) {
		element.addClassName('active');
		element.siblings().invoke('removeClassName', 'active');
	},
	tabContent : function(element) {
		element.show();
		element.siblings().invoke('hide');
	}
};
/* END: News */

/* START: Rules */
var Rules = {
	rules : "1.0",

	'a.popup:click' : function(element, event) {
		var sHref = getHref(element);
		var iWidth = 680;
		var iHeight = 500;
		if (element.rel && element.rel.indexOf("|") > -1) {

			var aSize = element.rel.split("|");
			iWidth = aSize[0];
			iHeight = aSize[1];
		}
		window.open(sHref, "popup", 'height=' + iHeight + ',width=' + iWidth
				+ ',toolbar=no,status=no,resizable=yes,scrollbars=yes');
		Event.stop(event);
	},

	'a.print:click' : function(element, event) {
		window.print();
		Event.stop(event);
	},
	
	'#quickq:focus' : function(element, event) {
		Search.oldValue = element.value;
		element.value = '';
	},
	'#quickq:blur' : function(element, event) {
		if (element.value == '') {
			element.value = Search.oldValue;
		}
	},
	'#partnerFinder:submit' : function(element, event) {
		Finder.submitForm();
	},
	'#finderFormName:focus' : function(element, event) {
		if (Finder.defaultName == element.value) {
			element.value = '';
		}
	},
	'#finderFormName:blur' : function(element, event) {
		if (element.value == '') {
			element.value = Finder.defaultName;
		}
	},
	'#finderFormStreet:focus' : function(element, event) {
		if (Finder.defaultStreet == element.value) {
			element.value = '';
		}
	},
	'#finderFormStreet:blur' : function(element, event) {
		if (element.value == '') {
			element.value = Finder.defaultStreet;
		}
	},
	'#finderFormZIP:focus' : function(element, event) {
		if (Finder.defaultZIP == element.value) {
			element.value = '';
		}
	},
	'#finderFormZIP:blur' : function(element, event) {
		if (element.value == '') {
			element.value = Finder.defaultZIP;
		}
	},
	'#finderFormCity:focus' : function(element, event) {
		if (Finder.defaultCity == element.value) {
			element.value = '';
		}
	},
	'#finderFormCity:blur' : function(element, event) {
		if (element.value == '') {
			element.value = Finder.defaultCity;
		}
	},
	'#homeNews_link:click' : function(element, event) {
		News.tabLink(element);
		News.tabContent($('homeNews'));
		Event.stop(event);
	},
	'#homeEvents_link:click' : function(element, event) {
		News.tabLink(element);
		News.tabContent($('homeEvents'));
		Event.stop(event);
	},
	'#homeSpecial_link:click' : function(element, event) {
		News.tabLink(element);
		News.tabContent($('homeSpecial'));
		Event.stop(event);
	},
	'#homeCorporateNews_link:click' : function(element, event) {
		News.tabLink(element);
		News.tabContent($('homeCorporateNews'));
		Event.stop(event);
	},
	'li.tab:mouseover' : function(element, event) {
		element.addClassName('hover');
	},
	'li.tab:mouseout' : function(element, event) {
		element.removeClassName('hover');
	}
};
/* END: Rules */

/* START: Edit */
var Edit = {
	onload : function() {
		/*
		 * $('main').select('a').each(function() { this.onclick = function ()
		 * {return false;}; });
		 */
		// News.tabContent($('homeNews'));
	}
}
/* END: Edit */

/* START: Interaction */
var Interaction = {
	goStep : function(step) {
        var a = $('interaction_form').action;
        if (a.indexOf("step1") != -1) {
            a = a.replace("step1", step)
        }
        else if (a.indexOf("step2") != -1) {
            a = a.replace("step2", step)
        }
        else if (a.indexOf("step3") != -1) {
            a = a.replace("step3", step)
        }
        else if (a.indexOf("step4") != -1) {
            a = a.replace("step4", step)
        }
        else if (a.indexOf("step5") != -1) {
            a = a.replace("step5", step)
        }
        else if (a.indexOf("submit") != -1) {
            a = a.replace("submit", step)
        }
		$('interaction_form').action = a;
        $('interaction_form').submit();
	},
    doPartnerSearch : function(currentStep) {
        Interaction.goStep(currentStep);
    },
    selectPartner : function(partnerData) {
        $('interaction_form_dealer').setValue(partnerData);
        $('interaction_form_dealer_usedefault').setValue("");
        $('interaction_form').submit();
    },
    clickUseDefaultPartner : function(currentStep) {
        Interaction.goStep(currentStep);
    }
};
/* END: News */

Event.observe(window, "load", function() {
	EventSelectors.start(Rules);
	Tools.unSpamProtect();
});
