//
// PCT-Chemie
// main javascript functions
// 
// author erik wunderlich 07 2010


function getBrowserVersion() {
	// if TRUE is passed as argument return FULL version else return MAJOR version
	var nVer = navigator.appVersion;
	var nAgt = navigator.userAgent;
	var fullVersion = parseFloat(nVer);
	var majorVersion = parseInt(nVer);
	if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
		fullVersion = parseFloat(nAgt.substring(verOffset+5,nAgt.length));
		majorVersion = parseInt(''+fullVersion);
	}
	return ((getBrowserVersion.arguments.length > 0 && getBrowserVersion.arguments[0] == true) ? fullVersion : majorVersion);
}

// spezielle sprachvariablen
var myHref = document.location.href;
var lpPswdClass = 'bg_pass_de';
var isLangEn = (myHref.indexOf('L=1') > -1 || myHref.indexOf('/en/') > -1 || myHref.indexOf('/en.html') > -1);
var isLangIt = (myHref.indexOf('L=2') > -1 || myHref.indexOf('/it/') > -1 || myHref.indexOf('/it.html') > -1);
var isLangDE = (!isLangEn && !isLangIt);

//include png fix behaviour for ie 5-6
if (document.all && (getBrowserVersion() < 7) && document.styleSheets && document.styleSheets[0] && document.styleSheets[0].addRule) {
 	document.styleSheets[0].addRule('div', 'behavior: url(/fileadmin/pct-chemie/templates/js/iepngfix2.htc)');
 	document.styleSheets[0].addRule('img', 'behavior: url(/fileadmin/pct-chemie/templates/js/iepngfix2.htc)');
 	document.styleSheets[0].addRule('h3', 'behavior: url(/fileadmin/pct-chemie/templates/js/iepngfix2.htc)');
}

// prevent errors from mixing with other js libs
jQuery.noConflict();



// switch off the default messages as they should not be displayed in this case
//jQuery.validator.messages.required = "";
jQuery.extend(jQuery.validator.messages, {
	required: '',
	maxlength: '',
	minlength: '',
	rangelength: '',
	email: '',
	url: '',
	dateDE: '',
	numberDE: '',
	digits: '',
	equalTo: '',
	range: '',
	max: '',
	min: '',
	creditcard: ''
});
jQuery.validator.addClassRules("validate-email", { email: true });
var errMsg = 'Bitte füllen Sie alle Pflichtfelder aus.';


	//sprachabhaengige anpassungen
if (isLangEn) {
	lpPswdClass = 'bg_pass_en';
	errMsg = 'Please fill in all required fields.';
}
if (isLangIt) {
	lpPswdClass = 'bg_pass_it';
	errMsg = 'Si prega di compilare tutti i campi richiesti.';
}




// shadowbox setup
Shadowbox.loadSkin('classic', 'fileadmin/pct-chemie/templates/shadowbox/skin');
var sbOptions = {
		overlayOpacity:	0.7,
		//players: ["flv", "html", "swf"],
		skipSetup: false
};


function setMyPos(myItem,myMenu,myOffset) {
		// dropdown menu positionen relativ zum ausloesenden link festlegen
	return (myItem.position().left + (myItem.width() / 2)) - (myMenu.width() / 2) + myOffset;
}


function hideLoginpanel(event) {
		// loginpanel bei klick ausserhalb des panels ausblenden
	var parentDivs = jQuery(event.target).parents('div');
	var hideOK = true;

	for (i=0; i<parentDivs.length;i++) {
		if (parentDivs[i].id == 'loginpanel') hideOK = false;
	}

	if (hideOK) {
		jQuery('body').unbind('click', hideLoginpanel);
		jQuery('div#loginpanel').stop(true, true).fadeOut('fast');
	}
}


function hideLangpanel(event) {
		// langpanel bei klick ausserhalb des panels ausblenden
	var parentDivs = jQuery(event.target).parents('div');
	var hideOK = true;

	for (i=0; i<parentDivs.length;i++) {
		if (parentDivs[i].id == 'langpanel') hideOK = false;
	}

	if (hideOK) {
		jQuery('body').unbind('click', hideLangpanel);
		jQuery('div#langpanel').stop(true, true).fadeOut('fast');
	}
}






	// execute all jquery calls for documentReady
jQuery(document).ready(function() {

		// diverse listen und elemente alternierende hintergrundfarbe
	jQuery('div.downloadliste01 li:nth-child(odd)').addClass('odd');
	jQuery('div.fcetermin02 div.termin:nth-child(odd)').addClass('odd');
	jQuery('div.tx-indexedsearch-res div.tx-indexedsearch-resultsingle:nth-child(odd)').addClass('odd');
	jQuery('div.csc-sitemap li.smlevel1:nth-child(odd)').addClass('odd');


		// download list contents unsichtbar schalten
	jQuery('div.downloadliste01 ul').hide();
		// download list content toggle switch
	jQuery('div.downloadliste01 h5').click(function() {
		if (jQuery(this).next().find('li').length > 0) {
			jQuery(this).parent().toggleClass("aktiv")
			jQuery(this).next().stop(true, true).slideToggle("slow");
		} else {
			jQuery(this).addClass('hinweis');
		}
	});

		// suchergebnisseite suchfeldlabel einfuegen
	if (jQuery('input.suchfeldWort').length > 0) {
		var sfCaption = 'Begriff';
		if (isLangEn) sfCaption = 'Term';
		jQuery('input.suchfeldWort').before('<label class="suchfeldWortlabel" for="suchfeldWort">' + sfCaption + '</label>');
	}


		//srfeuserregister pflichtfelder fuer jquery.validate aktivieren
	jQuery('select#tx-srfeuserregister-pi1-usergroup').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-first_name').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-last_name').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-address').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-zip').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-city').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-telephone').addClass('required');
	jQuery('input#tx-srfeuserregister-pi1-email').addClass('required email');

		// weitere anpassungen fuer sr_feuserregister select-element
		// die folgenden aenderungen sind nur mit jquery moeglich, weil direkte
		// manipulation der datenbankelemente beim regelbetrieb db-fehler erzeugt
	if (jQuery('select#tx-srfeuserregister-pi1-usergroup').length > 0) {

			// select fuer jquery.validate erfassbar machen
		srSelect = jQuery('select#tx-srfeuserregister-pi1-usergroup');
		srSelect.html('<option></option>' + srSelect.html());

			// sprachersetzungen der captions
		if (!isLangDE) {
			srOptions = srSelect.find('option');

			if (isLangEn) {
				srCaption2 = 'Architect';
				srCaption3 = 'Screed Layer';
			}

			for (i=0;i<srOptions.length;i++) {
				if (srOptions[i].innerHTML == 'Architekt') srOptions[i].innerHTML = srCaption2;
				if (srOptions[i].innerHTML == 'Estrichleger') srOptions[i].innerHTML = srCaption3;
			}
		}

	}



  	// steuerung des "Suche" bg img fuer das suchfeld
	if (jQuery('input.searchfield').val() == '') jQuery('div#indexsuchfeld').removeClass('aktiv');
	jQuery('input.searchfield').focus(function () {
		jQuery('div#indexsuchfeld').addClass('aktiv');
	});
	jQuery('input.searchfield').blur(function () {
		if (jQuery(this).val() == '') jQuery('div#indexsuchfeld').removeClass('aktiv');
	});

		// steuerung der bg imgs fuer die login eingabefelder
	jQuery('input#user').addClass('bg_user_de').focus(function() {
		jQuery(this).removeClass('bg_user_de');
	});
	jQuery('input#user').blur(function() {
		if (jQuery(this).val() == '') jQuery(this).addClass('bg_user_de');
	});

	jQuery('input#pass').addClass(lpPswdClass).focus(function() {
		jQuery(this).removeClass(lpPswdClass);
	});
	jQuery('input#pass').blur(function() {
		if (jQuery(this).val() == '') jQuery(this).addClass(lpPswdClass);
	});




		// main navi dropdownmenu steuerung
	jQuery('a.mnitem').parent().hover(function() {
			// click event an body senden um ggf hideLoginpanel auszuloesen
		//jQuery('body').click();

			// einige objektvariablen festlegen
		var myItem = jQuery(this).find('a.mnitem'),
				myMenu = jQuery(this).find('div.mainnavimenu');

			// menu positionieren und sichtbar schalten
		jQuery(this).addClass('rolledOver');
		myMenu.css('left', setMyPos(myItem, myMenu, 0)).stop(true, true).fadeIn('fast');
	},
	function() {
		jQuery(this).find('div.mainnavimenu').stop(true, true).fadeOut('fast');
		jQuery(this).removeClass('rolledOver');
	});





		// login menu positionierung
	if (jQuery('li#loginmenu').length > 0) {
		jQuery('div#loginpanel').css('left', setMyPos(jQuery('li#loginmenu a'), jQuery('div#loginpanel'), 20));
	}

		// wenn p.loginerror klasse vorhanden dann loginmenu sofort anzeigen
	if (jQuery('p.loginerror').length > 0) {
		jQuery('div#loginpanel').show();
		jQuery('input#user').focus();
		jQuery('body').click(hideLoginpanel);
	}
	
		// login menu steuerung
	jQuery('li#loginmenu a').click(function() {

		jQuery('body').click();

		loginMenuPanel = (jQuery('div#loginpanel').find('p.loginwelcome').length > 0) ? true : false;
		if (loginMenuPanel) {
			if (jQuery('div#loginpanel').attr('style').indexOf('display: block') < 0) {
					// login menu entweder sichtbar schalten
				jQuery('div#loginpanel').stop(true, true).fadeIn('fast', function() {
					jQuery('body').click(hideLoginpanel);
				});
			} else {
					// oder bei sichtbarkeit wieder ausblenden
				jQuery('body').click();
			}
		}

		return !loginMenuPanel;
	});




		// lang menu positionierung
	if (jQuery('li#langmenu').length > 0) {
		jQuery('div#langpanel').css('left', setMyPos(jQuery('li#langmenu a'), jQuery('div#langpanel'), 20));
	}

		// lang menu steuerung
	jQuery('li#langmenu a').click(function() {

		jQuery('body').click();

		if (jQuery('div#langpanel').attr('style').indexOf('display: block') < 0) {
				// lang menu entweder sichtbar schalten
			jQuery('div#langpanel').stop(true, true).fadeIn('fast', function() {
				jQuery('body').click(hideLangpanel);
			});
		} else {
				// oder bei sichtbarkeit wieder ausblenden
			jQuery('body').click();
		}

		return false;
	});



		// produktgrafik header detailview steuerung
	jQuery('div.keyvisualfullopen').click(function() {
		jQuery('div.keyvisualfull').stop(true, true).fadeIn('fast');
	});
	jQuery('div.keyvisualfullclose').click(function() {
		jQuery('div.keyvisualfull').stop(true, true).fadeOut('fast');
	});


});



jQuery(window).load(function() {

		// custom form validation via jquery.validate.js
	jQuery("div#maincontent form").validate({
		errorElement: "span",
		invalidHandler: function(form, validator) {

			var errors = validator.numberOfInvalids();
			var errFormId = jQuery(form.target).attr('id');
			var efMsgID = errFormId + 'ErrMsg';

			if (errors) {
				if (jQuery('p#' + efMsgID).length == 0) jQuery('form#' + errFormId).prepend('<p id="' + efMsgID + '" class="error">' + errMsg + '<\/p>');
			}
		},
		
		highlight: function(element, errorClass) {
			jQuery(element).addClass(errorClass);
			jQuery(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass(errorClass);
			jQuery(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);

		}
		
	});


	Shadowbox.init(sbOptions);
/*
	// simple popup overlay link definieren
	// links mit den folgenden classnames werden in entsprechender shadowbox angezeigt
	if (jQuery('a.overlay620x440').length > 0) Shadowbox.setup(jQuery('a.overlay620x440'),{
					width: 620,
					height: 440
	});	
*/
});


