function fbArr(src){
  var ma = new Array();
  var cnt = jQuery('.'+src).length
    for(i=0; i<=cnt-1; i++){
    var target = jQuery('.'+src+':eq('+i+')');
    ma[i]= new Array();
    //Art
    var kind = target.attr('rev');
    if(kind.indexOf(",")>0){
        var kind = kind.split(",");
        ma[i][0] = kind[0];
        //Wenn Gallerie
        if(kind[0]=='gallery'){
            ma[i][3] = kind[1]; //Einschr�nkung der Augabe
            ma[i][4] = jQuery('.fGallery').index(target.parent('div'));// indexierung der Gallery
            if(kind[1]>0&&kind[1]!=''&&kind[1]!=false){
            hideThumb(i, kind[1],ma[i][4])}
            if(kind.length==3){
               ma[i][5]=kind[2];//Gr��enmanipulation der FB
            }
            else{
                ma[i][5]=false;
            }

        }
        else
        //Wenn Formular
        if(kind[0] == 'form'){
        ma[i][3] = target.attr('href') // Ajax GET
        ma[i][4] = kind[1]; //Gr��e Bei Aufruf
            if(kind.length==3){
                ma[i][5]=kind[2]; //Gr��e Bei Return
                }
        }
        else
        //Video
        if(kind[0]=='video'){
            if(kind[1].length>1){ma[i][3]=kind[1]; //Breite H�he
            }else{ma[i][3]=false;}
            if(target.next('.fVideo').length>0){
                ma[i][4]=true;
              }else{
              ma[i][4]=false;
              }
            ma[i][5]=false;
        }
        else
        //Bild
        if(kind[0]=='fImage'){
            ma[i][3]=kind[1];
            ma[i][4]=true;
            ma[i][5]=false;
        }
    }
    //sonstiges
    else {
        ma[i][0] = kind;
        ma[i][3] = false;
        ma[i][4] = false;
        ma[i][5] = false;
    }

  //Bilduntertitel
  if(target.attr('title').length>0){
    ma[i][1]=true;
  }else{
    ma[i][1]=false;
  }
  //Beschreibung
  if(target.next('.fDescr').length>0){
    ma[i][2]=true;
  }else{
    ma[i][2]=false;
  }

}
return ma;
}
//Wieviele soll ich zeigen
            function hideThumb(index,val,gId){
            var allInArow = jQuery('div.fGallery:eq('+gId+') a.fbox')
            var cnt= allInArow.length
                 if(cnt>val){
                          allInArow.css('display','none');
                          for(si=0; si<=val-1; si++){
                          allInArow.eq(si).show(1);

                          }
                          }

                      }
//Hier beginnt das Plugin
(function($) {
    $.fn.extend({
      fightBox: function(options) {
         var defaults = {
            mArr:'',
            bildtitel:true,
            boxX:800, // Breite des Blenders
            boxT:40,  //Titel
            boxS:59, //Slider
            boxF:90,  //Beschreibung
            boxMarginTop:20, //eventueller zus�tzlicher Margin bei Max hochkant Bildern
            boxDescr: true, //Beschreibung auslesen und einblenden
            // Ab hier nicht �ndern
            markup:'<div id="shadow" style="display:none">\
                        <div id="ImgPreload">\
                            <a id="prelClick" href="#"><img src="images/fb_close.png" border="0" /></a>\
                            <div id="contDiv">\
                                <div id="innerDiv"></div>\
                            </div>\
                            <div id="subtitle"></div>\
                        </div>\
                    </div>',
            sliderMark:'<div id="img_slider"><a class="slideButton" id="slideLeft" href="#"><img src="images/fb_arrow_left.png" border="0" /></a><a class="slideButton" href="#" id="slideRight"><img src="images/fb_arrow_right.png" border="0" /></a><div id="sliding_element"></div></div>'
            }
            var opt = $.extend(defaults, options);
	        return this.each(function(i,conts) {
            var obj = $(this);
//Grundwerte festlegen
            boxY=0;
            var boxX=opt.boxX;//Box Breite �bernehmen
            var boxT=0;//Box Titelh�he nullen
            var boxS=0;//Box Sliderh�he nullen
            var boxF=0;//Box Beschreibungsh�he nullen
//GrundMarkup
            if(i===0 && $('#shadow').length<=0){$('body').prepend(opt.markup);
            }

//Global Array �bernehmen
            var mArr =new Array();
            var objClass = obj.attr('class');
            var objClass = objClass.split(' ');
            var index = $('.'+objClass[0]).index(this)
            mArr = opt.arr;
//Bei Click
            obj.click(function(){
            winSize(); //Bildschirmgr��e
            if(mArr[index][1]===true){
                bildtitel(index); //Title
            }

            if(mArr[index][2]===true){
               descrAppend(index); //Beschreibung
            }


            switch(mArr[index][0]){
            case 'fImage':
            imgAdd(index);
            break;

            case 'gallery':
            var gal= mArr[index][4]
            slider(index);
            var adder= index+($('#sliding_element:eq('+gal+') .fbox').length);
            imgAdd(adder,index);
            break;

            case 'video':
            htmlAdd(index);
            break;

            case 'form':
            formAjaxAdd(index)
            break;

            default:
            alert('sth else')
            break;
            }
            return false;
            })
//Schatten einblenden
            function shadowFader(target,boxX,boxY){
			
              if($('#shadow').is('visible')){alert('Bypass')}else{
              if($.browser.msie){
                $('#shadow').css({'display':'block'});
                launchBox(target,boxX,boxY)}else{
              $('#shadow').fadeIn(300,function(){
              launchBox(target,boxX,boxY)

              });
              }
            }
            }
//Bildtitel
            function bildtitel(target){
                var sTitle = $('a.fbox:eq('+target+')').attr('title');
                $('#subtitle').html(sTitle);
                boxT = opt.boxT;
            }
//Beschreibung
            function descrAppend(target){

                if($('#ImgPreload .description').length<=0){
				    $('#ImgPreload').append('<div class="description"></div>');
				}
                var descrLink=$('.fbox:eq('+target+')').next('.fDescr').html()
                $('#ImgPreload .description').html(descrLink);
                boxF = opt.boxF;
                boxX = opt.boxX;
                }
//FightBox Schlie�en
			$('#prelClick').click(function(e){closer('shadow');
			e.preventDefault(); })
            function closer(target, cB){

            if(cB===undefined){
              if($.browser.msie){
                $('#shadow').css({'display':'none'});}
              else{
                $('#'+target).fadeOut(300);
              }
              $('#ImgPreload').fadeOut(300,function(){
              $('#innerDiv').html('');
              $('#innerDiv').hide(1);
              $('#contDiv').css('display','none');
              $('#subtitle').html('');
              $('#subtitle').css('display','none');
              $('#ImgPreload').width('100px');
              $('#ImgPreload').height('100px');
              $('#ImgPreload').css({'left':0, 'top':0})
              $('#prelClick').css('display','none');
              $('.description').css('display','none');
              $('.description').html('');
              $('#img_slider').css('display','none');
              $('.slideButton').css('display','none');
              $('#sliding_element').html('');
              });
            }else{
                $('#subtitle').fadeOut();
                $('#img_slider').fadeOut();
                $('.description').fadeOut();
                $('#innerDiv').fadeOut();
            }
            }

//Einbindung des Videos/Html
            function htmlAdd(target){
              var sizes=mArr[target][3]
              var sizes= sizes.split('.')
              var conts = $('.fbox').eq(target).next('.fVideo').children('textarea').val();
              var conts = conts.replace('&lt;', '<');
              var conts = conts.replace('&gt;','>');
              $('#innerDiv').append(conts)
              shadowFader(target, sizes[0], sizes[1])
            }


//Einbindung des Bildes mit Callback
             function imgAdd(target,oId){
             var imgSrc= $('a.fbox').eq(target).attr('href');
               var pic = new Image();
               pic.src= imgSrc;
                if(pic.complete){
                imgExec()
                }
                else{
                pic.onload=imgExec
               }

              function imgExec(){
              $('#innerDiv').html('<img id="obj_'+target+'" src="'+pic.src+'" class="imgLoad" />')
                  if(mArr[target][0]=='gallery'){
                    if(mArr[target][5].length>0){
                        var szs = mArr[target][5];
                        var szs = szs.split('.');
                        var imgX= szs[0];
                        var imgY= szs[1];
                    }else{
                    var imgX = pic.width
                    var imgY = pic.height
                    }

                  }else{
                  if(mArr[target][3].length>0){

                  var szs = mArr[target][3];
                  var szs = szs.split('.');
                  var imgX= szs[0];
                  var imgY= szs[1];
                }else{
                  var imgX = pic.width
                  var imgY = pic.height
                }
                }
                ImgCalc(imgX,imgY,target);
                }
             }
//Gro�en Objekten eine neue Gr��e zuordnen
            function ImgCalc(imgX,imgY,func){
            var imgX=parseInt(imgX);
            var imgY=parseInt(imgY);

// Variablen f�r die Berechnung
            var scr=wSizeC();
            var scrX=scr[0]; //Bildschirm x
            var scrY=scr[1]; //Bildschirm y

            if(boxX!=0){var boxX= opt.boxX} // Box X Gr��enzuweisung
            if(mArr[func][0]=='gallery'){var boxX=opt.boxX}

            if(imgX <= boxX && imgY<=scrY-(boxT+boxF+boxS)){
               imgDim=new Array(imgX,imgY);
            }else
             if(imgX>opt.boxX && imgY<=scrY-(boxT+boxF+boxS)){
               var imgDim=imgCalc1();
             }else
             if(imgX<=boxX && imgY>scrY-(boxT+boxF+boxS)){
               var imgDim=imgCalc2();
             }
             else
             if(imgX>boxX && imgY>scrY-(boxT+boxF+boxS)){
               var imgDim=imgCalc3();
             }

             function imgCalc1(){
               var factor= imgX/boxX;
               var imgNy=imgY/factor;
               var imgNx=boxX;
               var imgDim=new Array(Math.floor(imgNx),Math.floor(imgNy))
               return imgDim;
             }

             function imgCalc2(){
               var factor=imgY/(scrY-(boxT+boxF+boxS));
               var imgNx=imgX/factor;
               var imgNy=scrY-(boxT+boxF+boxS)-opt.boxMarginTop
               var imgDim=new Array(Math.floor(imgNx),Math.floor(imgNy))
               return imgDim
             }

             function imgCalc3(){

               if(imgX-boxX >= imgY-(scrY-(boxT+boxF+boxS))){
                 var imgDim=imgCalc1();
                 return imgDim;
               }else{
                 var imgDim=imgCalc2()
                 return imgDim;
               }
             }
             if(mArr[func][0]=='fImage'||mArr[func][0]=='gallery'){
             $('#innerDiv img').width(imgDim[0]).height(imgDim[1]);
             }
             if(mArr[func][2]==false){boxX=imgDim[0]}

             shadowFader(func,boxX,imgDim[1]+boxT+boxF+boxS)
             }

// Einbindung Ajax Formular
             function formAjaxAdd(target,spec){

             if(spec===undefined){ // normaler Durchlauf
             var sizes=mArr[target][4];
             var sizes= sizes.split('.');
             var sizTemp = mArr[target][5];
             var sizTemp = sizTemp.split('.')
             sizes[2] = sizTemp[0];
             sizes[3] = sizTemp[1]
             var urls= $('.fbox').eq(target).attr('href');
			 urls = urls + '?pb=2011';
             }else{      //beipass Schleife
             var sizes= spec[0];
             var sizes= sizes.split('.');
             var sizTemp = spec[1];
             var sizTemp = sizTemp.split('.')
             sizes[2] = sizTemp[0];
             sizes[3] = sizTemp[1]
             var target=undefined;
             var urls = spec[2];
             $('#innerDiv').html('');
             }
             $.ajax({
                  type: "POST",
                  url:urls,
                  dataType: "html",
                  success: function(html) {
                      $('#innerDiv').append(html);
                      shadowFader(target, sizes[0], sizes[1])
                      ajaxSend(target, sizes);
                      }
              });
            }

//Ajax Abschicken der Daten und �bernahme der Ausgabe
			function ajaxSend(target,sizes){
				$('#pbform').submit(function(){
                  $('#pbform label').each(function(i){
                  // Ist Pflichtfeld
                  if($(this).children('.pflicht').length>0){
                    //ist eMail pr�ffeld
                    if($(this).next().attr('name')=='email'){
                    var strng=$(this).next().val();
                    var emailFilter=/^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/ ;
                    if (emailFilter.test(strng)) {
                    if($(this).next().hasClass('error')){$(this).next().removeClass('error');}
                    }else{
                    if(!$(this).next().hasClass('error')){$(this).next().addClass('error');}
                    }
                    }
                    else{
                      //pr�fen ob leer
                        if($(this).next().val()==''){
                        if(!$(this).next().hasClass('error')){$(this).next().addClass('error');}
                        }else{
                        if($(this).next().hasClass('error')){$(this).next().removeClass('error');}
                        }
                    }
                  }
                  })

                  if($('#pbform').find('.error').length<=0){
				var data= $('#pbform').serialize()
                var url = $('#pbform').attr('action')
                var data = data+'&pbsend=true';
                closer(target,0)
                $.ajax({
                type: 'POST',
                url: url,
                data: data,
                success: function(output){
                $('#popupSite').remove();
                $('#innerDiv').append(output);
                launchBox(target, sizes[2], sizes[3])
                }
                });
                }
                return false;

                })
			}

		   stopMe=true// wird ben�tigt um die Bypass funktion nur ein mal auszuf�hren
            //bypassFormular
            $('#ImgPreload a.bbox, span.lnksamen a.fAForm').live('click',function(){
              if(stopMe===true){
                stopMe = false;
                closer('shadow',0);
                winSize();
                var spec = $(this).attr('rev');
                var spec=spec.split(',');
                spec[2]=$(this).attr('href');
                appender('none',spec);
              }
              return false;
            })


//image Slider
          function slider(target){
          if($('#img_slider').length<=0){
          $('#subtitle').after(opt.sliderMark);
          }
          boxS=opt.boxS;
            var $sMrkp=$('.fGallery').eq(mArr[target][4]);
            $('a.fbox',$sMrkp).each(function(ind){
            var lnks = $(this).attr('href');
            var imgs = $(this).children('img').attr('src');
            var i=   $(this).index('.fbox')
            var constr = '<a id="slide_img_'+ind+'" href="'+lnks+'" class="sbox" rel="bypass"><img src='+imgs+' height="49" alt="slider '+i+'"></a>';
            $('#sliding_element').append(constr)
            })
//Click List
            $('#sliding_element a.sbox,#slideLeft,#slideRight').click(function(e){
              if(stopMe===true){
                stopMe=false;
            var $elm = $(this);
            var pref = 'slider ';
            if($elm.attr('class')=='slideButton'){
            sId = new Array();
            sId[0]=parseInt($('#sliding_element a:first img').attr('alt').replace(pref,''));
            sId[1]=parseInt($('#sliding_element a:last img').attr('alt').replace(pref,''));
            sId[2]=parseInt($('#innerDiv img').attr('id').replace('obj_',''));
            var sum= sId[1]+sId[2]
            if($elm.attr('id')=='slideLeft') {if(sId[2]-1<sId[0]){var cIdi = sId[1]}else{cIdi=sId[2]-1}}
            if($elm.attr('id')=='slideRight'){if(sId[2]+1>sId[1]){var cIdi = sId[0]}else{cIdi=sId[2]+1}}
            }else{
            var cId=$('img',$(this)).attr('alt')
            var cId=cId.split(' ')
            var cIdi= cId[1];
            var cIdi=parseInt(cIdi)}
            closer(cIdi,0);

            var target = cIdi+$(this).parent('div').children('a').length
            winSize(); //Bildschirmgr��e
            setTimeout(function(){
            appender(cIdi);
            },1000) }
            return false;
            })
            }

            function appender(cIdi,spec){

            if(cIdi!='none' && mArr[cIdi][1]===true){
                bildtitel(cIdi); //Title
            }
            else{
                $('#subtitle').css('display','none');
                $('#subtitle').html('');
                boxT=0;
            }
             if(cIdi!='none' && mArr[cIdi][2]===true){
               descrAppend(cIdi); //Beschreibung
            }else{
                if($('.description').length>0){
                    $('.description').css('display','none');
                    $('.description').html('');
                    boxF=0;
                }
             }

            if(cIdi=='none' ){
            if($('#img_slider').length>0){
            $('#img_slider').fadeOut(1,function(){
              formAjaxAdd(undefined,spec)
              })}else{
              formAjaxAdd(undefined,spec);}
              }else{imgAdd(cIdi,1);}
            }

//Fightbox ausf�hren
             function launchBox(target, boxX, boxY){
                pos1 = cntCenter(100, 100);
                $('#ImgPreload').css({'left':pos1[0],'top':pos1[1]})

                $('#ImgPreload').delay(200).fadeIn(200);
                $('#ImgPreload').css('background-image','url(images/ajax-loader2.gif)')
                setTimeout(function(){$('#ImgPreload').css('background-image','none')},1000)
                pos = cntCenter(boxX,boxY)
                $('#ImgPreload').delay(600).animate({
                   width:boxX,
                   height:boxY,
                   left:pos[0],
                   top:pos[1]
                },200,
                    function(){
                        $('#prelClick').fadeIn(10);
                        $('#innerDiv').fadeIn();
                        $('#contDiv').fadeIn(300,function(){
                            $('#subtitle').fadeIn();
                            $('.description').fadeIn();
                            if(target!=undefined){
                              if(mArr[target][0]=='gallery' && $('#img_slider').length>0){
                                $('#img_slider').fadeIn();
                                $('.slideButton').fadeIn();
                                }
                            }
                        });
                    }
               )
               stopMe=true
             }
}) //Each
}  //Function Name
}) //FN Extend
}) //Function
(jQuery)

// Check Body Size
function wSizeC(){
    if (typeof window.innerWidth != 'undefined' && window.innerWidth != '' )
    {
    dim = new Array(window.innerWidth, window.innerHeight);

    }else{
    dim = new Array(document.body.clientWidth, document.documentElement.clientHeight)
    }
  if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
    } else {
	 scrOfY = 1; 
	}
    
    dim.push(scrOfY);
    return dim;
}

// Box Center
function cntCenter(boxX,boxY){
  if(boxX!= undefined && boxY!= undefined){
    var objW = boxX;
    var objH = boxY;
  }else{
    var objH =   jQuery('#ImgPreload').height();
    var objW =   jQuery('#ImgPreload').width();
  }
  var dim= wSizeC()
  var pos = new Array((dim[0]/2)-(objW/2),((dim[1]/2)+dim[2])-(objH/2));
   return pos;
}

 // Shadow size modifier
 function winSize() {
   jQuery('#shadow').height(jQuery(document).height());
}
