var wacker = wacker || {};

// produktselektor
wacker.urlButtonCloseLayer = '/cms/media/global/icons/produktselektor/button_schliessen_layer.gif';
//wacker.urlButtonCloseLayer = '../img/produktselektor/button_schliessen_layer.gif';
wacker.altButtonCloseLayer = 'schließen';
wacker.altItemAll = 'alle Produktgruppen';
wacker.initialStateShowRes = true;
//wacker.windowNameProductDetail = 'productDetail';

// vertriebskontakte
//wacker.urlIndustries = '../jscript/example_industries.js';
wacker.urlIndustries = '/cms/de/errors/404.jsp';
//wacker.urlApplications = '../jscript/example_applications.js';
wacker.urlApplications = '/cms/de/errors/404.jsp';
//wacker.urlDisResultPage = '5_dis_ergebnisliste.html';
wacker.urlDisResultPage = '/cms/de/errors/404.jsp';
//wacker.urlWackerContact = '10_kon_ergebnisliste.html';
wacker.urlWackerContact = '/cms/de/errors/404.jsp';



/**
 * gemeinsam
 */ 
wacker.STATE_BOTH = '0';
wacker.STATE_MDF = wacker.STATE_KONTAKT = '1';
wacker.STATE_PIA = wacker.STATE_DIS = '2';
wacker.FORM_MARKEN = '0';
wacker.FORM_DOKUMENTE = '1';
wacker.FORM_PRODUKTE = '2';
wacker.FORM_CAS = '3';

wacker.showState = function () {
	var hasRun = false;
	var finalState;
	var finalMdfExclusive;
	return function (state, mdfExclusive, override) {
		if (hasRun && !override) {
			return;
		}
		finalState = state;
		finalMdfExclusive = mdfExclusive;
		if (!hasRun) {
			jQuery(document).ready(function ($) {
				var offset, pageX;
				switch ('' + finalState) {
				// produktselektor
				case wacker.STATE_BOTH:
					$('div#sucheMDF, div#sucheKontakt').children().show().filter('h2, h3').find('a').addClass('aktiv');
					$('form#suchePIA, div#sucheDIS').children().show().filter('h2, h3').find('a').addClass('aktiv');
					break;
				case wacker.STATE_MDF:
					$('form#suchePIA, div#sucheDIS').children().hide().filter('h2, h3').show().find('a').removeClass('aktiv');
					$('div#sucheMDF, div#sucheKontakt').children().show().filter('h2, h3').find('a').addClass('aktiv');
					break;
				case wacker.STATE_PIA:
				default:
					$('form#suchePIA, div#sucheDIS').children().show().filter('h2, h3').find('a').addClass('aktiv');
					$('div#sucheMDF, div#sucheKontakt').children().hide().filter('h2, h3').show().find('a').removeClass('aktiv');
				}
				$('div#sucheDIS, div#sucheKontakt').find('h2 a').toggleClass('aktiv');
				switch ('' + finalMdfExclusive) {
				case wacker.FORM_MARKEN:
				case wacker.FORM_DOKUMENTE:
				case wacker.FORM_PRODUKTE:
				case wacker.FORM_CAS:
					$('div#sucheMDF form fieldset').children().hide().filter('h3').show().find('a').removeClass('aktiv');
					$('div#sucheMDF form:eq(' + mdfExclusive + ') fieldset h3 a').addClass('aktiv').parent().siblings().show();
				break;
				default:
				}
				if (location.hash) {
					offset = jQuery(location.hash + ', a[name=' + location.hash.substring(1) + ']').offset();
					pageX = window.pageXOffset || document.documentElement.scrollLeft;
					if (offset) {
						scrollTo(pageX, offset.top);
					}
				}
			});
		}
		hasRun = true;
	};
}();

// fehler-div anzeigen
wacker.showError = function (target, type, error, auto) {
	var body = $('body');
	var left;
	var top;
	error = error || 'div#fehler';
	error = $(error);
	target = $(target);
	$(document).ready(function (e) {
		switch (type) {
		case 'overlay':
			error.css({left: target.offset().left + 5 + 'px', top: target.offset().top + 5 + 'px', width: target.width() - 17 + 'px', height: target.height() - 5 + 'px'});
			break;
		case 'static':
			error.addClass('static');
			target.after(error);
			break;
		case 'tip-lower':
			left =  Math.min(body.width() - error.width() - 10, target.offset().left);
			top = target.offset().top;
			error.css({left: left + 'px', top: top + 'px'});
			break;
		case 'tip':
		default:
			error.css({left: target.offset().left - error.width() + 10 + 'px', top: target.offset().top - error.height() + 5 + 'px'});
		}
		if (type != 'static') {
			if (auto) {
				setTimeout(function () {
					error.fadeOut(500);
				}, 3000);
			} else {
				body.click(function (e) {
					error.fadeOut(500);
					body.unbind('click');
				});
			}
		}
		error.show();
	});
};

$(document).ready(function() {
	// Formulare
	$("form#suchePIA, div#sucheMDF, form#sucheMDF, div#sucheKontakt, div#sucheDIS, div#sucheResult").find('h2, h3').find('a').bind("click", function(e) {
		$(this).toggleClass('aktiv').parents('h2, h3').siblings().toggle();
		if (e.preventDefault()) {
			e.preventDefault();
		} else {
			e.returnValue = false;
		}
	});
	
	// Klappfunktion
	$("div.klappt h3 a").bind("click", function(e) {
		$(this).parent("h3").next("div").toggle();
		$(this).toggleClass("aktiv");
		if (e.preventDefault()) {
			e.preventDefault();
		} else {
			e.returnValue = false;
		}
	});
});
/**
 * If current browser is IE6 and below, this will create/update an iframe in the background of each of the selected elements to overlay form-elements. 
 * @param settings 
 */
(function ($) {
var defaults = {width:0, height:0, left:0, top:0, addClass:''};
function bgIframe(settings) {
	if (!($.browser.msie && $.browser.version < '7')) {
		return this;
	}
	s = $.extend({}, defaults, settings);
	var get = bgIframe.getCssPixels;
	this.each(function (i, item) {
		var $this = $(item);
		$this.show();
		var left = get($this.css('border-left-width'), 'border-width') + get($this.css('padding-left'));
		var top = get($this.css('border-top-width'), 'border-width') + get($this.css('padding-top'));
		//alert($this.width())
		var width = $this.width() + left + get($this.css('border-right-width'), 'border-width') + get($this.css('padding-right'));
		var height = $this.height() + top + get($this.css('border-bottom-width'), 'border-width') + get($this.css('padding-bottom'));
		var iframe;
		width += s.width;
		height += s.height;
		left -= s.left;
		top -= s.top;
		if (item.bgIframe) {
			item.bgIframe.css({width: width + 'px', height: height + 'px', top: -top + 'px', left: -left + 'px'});
		} else {
			iframe = $(s = '<iframe class="bg-iframe ' + s.addClass + '" frameborder="0" style="left:-' + left + 'px;top:-' + top + 'px;width:' + width + 'px;height:' + height + ';" src="about:blank" />');
			$this.prepend(iframe);
			item.bgIframe = iframe;
		}
	});
	return this;
}

var getCssPixels = function () {
	var regexKnown = /^\d+px|0(?:em|px|xm|cm|mm)$/;
	var regexNumber = /^\d+/;
	return function (val, attr) {
		var result;
		switch (attr) {
		case 'border-width':
			switch (val) {
			case 'thin':
				result = 1;
				break;
			case 'medium':
				result = 3;
				break;
			case 'thick':
				result = 5;
				break;
			default:
				result = val;
			}
			break;
		default:
			result = val;
		}

		if (regexKnown.test(result)) {
			result = +regexNumber.exec(result)[0];
		}
		result = +result || 0;
		return result;
	};
}();
bgIframe.defaults = defaults;
bgIframe.getCssPixels = getCssPixels;
$.fn.bgIframe = bgIframe;
})(jQuery);














/**
 * produktselektor
 */ 
$(document).ready(function() {


	/// Produktvergleichseiten
	$("div#pop div.produktvergleich a.minim").bind("click", function() {
		if ($("div#pop div.produktvergleich a.minim").length > 1 ) {
			$(this.parentNode.parentNode).remove()
		}
	});
	
	if ($('form#suchePIA, div#sucheMDF, form#sucheMDF').length) {
		
		// ie < 7.0 kann kein :hover
		if ($.browser.msie && $.browser.version < '7') {
		    var ie6navigation = function () {
				if (this.hovering) {
					this.hovering = false;
					$(this).removeClass('hover');
	
				} else {
					this.hovering = true;
					$(this).addClass('hover');
				}
			}
			$('*.auswahlM tr').bind('mouseover', ie6navigation).bind('mouseout', ie6navigation);
		}
	
		// für ie5.5-kompatibilität einige selektoren ausgegliedert
		var divFootNotes = $("div#footnotes");
		var formSuchePIA = $("form#suchePIA");
		
		
		// hide submit fuer Standort, selektor funktioniert noch? 
		// wird dies verwendet?
		$("input#ch_location").hide();
		
		// layerpopups
		divFootNotes.children("div").hide();
		divFootNotes.addClass('js');
		divFootNotes.find("div div").addClass("layerbox");
		divFootNotes.find("div div").css({width: "328px", height: "auto", "max-height": "200px"});
		divFootNotes.find("h3").addClass("teaserlayer");
		divFootNotes.find("h3").append("<a href='#produktwahl' class='closelayer'><img src='" + wacker.urlButtonCloseLayer + "' alt='" + wacker.altButtonCloseLayer + "' /></a>");
		divFootNotes.find("a.closelayer").bind("click", function() {
			$(this).parent().parent().hide();
			return false;
		});
		
		// onclick für layerpopups
		formSuchePIA.find("fieldset#produktwahl a.info").bind("click", function(event) {
			// this.href points to id
			var $this = $(this);
			var thisZiel = $($this.attr('href'));
			var posX = event.pageX;
			var posY = event.pageY;
			var footnotes = thisZiel.parents('div#footnotes');
			var offset = footnotes.offset();
			posX -= offset.left;
			posY -= offset.top;
			posX = Math.min(posX, $('body').width() - 380);
			thisZiel.css({position: "absolute", top: posY + 'px', left: posX + 'px'});
			thisZiel.show();
			return false;
		});
		
		var ulAuswahl = formSuchePIA.find("ul#auswahlliste");
		
		// produktwahl: zurücksetzen
		// ENTFÄLLT AMO 10.01.2008
	
		var cbAuswahl = formSuchePIA.find("fieldset#produktwahl > div > ul > li > input");
		var checkboxAll = formSuchePIA.find("fieldset#produktwahl input#all");
		var labelShowRes = $('label[for=showRes]');
		var buttonShowRes = $('button#showRes');
		if (!wacker.initialStateShowRes) {
			checkboxAll.attr('disabled', true).addClass('disabled').next().addClass('disabled');
			buttonShowRes.addClass('resInaktiv');
		} else {
			checkboxAll.attr('disabled', false);
			buttonShowRes.removeClass('resInaktiv');
		}
		var auswahlGeaendert = false;
		var nachAenderung = function (first) {
			if (!first && !auswahlGeaendert) {
				labelShowRes.addClass('changed');
				buttonShowRes.addClass('changed');
				auswahlGeaendert = true;
			}
			if (!wacker.initialStateShowRes) {
				if (cbAuswahl.filter('[checked]').length) {
					buttonShowRes.removeClass('resInaktiv').attr('disabled', false).css('cursor', 'pointer');
					//checkboxAll.attr('disabled', false).removeClass('disabled').next().removeClass('disabled');
				} else {
					buttonShowRes.addClass('resInaktiv').attr('disabled', true).css('cursor', 'default');
					checkboxAll.attr('disabled', true).addClass('disabled').next().addClass('disabled');
				}
			}
		}
		nachAenderung(true);
		
		// produktwahl: alle auswählen
		var alleKlick = false;
		checkboxAll.bind('click', function () {
			cbAuswahl.attr({"checked": false}).addClass('disabled');
			ulAuswahl.find("li").remove();
			if (this.checked) {
				ulAuswahl.append("<li id='li_all'>" + wacker.altItemAll + " </li>");
			}
			alleKlick = this.checked;
			if ($.browser.msie) {
				//formSuchePIA.find("fieldset#produktwahl > div").hide().show();
			}
		    nachAenderung();
		});
		if ($.browser.msie && $.browser.version < '7') {
			//formSuchePIA.find("fieldset#produktwahl > div").hide().show();
		}
		// alle ausgewählten produktgruppen in liste im kopf einfuegen
		var auswahlListeFuellen = function() {
		    if (checkboxAll[0].checked) {
				ulAuswahl.append("<li id='li_all'>" + wacker.altItemAll + " </li>");
		    } else {
				for (var i = 0, length = cbAuswahl.length; i < length; ++i) {
					if (cbAuswahl[i].checked) {
						ulAuswahl.append("<li id='li_" + i + "'>" + $(cbAuswahl[i]).next("label").text() + "; </li>")
					}
					cbAuswahl[i].num = i;
				}
			}
		};
		if (checkboxAll.length) {
			auswahlListeFuellen();
		}
		
		// produktwahl: auswahl im fieldsetkopf anzeigen
		cbAuswahl.bind("click", function (event) {
			var liste = ulAuswahl.find("li");
			if (alleKlick) {
				liste.remove();
				checkboxAll.attr("checked", false);
				cbAuswahl.removeClass('disabled').attr('checked', false);
				this.checked = true;
				auswahlListeFuellen();
				alleKlick = false;
			} else if (this.checked) {
				if (cbAuswahl.filter("input[checked]").length > 50) {
					this.checked = false;
					var posX = event.pageX;
					var posY = event.pageY;
					$("div#fehler").css({position: "absolute", top: posY - 50, left: posX - 140}).show().animate({opacity:1.0}, 2000).fadeOut("normal");
				} else {
					var id = null;
					var inhalt = "<li id='li_" + this.num + "'>" + $(this).next("label").text() + "; </li>";
					ulAuswahl.append(inhalt);
				}
			} else {
				liste.remove("li#li_" + this.num);
			}
			if ($.browser.msie) {
				//formSuchePIA.find("fieldset#produktwahl > div").css("display", 'none').css('display', 'block');
			}
		    nachAenderung();
		});
		
		// max. drei produkte sind in suchergebnissen wählbar
		var suchergebnisse = $("form#suchergebnisse");
		//suchergebnisse.find('dl a').attr('target', wacker.windowNameProductDetail);
		var suchergebnisseInput = suchergebnisse.find("input:checkbox");
		suchergebnisseInput.bind("click", function(event) {
			if (this.checked) {
				if ($("form#suchergebnisse input[checked]").length > 3) {
					this.checked = false;
					var posX = event.pageX;
					var posY = event.pageY;
					wacker.showError(this, 'tip-lower', 'div#fehlerAnzahlProdukte', true);
				}
			}
			var disable = !suchergebnisseInput.filter('[checked]').length;
			var button = suchergebnisse.find("input:image");
			if (disable) {
				button.parent().addClass('inaktiv');
			} else {
				button.parent().removeClass('inaktiv');
			}
			button.attr('disabled', disable);
		}).triggerHandler('click');
		
		// EINGEFÜGT AMO 10.01.2008
		// suche nach marken: Filter umschalten
		$("div#sucheMDF").find("select#marken").bind("change", surftoThis);
	
		// suche nach marken: sprung zur gewählten seite
		$("div#sucheMDF").find("select#markenListe").bind("change", surftoThis);
		
		// EINGEFÜGT AMO 10.01.2008
		// suche nach produkten: Filter umschalten
		$("div#sucheMDF").find("select#produkte").bind("change", surftoThis);
		 
		// Popup Produktvergleich
		$('form#suchergebnisse').bind('submit', vergleich);
			
		// deep-links, um zustand zu bestimmen
		var state = /^#state(\d+)(?:-mdf(\d+))?$/.exec(location.hash);
		if (state) {
			wacker.showState(state[1], state[2], true);
		}
		
		// wenn enter gedrückt - absenden
		$("div#sucheMDF").find('input#CAS-Nummer1, input#CAS-Nummer1, input#CAS-Nummer1, input#Produktsuche').keypress(function (e) {
			if (e.keyCode == 13) {
				$(this).siblings('input.buttonGo').click();
			}
		});
	}
});


//var mini = null;
function vergleich() {
	mini = window.open('','vergleichWindow','width=800,height=625,left=50,top=50, hotkeys=no, location=no, menubar=no, resizable=no, status=no, toolbar=no, scrollbars=yes');
	mini.focus();
}


// fasst zusammen surfto und surfto2
function surftoThis() {
	var myindex = this.selectedIndex;
	if (this.options[myindex].value) {
		location = this.options[myindex].value;
	}
}




/**
 * Vertriebskontakte
 */
wacker.getDisData = function () {
	var disData = [];
	function getData(param, call) {
		// url nur für test
		var url = param.get == 'industries' ? wacker.urlIndustries : wacker.urlApplications;
		var i, query = '';
		for (i in param) if (param.hasOwnProperty(i)) {
			query += (query ? '&' : '?') + i + '=' + encodeURIComponent(param[i]);
		}
		$.getJSON(url + query, function (data) {
			disData.push(data);
			call(data);
		});
	}
	return getData;
}();


$(document).ready(function() {
	if ($('div#sucheKontakt, div#sucheDIS, div#sucheResult').length) {
		$('div#sucheDIS').find('form#form2 a').click(function (e) {
			$('div#sucheDIS').find('form#form3').click(function (e) {
				if (e.cancelBubble) {
					e.cancelBubble();
				}
				return false;
			}).addClass('chooseForm');
		});
	}
});
