////////////////////////////////////////////////////////////////
//
// @method void wOpenURL(url)
//
// @desc Öffnet eine Seite
//
// @return void
//
////////////////////////////////////////////////////////////////

function wOpenURL(url){
  if(location.pathname.indexOf('/weblication/grid5/') != 0){
    top.location.href = url;
  }
}

////////////////////////////////////////////////////////////////
//
// @method void wOpenPopupURL(url, width, height)
//
// @desc Öffnet eine Seite in einem Popup
//
// @return void
//
////////////////////////////////////////////////////////////////

function wOpenPopupURL(url, width, height){

  var name = '';

  if(width == '' || width == ' '){
    width = 786;
  }
  if(height == '' || height == ' '){
    height = 677;
  }

  url = url.replace(/&amp;/g, '&');
  options = ',location=no, menubar=no,toolbar=no,resizable=no,scrollbars=yes,status=no';
  width   = parseInt(width);
  height  = parseInt(height);

  var posLeft = (screen.width / 2)  - (width  / 2);
  var posTop  = (screen.height / 2) - (height / 2);
  window.open(url, name, 'top='+posTop+',left='+posLeft+',width='+width+',height='+height+',' + options);
}

////////////////////////////////////////////////////////////////
//
// @method void wSendMailNospam(data)
//
// @desc Öffnet eine E-Mail zum Versenden
//
// @return void
//
////////////////////////////////////////////////////////////////

function wSendMailNospam(data){
  location.href = 'mailto:' + data.replace('|', '@');
}

function wEmbedNavpoint(id, url, mode){

  if(typeof wEditor == 'object'){
    return false;
  }

  if(mode == 'embed'){
    if(jQuery('#navpoint_' + id).data('hasLoaded') == '1'){
      jQuery('#navEmbed_' + id).show();
    }
    else{
      jQuery('#navpoint_' + id).mouseout(function(){
        jQuery('#navEmbed_' + id).hide();
      });

      url = url.indexOf('?') == -1 ? url + '?viewmode=embed' : url + '&viewmode=embed';
      url = url.replace('[URL]', location.pathname + location.search);
      jQuery.ajax({
        type: "GET",
        url: url,
        success: function(result){

          result = result.replace(/\n/g, '_wNL-').replace(/\s+id="[^"]+"/gim, '').replace(/_wNL-/g, "\n");

          jQuery('#navpoint_' + id).data('hasLoaded', '1');
          jQuery('#navEmbed_' + id).html(result);

          var navpointLeft = jQuery('#navpoint_' + id).offset().left;

          jQuery('#navEmbed_' + id).show();

          var layerLeft = jQuery('#navEmbed_' + id).offset().left;

          var blockMainRight = jQuery('#blockMain').offset().left + jQuery('#blockMain').width();

          if(layerLeft < navpointLeft){
            jQuery('#navEmbed_' + id).css('left', String(navpointLeft - layerLeft - 6) + 'px');
          }

          var layerRight = jQuery('#navEmbed_' + id).offset().left + jQuery('#navEmbed_' + id).width();

          if(layerRight > blockMainRight){
            jQuery('#navEmbed_' + id).css('marginLeft', String( - (layerRight - blockMainRight) - 22) + 'px');
          }

          jQuery('#navEmbed_' + id).mouseover(function(){
            jQuery('#navEmbed_' + id).show();
          });

          jQuery('#navEmbed_' + id).mouseout(function(){
            jQuery('#navEmbed_' + id).hide();
          });
        }
      });
    }
  }
  else{
    if(jQuery('#navpoint_' + id).data('hasLoaded') == '1'){
      jQuery('#navEmbed_' + id).show();
      jQuery('#navEmbedIframe_' + id).height(frames['navEmbedIframe_' + id].jQuery('#blockContent').height() + 50);
      jQuery('#navEmbed_' + id).height(frames['navEmbedIframe_' + id].jQuery('#blockContent').height() + 60);
    }
    else{
      url = url.indexOf('?') == -1 ? url + '?viewmode=blank&parentIframeId=navEmbedIframe_'+id : url + '&viewmode=blank&parentIframeId=navEmbedIframe_'+id;
      url = url.replace('[URL]', location.pathname + location.search);
      jQuery('#navpoint_' + id).data('hasLoaded', '1');

      var iframeEmbed    = document.createElement('iframe');

      iframeEmbed.id        = 'navEmbedIframe_' + id;
      iframeEmbed.name      = 'navEmbedIframe_' + id;
      iframeEmbed.className = 'navLevel1Embed';
      iframeEmbed.frameBorder = '0';
      iframeEmbed.scrolling   = 'no';
      iframeEmbed.src       = url;

      var embedContainer = document.getElementById('navEmbed_' + id);
      embedContainer.appendChild(iframeEmbed);

      var navpointLeft = jQuery('#navpoint_' + id).offset().left;

      jQuery('#navEmbed_' + id).show();

      var layerLeft = jQuery('#navEmbed_' + id).offset().left;

      var blockMainRight = jQuery('#blockMain').offset().left + jQuery('#blockMain').width();

      if(layerLeft < navpointLeft){
        jQuery('#navEmbed_' + id).css('left', String(navpointLeft - layerLeft - 6) + 'px');
      }

      var layerRight = jQuery('#navEmbed_' + id).offset().left + jQuery('#navEmbed_' + id).width();

      if(layerRight > blockMainRight){
        //jQuery('#navEmbed_' + id).css('left', String(parseInt(jQuery('#navEmbed_' + id).css('left')) - (layerRight - blockMainRight)) + 'px');
        jQuery('#navEmbed_' + id).css('marginLeft', String( - (layerRight - blockMainRight) - 22) + 'px');
      }

      jQuery('#navpoint_' + id).mouseout(function(){
        jQuery('#navEmbed_' + id).hide();
      });

      jQuery('#navEmbed_' + id).mouseover(function(){
        jQuery('#navEmbed_' + id).show();
      });

      jQuery('#navEmbed_' + id).mouseout(function(){
        jQuery('#navEmbed_' + id).hide();
      });
    }
  }
}

var isEasy = 0;

function wInitFontSize(){

  document.write('<div id="fontSizerLeft">Schrift:</div><div id="fontSizerRight">');
  document.write('<a id="increase" href="#" class="fontSizerBig" onClick="wSetFontSize(\'bigger\')" title="Schrift vergrößern">Größer</a>');
  document.write('<a href="#" class="fontSizerDefault" onClick="wSetFontSize(\'default\')" title="Schriftgröße zurückstellen">Normal</a>');
  document.write('<a id="decrease" href="#" class="fontSizerSmall" onClick="wSetFontSize(\'smaller\')" title="Schrift verkleinern">Kleiner</a>');
  document.write('</div>');

  var cookieStr    = document.cookie;
  var fontSizeBody = 's';

  var getFontSizeRegExpr = /wFontSize=(\w+)/;
  if(getFontSizeRegExpr.test(cookieStr) == true){
    fontSizeBody = RegExp.$1;
  }

  wSelectStylesheetSize(fontSizeBody);
}

function wInitFontSizeOnly(){

  var cookieStr    = document.cookie;
  var fontSizeBody = 's';

  var getFontSizeRegExpr = /wFontSize=(\w+)/;
  if(getFontSizeRegExpr.test(cookieStr) == true){
    fontSizeBody = RegExp.$1;
  }

  //alert(fontSizeBody);
  wSelectStylesheetSize(fontSizeBody);
}

////////////////////////////////////////////////////////////////
//
// Vergrößert oder verkleinert die Schriftgröße
//
////////////////////////////////////////////////////////////////

function wSetFontSize(size){

  var cookieStr    = document.cookie;

  var fontSizeCur = 's';
  var fontSizeNew = 's';

  var linkTags = document.getElementsByTagName('LINK');
  for(var i = 0; i < linkTags.length; ++i){
    if(linkTags[i].rel == 'stylesheet'){
      var getFontSizeRegExpr = /\/size_(\w)\.css$/;
      if(getFontSizeRegExpr.test(linkTags[i].href) == true){
        fontSizeCur = RegExp.$1;
      }
    }
  }

  var getFontSizeRegExpr = /wFontSize=(\w+)/;
  if(getFontSizeRegExpr.test(cookieStr) == true){
    fontSizeCur = RegExp.$1;
  }

  if(size == 'bigger'){
    if(fontSizeCur == 's'){
      fontSizeNew = 'm';
    }
    else if(fontSizeCur == 'm'){
      fontSizeNew = 'l';
    }
    else if(fontSizeCur == 'l'){
      fontSizeNew = 'xl';
    }
    else {
      fontSizeNew = 'xl';
    }
  }
  else if(size == 'smaller'){
    if(fontSizeCur == 'xl'){
      fontSizeNew = 'l';
    }
    else if(fontSizeCur == 'l'){
      fontSizeNew = 'm';
    }
    else if(fontSizeCur == 'm'){
      fontSizeNew = 's';
    }
    else {
      fontSizeNew = 's';
    }
  }

  document.cookie = "wFontSize=" + fontSizeNew + ";path=/;";

  wSelectStylesheetSize(fontSizeNew)

  //Hauptnavigation bzgl. 2-zeilig überprüfen
  setNavigationHeight();
}


////////////////////////////////////////////////////////////////
//
// Setzt die Schriftgröße neu
//
////////////////////////////////////////////////////////////////

function wSelectStylesheetSize(size){

  //document.write('<div style="position:absolute;margin-left:0px">' + size + ':</div>');

  if(size == ''){
    var cookieStr    = document.cookie;
    var getFontSizeRegExpr = /wFontSize=(\w+)/;
    if(getFontSizeRegExpr.test(cookieStr) == true){
      size = RegExp.$1;
    }
    if(size == ''){
      size = 's';
    }
  }

  //document.write('<div style="position:absolute;margin-left:10px">' + size + ':</div>');

  if(isEasy == 1){
    if(size == 's'){
      size = 'm';
    }
    else if(size == 'm'){
      size = 'l';
    }
    else if(size == 'l'){
      size = 'xl';
    }
  }

  //document.write('<div style="position:absolute;margin-left:20px">' + size + '</div>');

  var linkTags = document.getElementsByTagName('LINK');
  for(var i = 0; i < linkTags.length; ++i){
    if(linkTags[i].rel == 'stylesheet'){
      var getFontSizeRegExpr = /\/size_(\w+)\.css$/;
      //alert(size + ' : ' + linkTags[i].href +  ' . ' +  getFontSizeRegExpr.test(linkTags[i].href) );
      if(getFontSizeRegExpr.test(linkTags[i].href) == true){
        //alert('/wLayout/wGlobal/layout/styles/size_' + size + '.css');
        if(document.all && size == 'xl'){
          linkTags[i].href = '/wLayout/wGlobal/layout/styles/size_' + size + '_ie.css';
        }
        else{
          linkTags[i].href = '/wLayout/wGlobal/layout/styles/size_' + size + '.css';
        }
        return true;
      }
    }
  }
}


////////////////////////////////////////////////////////////////
//
// Beschreibung: Druckt das aktuelle Dokument
//
////////////////////////////////////////////////////////////////

function printDocument(){

  if(document.all && navigator.appVersion.substring(22,23)==4) {
    self.focus();
    var OLECMDID_PRINT = 6;
    var OLECMDEXECOPT_DONTPROMPTUSER = 2;
    var OLECMDEXECOPT_PROMPTUSER = 1;
    var WebBrowser = '<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
    document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
    WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
    WebBrowser1.outerHTML = '';
  }
  else{
    window.print();
  }
}


////////////////////////////////////////////////////////////////
//
// jQuery - Bereich
//
////////////////////////////////////////////////////////////////
//var $j = jQuery.noConflict();
jQuery(document).ready(function() {
  //Fancybox
  /*
  jQuery('a[rel=fancybox]').fancybox({
    'overlayShow' :true,
    'overlayOpacity' : 0.5
  });
  jQuery("a[rel*=pdflist]").fancybox({
		'titleShow' : false,
		'scrolling' : 'no',
		'hideOnContentClick' : false
	});
	*/

  //Hauptnavigation bzgl. 2-zeilig überprüfen
  setNavigationHeight();

  //QuickAccess-Links einbinden
  if(jQuery('#blockLeft .boxFooter .quickAccess select').length > 0) {
	  jQuery('#blockLeft .boxFooter .quickAccess select').change(function(e){
	    var val = jQuery(this).val();
	    if(val != undefined && val != "undefined" && val != "") {
	    	if(jQuery(this).parent().parent().hasClass('blank')) {
	    		//window.open = val;
  				window.open(val, 'newWindow');
	    	} else {
	    		document.location.href = val;
	    	}
	    }
	    return;
	  });
  }

  jQuery('button.button').mouseenter(function(){
    jQuery(this).addClass('buttonHover');
  });
  jQuery('button.button').mouseout(function(){
    jQuery(this).removeClass('buttonHover');
  });
  jQuery('button.buttonBig').mouseenter(function(){
    jQuery(this).addClass('buttonBigHover');
  });
  jQuery('button.buttonBig').mouseout(function(){
    jQuery(this).removeClass('buttonBigHover');
  });
  jQuery('button.searchButton').mouseenter(function(){
    jQuery(this).addClass('searchButtonHover');
  });
  jQuery('button.searchButton').mouseout(function(){
    jQuery(this).removeClass('searchButtonHover');
  });

	//Bei Formularen evtl. die Default-Werte leeren
  jQuery('form dl.form input').focus(function(){
  	var title = jQuery(this).attr('title');
  	var value = jQuery(this).attr('value');
  	if(title != "" && title == value) {
    	jQuery(this).attr('value', '');
  	}
  });
	//Bei Formularen evtl. die Default-Werte wieder setzen
  jQuery('form dl.form input').blur(function(){
  	var title = jQuery(this).attr('title');
  	var value = jQuery(this).attr('value');
  	if(title != "" && value == "") {
    	jQuery(this).attr('value', title);
  	}
  });

	//Beim Warenkorb-Formular die Anzahl aktualisieren
  jQuery("body").delegate('form input[name*=menge]', "change", function(e){
		editProductBasket(jQuery('#'+jQuery(this).attr('id')+'_prod').attr('value'), jQuery(this).attr('value'), 'new', jQuery(this).attr('id'));
	});
});

//Hauptnavigation bzgl. 2-zeilig überprüfen
function setNavigationHeight(al) {
	jQuery(document).ready(function() {
	  if(jQuery('ul.navLevel1Container').length > 0) {
		  var navHeight = 0

		  jQuery('ul.navLevel1Container li a').each(function(i) {
		  	var aHeight = jQuery(this).innerHeight();
		  	if(aHeight > navHeight) {
		  		navHeight = aHeight;
		  	}
		  });
		  var newHeight = (navHeight - 8);
		  if(al == true) {
		  	//alert(navHeight+"\n"+newHeight);
		  }
		  jQuery('ul.navLevel1Container li a').each(function(i) {
		  	var aHeight = jQuery(this).innerHeight();
		  	var sHeight = jQuery(this).children('span').innerHeight();
			  if(al == true) {
			  	//alert(sHeight+"\n"+newHeight);
			  }
		  	if(aHeight < newHeight) {
		  		if(jQuery(this).hasClass('navLevel1Selected') || jQuery(this).hasClass('navLevel1OpenSelected') || jQuery(this).hasClass('navLevel1Open')) {
		  			jQuery(this).children('span').css('backgroundPosition', '0px 10px');
		  		}
		  		jQuery(this).css('height', newHeight+'px').children('span').css('padding-top', ((sHeight > 30) ? 0 : 8)+'px');
		  	} else {
		  		jQuery(this).css('height', newHeight+'px').children('span').css('padding-top', ((sHeight > 30) ? 0 : 8)+'px');
		  		if(jQuery('#blockEmotionInnerStart').length <= 0) {
		  			jQuery('#blockEmotion').css('padding-top', '47px');
		  		}
		  	}
		  });
	  }
  });
}

function addProduct2Basket(produkt, bezeichnung, bestellnummer, preis, mwst){
	jQuery.ajax({
	  url:  '/wLayout/wGlobal/scripts/php/siteIncludes/shopArticleAdd.inc.php',
	  data: encodeURI('produkt='+produkt+'&bezeichnung='+bezeichnung+'&bestellnummer='+bestellnummer+'&preis='+preis+'&mwst='+mwst),
	  cache: false,
	  success: function(result) {
			if(result != ''){
				if(jQuery('#warenkorbRight').length > 0) {
					jQuery.ajax({
					  url:  '/wLayout/wGlobal/scripts/php/siteIncludes/shopCartRight.inc.php',
					  success: function(html) {
							jQuery('#warenkorbRight').html(html);
							if(html != '') {
								alert("Der Artikel wurde dem Warenkorb hinzugefügt!");
							} else {
								jQuery('#warenkorbRight').hide();
							}
					  }
					});
				}
		  }
	  }
	});
}

function editProductBasket(produkt, anzahl, mode, id){
	if(isNaN(anzahl)) {
		alert("Sie haben keine gültige Zahl eingegeben!\nBitte überprüfen Sie Ihre Eingabe.");
		if(jQuery('#'+id).length > 0 && jQuery('#'+id+'_saver').length > 0) {
			jQuery('#'+id).attr('value', jQuery('#'+id+'_saver').attr('value'));
		}
	} else {
		if(jQuery('#'+id+'_saver').length > 0) {
			jQuery('#'+id+'_saver').attr('value', anzahl);
		}
		jQuery.ajax({
		  url:  '/wLayout/wGlobal/scripts/php/siteIncludes/shopArticleEdit.inc.php',
		  data: encodeURI('produkt='+produkt+'&anzahl='+anzahl+'&mode='+mode),
		  success: function(result) {
				if(result != ''){
					if(jQuery('#warenkorbRight').length > 0) {
						jQuery.ajax({
						  url:  '/wLayout/wGlobal/scripts/php/siteIncludes/shopCartRight.inc.php',
						  success: function(html) {
						  	jQuery('#warenkorbRight').html(html);
								if(html == ''){
									jQuery('#warenkorbRight').hide();
							  }
						  }
						});
					}
			  }
		  }
		});
		if(jQuery('#warenkorb').length > 0) {
			jQuery.ajax({
			  url:  '/wLayout/wGlobal/scripts/php/siteIncludes/shopCart.inc.php',
			  success: function(html) {
					if(html != ''){
						jQuery('#warenkorb').replaceWith(html);
						if(html.indexOf('warenkorbLeer') >= 0) {
							if(jQuery('#warenkorbbestellformular').length > 0) {
								alert("Sie haben keinen Artikel mehr im Warenkorb.");
								jQuery('#warenkorbbestellformular').hide();
							}
						}
				  }
			  }
			});
		}
	}
	return false;
}

