$(document).ready(function(){
  $("#contact_data").hide();
});

String.prototype.beginsWith = function(t, i) {
  if (i==false) {
    return (t == this.substring(0, t.length));
  } else {
    return (t.toLowerCase() == this.substring(0, t.length).toLowerCase());
  }
}

String.prototype.endsWith = function(t, i) {
  if (i==false) {
    return (t == this.substring(this.length - t.length));
  } else {
    return (t.toLowerCase() == this.substring(this.length - t.length).toLowerCase());
  }
} 



function populateElement(selector, defvalue) {
  $(selector).each(function() {
    if($.trim(this.value) == "") {
      this.value = defvalue;
    }
  });
  
  $(selector).focus(function() {
    if(this.value == defvalue) {
      this.value = "";
    }
  });
    
  $(selector).blur(function() {
    if($.trim(this.value) == "") {
      this.value = defvalue;
    }
  });
 }

    
jQuery.create = function() {
    if (arguments.length == 0) return [];
    var args = arguments[0] || {}, elem = null, elements = null;
    var siblings = null;

    // In case someone passes in a null object,
    // assume that they want an empty string.
    if (args == null) args = "";
    if (args.constructor == String) {
        if (arguments.length > 1) {
            var attributes = arguments[1];
                if (attributes.constructor == String) {
                            elem = document.createTextNode(args);
                            elements = [];
                            elements.push(elem);
                            siblings =
        jQuery.create.apply(null, Array.prototype.slice.call(arguments, 1));
                            elements = elements.concat(siblings);
                            return elements;

                    } else {
                            elem = document.createElement(args);

                            // Set element attributes.
                            var attributes = arguments[1];
                            for (var attr in attributes)
                                jQuery(elem).attr(attr, attributes[attr]);

                            // Add children of this element.
                            var children = arguments[2];
                            if (typeof(children)=='object') {
                              children = jQuery.create.apply(null, children);
                              jQuery(elem).append(children);
                            }

                            // If there are more siblings, render those too.
                            if (arguments.length > 3) {
                                    siblings =
        jQuery.create.apply(null, Array.prototype.slice.call(arguments, 3));
                                    return [elem].concat(siblings);
                            }
                            return elem;
                    }
            } else return document.createTextNode(args);
      } else {
              elements = [];
              elements.push(args);
              siblings =
        jQuery.create.apply(null, (Array.prototype.slice.call(arguments, 1)));
              elements = elements.concat(siblings);
              return elements;
      }
};

function centerSecondLevelNavigation() {
  var firstLevelLink = document.getElementById('activeFirstLevel');
  // No active first Level found, so there's no second level for centering available
  if (!firstLevelLink) return;
  
  // Width of the FirstLevel item to calculate the middle
  var firstLevelLinkWidth = firstLevelLink.offsetWidth;
  // Offset to left within its parent item
  var firstLevelLinkXPos = firstLevelLink.offsetLeft;
  
  // calculate the offset of FirstLevel item form absolute left side
  while (firstLevelLink.offsetParent) {
    firstLevelLinkXPos += firstLevelLink.offsetParent.offsetLeft;
    if (firstLevelLink == document.getElementsByTagName('body')[0]) {
      break;
    } else {
      firstLevelLink = firstLevelLink.offsetParent;
    }
  }
  
  //Middle position calculated from offset and width
  var firstLevelLinkMiddle = Math.floor(firstLevelLinkXPos + firstLevelLinkWidth/2);
  var secondLevelDiv = document.getElementById('navigatorSecond');
  if (!secondLevelDiv) return;
  var secondLevelXPos = secondLevelDiv.offsetLeft;
  while (secondLevelDiv.offsetParent) {
    secondLevelXPos += secondLevelDiv.offsetParent.offsetLeft;
    if (secondLevelDiv == document.getElementsByTagName('body')[0]) {
      break;
    } else {
      secondLevelDiv = secondLevelDiv.offsetParent;
    }
  }
  var secondLevelList = document.getElementById('levelTwo').getElementsByTagName('li');
  var secondLevelListWidth = 0;
  for (var i = 0; i < secondLevelList.length; i++) {
    secondLevelListWidth += secondLevelList[i].offsetWidth;
  }
  var maxMoveToRight = 700 - secondLevelListWidth;
  var secondeLevelListMiddle = secondLevelXPos + secondLevelListWidth/2;
  if (secondeLevelListMiddle < firstLevelLinkMiddle) {
    document.getElementById('navigatorSecond').style.marginLeft=
      (Math.min(firstLevelLinkMiddle-secondeLevelListMiddle,maxMoveToRight))+"px";
  }
}

function pruefe_cd_iframe_groesse() {
  var a=$('#cd_iframe');
  if (typeof a[0].contentDocument == "undefined") {
    // IE 7 ...
    var iBody = a[0].contentWindow.document.getElementsByTagName('body')[0];
  } else {
    var iBody = a[0].contentDocument.getElementsByTagName('body')[0];
  }
  iBody.innerHTML = '<div id="cont">'+iBody.innerHTML+'</div>';
  iBody.style.overflow='hidden';
  if (typeof a[0].contentDocument == "undefined") {
    var b=a[0].contentWindow.document.getElementById('cont');
  } else {
    var b=a[0].contentDocument.getElementById('cont');
  }
  //var c = a[0].contentDocument.getElementsByClassName('page');
  var iframeHeight = b.offsetHeight; // workaround for the bayer cds
  if (iframeHeight < 100) {
    //addHeight = c[0].offsetHeight;
    iframeHeight = 1700;
  }
  if(a[0].style.height != eval(iframeHeight+60)+'px') {
    a[0].style.height=eval(iframeHeight+60)+'px';
  }
}

// console dummy object, so left over console.log commands will not destroy the js when there is no console

if (typeof(console) == "undefined") {
  console = {
    log: function(item){ return item; }
  };
}

(function($){
    $.jvSearchFilter = {
        BuildSelected: function($search_box,remove_one,your_selection) {
            var inner = $(':checked',$search_box).map(function(){
                var title = $('label[for=' + this.id + ']', $search_box).html();
                return '<a href="#' + remove_one.replace("$title",title) + '"' +
                    ' title="' + remove_one.replace("$title",title) + '"' +
                    ' data-select-id="' + this.id + '">' + title + '</a>';
            }).get().join(', ');
	    if (inner.length > 0) {
                inner = '<strong>' + your_selection + '</strong>' + inner;
	    }
            $('.search_filter_selected',$search_box).html(inner);
            $('.search_filter_selected a', $search_box).click(function(e){
                $('#' + $(this).attr('data-select-id') + '')
                    .removeAttr('checked');
                $.jvSearchFilter.BuildSelected($search_box,remove_one,your_selection);
                $.jvSearchFilter.SwitchChange($search_box);
                e.preventDefault();
            });
            if ($('.search_filter_selected',$search_box).html() == '') {
                $('.search_filter_selected',$search_box).css('padding','0').hide();
            } else {
                $('.search_filter_selected',$search_box).css('padding','10px');
            }

        },
        SwitchChange: function ($search_box) {
            $checkboxes = $(':checkbox',$search_box);
            $checkboxes_checked = $(':checked',$search_box);
            if ($checkboxes.length - $checkboxes_checked.length == 0) {
                $('.search_filter_all',$search_box).hide();
                $('.search_filter_none',$search_box).show();
            } else {
                $('.search_filter_all',$search_box).show();
                $('.search_filter_none',$search_box).hide();
            }
        },
        defaults: {
            select_all: "select all",
            select_none: "remove all selections",
            remove_one: "remove $title",
	    your_selection: "your selection: "
        }
    };
    $.fn.jvSearchFilterBox = function(options) {
        var options = $.extend($.jvSearchFilter.defaults, options);
        return this.each(function(){
            var $this = $(this);
            if (!$this.hasClass("search_filter_box")) {
                $this.addClass("search_filter_box");
            }
            $('.search_filter_body',$this)
                .hide()
                .before('<span class="search_filter_selected"></span>')
                .prepend('<div class="search_filter_switch_box"><span class="search_filter_switch search_filter_all" style="display:inline;">' + 
options.select_all + '</span><span class="search_filter_switch search_filter_none" style="display:none;">' + 
options.select_none + '</span></div>');
            
            $('.search_filter_head', $this).click(function(){
                if ($('.search_filter_body',$this).css('display') == 'none') {
                    $('.search_filter_selected',$this).hide(150,function(){
                        $('.search_filter_body',$this).show(300,function(){
                             $('.search_filter_head',$this).addClass('open');
                        });
                    });
                } else {
                    $('.search_filter_body',$this).slideUp(300,function(){
                        if ($('.search_filter_body :checked',$this).size() > 0) {
                            $('.search_filter_selected',$this).slideDown(150,function(){
                                $('.search_filter_head',$this).removeClass('open');
                            });
                        } else {
                            $('.search_filter_head',$this).removeClass('open');
                        }
                    });
                }
                $.jvSearchFilter.BuildSelected($this,options.remove_one,options.your_selection);
            });
            $('.search_filter_switch',$this).click(function(){
                $('.search_filter_switch',$this).toggle();
                $switch = $(this);
                if ($switch.hasClass('search_filter_all')) {
                    $(':checkbox',$this).each(function(){
                        $(this).attr('checked','checked');
                    });
                } else {
                    $(':checkbox',$this).each(function(){
                        $(this).removeAttr('checked');
                    });
                }
            });
            $(':checkbox',$this).change(function(){
                $.jvSearchFilter.SwitchChange($this);
            });
            $.jvSearchFilter.BuildSelected($this,options.remove_one);
        });
    };
})(jQuery);
