
(function($){

    $.fn.setContentAnimations = function(settings){

        var defaults = {
            timeoutTime: 3000,
            setPager: false,
            slideOnlyImages:true,
			slidingImages: [],
            setLightbox: true,
			setNavigationEvents: true,
			slideInDuration: 1500,
			slideOutDuration: 1500,
			showProjectTable: false
        };
		
        var options = $.extend(defaults, settings);
        var $obj = $(this);
		var $slObj, $imgslideobj=[], projectslength, pitems=[], iitems=[], pid, iid, stopimg=false, onlyImageSliding=false;
		
		/*
		kicks off new
		*/
		
		var setLightbox = function(objId, evt) {
            stopimg=true;
            evt.preventDefault();
            $('#'+objId+' a').lightBox();
        }
		
		var setLightBoxLinks = function(){
			$obj.find('a[rel=lightbox]').bind(
				'mousedown',
				function(evt){
					setLightbox($(this).parent('div').attr('id'), evt);
				}
			)
		}
		
		var initSecontNavigation = function(elem){
			$(elem).find('a.projectnavigationlinkitem').bind('mousedown', 
				function(){	
					$('.'+setUpClasses.projectListfFrameClass).css({
						display: 'none',
						visibility: 'hidden'
					});	
					$('.'+setUpClasses.textContentFrameClass).css({
						display: 'block',
						visibility: 'visible'
					});
					onlyImageSliding=true;
					kickOffSliding($(this).attr('id').substr(1));
					addRemoveClass($('a#n'+$(this).attr('id').substr(1)), 'on', $('.projectnavigationframeclass'));					
				}
			);
		}
		
		function addRemoveClass(obj, classname, contentext){
			var $b = contentext.find('.'+classname);
			$b.removeClass(classname);
			obj.addClass(classname);
		}
		
		var itemindex = function(obj){
			var idx = [];
			$.each(obj, function(key, value){
				idx.push('li'+key);
			});
			return idx;
		}
		var objectindex = function(obj){
			var idx = [];
			$.each(obj, function(key, value){
				idx.push('c'+key);
			});
			return idx;
		}
		
		function kickOffImageSliding(v, prnr){	
							
			clearTimeout(iid);			
			//alert(onlyImageSliding)
			if(!options.slideOnlyImages && !onlyImageSliding){				
				if(v==$('#c'+prnr+' #i'+prnr).find('a').length){											
					$('#c'+prnr+' #i'+prnr).find('a:visible').removeAttr('style');				
					if(parseInt(prnr)==parseInt(projectslength)-1)
						nprnr = 0;
					else if(parseInt(prnr)<parseInt(projectslength))
						nprnr = parseInt(prnr)+1;				
					kickOffSliding(nprnr);				
					return;
				}	
			}			
			if(!stopimg){
				if($('.contentlistitem:visible .imageframe').find('a').length>1){
					$imgslideobj[prnr].triggerHandler('goto', v);					
					if(v<$('.contentlistitem:visible .imageframe').find('a').length){
						v++;					
					}else{						
						if(options.slideOnlyImages)
							v=0;
						if(onlyImageSliding)
							v=1;
					}
					if(options.setPager)
						PagerController(prnr);
					iid = setTimeout(
						function(){
							kickOffImageSliding(v, prnr);
						}
					, options.timeoutTime);	
				}else{
					$imgslideobj[prnr].triggerHandler('goto', 0);					
					if(!onlyImageSliding){
						v=1;
						iid = setTimeout(
						function(){
							kickOffImageSliding(v, prnr);
						}
						, options.timeoutTime);	
					}
				}
			}
		}
		
		function PagerController(i){
		
			if($('#maincontent div#c'+i+' #i'+i).find('a:visible').prev().length==0){
				setPagerImages($('#maincontent div#c'+i+' #p'+i).find('a[rel=prev]').children('img'),'images/pfeil_blaettern_links.gif');
			} else {
				setPagerImages($('#maincontent div#c'+i+' #p'+i).find('a[rel=prev]').children('img'),'images/pfeil_blaettern_links_over.gif');
			}
			if($('#maincontent div#c'+i+' #i'+i).find('a:visible').next().length==0){
				setPagerImages($('#maincontent div#c'+i+' #p'+i).find('a[rel=next]').children('img'),'images/pfeil_blaettern_rechts.gif');
			} else {
				setPagerImages($('#maincontent div#c'+i+' #p'+i).find('a[rel=next]').children('img'),'images/pfeil_blaettern_rechts_over.gif');
			}
		}
		
		function setPagerImages(obj, img){
			obj.attr({
				src:img
			});
		}
		
		var setPagerLinks = function(i){
			var $prevLink = $('#maincontent div#c'+i+' #p'+i).find('a[rel=prev]');
			var $nextLink = $('#maincontent div#c'+i+' #p'+i).find('a[rel=next]');
			$prevLink.click(function(){
				stopimg = true;	
				PagerController(i);
				if(!$('#maincontent div#c'+i+' #i'+i+' a:visible').prev().length>0){					
					return;
				}				
				$imgslideobj[i].triggerHandler('prev');
			});
			
			$nextLink.click(function(){		
				stopimg = true;
				PagerController(i);
				if(!$('#maincontent div#c'+i+' #i'+i+' a:visible').next().length>0){										
					return;
				}				
				$imgslideobj[i].triggerHandler('next');
			});			
		}		
	
		function initImageSliding(t, objitems){		

			$imgslideobj[t] = $('#maincontent div#c'+t+' #i'+t);
			
			if(!objitems)
				iitems[t] = itemindex(contentitems[t].images);
			else
				iitems[t] = objitems;
				
			$imgslideobj[t].items =iitems[t].length;
			
			$imgslideobj[t].slideObject({
				interval: options.timeoutTime,				
				displayItemIndex: '#',
				displayItemClass: 'imagelink',
				items: iitems[t],				
				auto: false,
				slideInDuration: options.slideInDuration,
				slideOutDuration: options.slideOutDuration
			});
			
			if($imgslideobj[t].items>1)
				setPagerLinks(t);	
				
			if(!options.slideOnlyImages)
				$slObj.unbind('next', 'prev', 'goto'); // ,uß das hier rein ?!
						
			kickOffImageSliding(0, t);					
		}
		
		function toogleProjectTable(chk){
			if(chk){
			if($('.'+setUpClasses.projectListfFrameClass).css('display')!='block'){
				$('.'+setUpClasses.projectListfFrameClass).css({
					display: 'block',
					visibility: 'visible'
				});		
				$('.'+setUpClasses.textContentFrameClass).css({
					display: 'none',
					visibility: 'hidden'
				});
			}else{
				$('.'+setUpClasses.projectListfFrameClass).css({
					display: 'none',
					visibility: 'hidden'
				});	
				$('.'+setUpClasses.textContentFrameClass).css({
					display: 'block',
					visibility: 'visible'
				});
			}
			}
		}
		function initProjectTableLinkEvents(){
			$('.allprojectlink').bind('mousedown',
				function(){
					stopimg=true;
					addRemoveClass($(this), 'on', $('.projectnavigationlistclass'));					
					$('.'+setUpClasses.projectListfFrameClass).css({
						display: 'block',
						visibility: 'visible'
					});		
					$('.'+setUpClasses.textContentFrameClass).css({
						display: 'none',
						visibility: 'hidden'
					});
					if($('.projectlistframe').find('.jScrollPaneContainer').length<1)
						$('#'+setUpClasses.projectScrollAreaFrameId).jScrollPane({
							showArrows:true
						});
				}
			);
		}
		
		function kickOffSliding(i){		
		
			if(!i||i==undefined)
				i=0;		
				
			$slObj.triggerHandler('goto', i);
			addRemoveClass($('a#n'+i), 'on', $('.projectnavigationlistclass'));
			stopimg=false;
			
			if($('#c'+i+' #i'+i+' a').length>0){			
				clearTimeout(pid);							
				if($imgslideobj[i]==undefined)
					initImageSliding(i);
				else
					kickOffImageSliding(0, i);					
				return;			
			}			
			
			if(i<projectslength){
				i++;
			}else if (i>=projectslength){
				i=0;
			}
			
			pid = setTimeout(
				function(){
					kickOffSliding(i);
				}
			, options.timeoutTime);
		}
		    
        return this.each(function(){
		
			if(options.setPager)
				setPager();
				
            if(options.slideOnlyImages){
				initImageSliding(0, options.slidingImages);
            }else{
				$slObj = $('#maincontent');
				pitems = objectindex(contentitems);	
				projectslength = pitems.length;
				$slObj.slideObject({
					interval: options.timeoutTime,
					displayItemIndex: '#',
					displayItemClass: 'contentlistitem',					
					items: pitems,
					auto: false,
					slideInDuration: options.slideInDuration,
					slideOutDuration: options.slideOutDuration
				});
				kickOffSliding(0);	
			}        

            if(options.setLightbox){
                setLightBoxLinks();
            }
			if(options.setNavigationEvents)
				initSecontNavigation($('.projectnavigationlistclass'));
				
			if(options.showProjectTable){
				showProjectTableLink();
				if($('.allprojectlink').length>0)
					initProjectTableLinkEvents();
			}
			
        });
    };

})(jQuery);

(function($){
    $.fn.slideObject = function(options){
	
		var defaults = {
			interval: 2000,
			displayItemIndex: '',
			displayItemClass: '',
			items: [],
			auto: false,
			slideInDuration: 500,
			slideOutDuration: 500
        };
		
        var options = $.extend(defaults, options);		
		
        return this.each(function(){
			var $slobj = $(this)
            var current = 0, id;
			
			$slobj.bind('start', start)
				.bind('stop', stopSliding);
			
			$slobj.bind('prev', prev)	
				.bind('next', next);
			$slobj.bind('goto',
					function(e, index){	
						show(index);
					}
				);
			
			function show(index){
			
				var total = options.items.length;
				
				while( index < 0 ){
					index += total;
				}
				
				while( index >= total ){
					index -= total;					
				}				
	
				current = index;
				if($slobj.find('.'+options.displayItemClass+':visible').length){
					$slobj.find('.'+options.displayItemClass+':visible').stop(true, true).fadeOut(options.slideOutDuration);
					$slobj.find('.'+options.displayItemClass+':visible').stop(true, true).removeAttr('style')
				}
				$slobj.find(options.displayItemIndex+options.items[index]).stop(true, true).fadeIn(options.slideInDuration);
				
				if(options.auto)
					start();
			 }

			 function prev(){
				show(current-1);
			 }

			 function next(){
				show(current+1);
			 }
            
			function start(){
				stop();
				//options.auto = true;				
				id = setTimeout(next, options.interval);
			}

			function stopSliding(){
				options.auto = false;
				clearTimeout(id);
			}
			
        });
    };
 })( jQuery );
    
var pagerLinkItems = new Array();
pagerLinkItems.push({pagerrel: 'prev', pagerimage:'previmg'});
pagerLinkItems.push({pagerrel: 'next', pagerimage:'nextimg'});

(function($){
	
    $.fn.buildSiteContent = function(settings){
		var defaults = {
			
        };
		
		var options = $.extend(defaults, options);
		
		return this.each(function(){
			var $contentObj = $(this);
			
			function init(){
			
			}
		})
	}
	
})(jQuery);

$.fn.buildItemContent = function(){
	
    $.each(contentitems, function(key, value){
        $('.'+setUpClasses.textContentFrameClass).append(
                new divtag({
                    divclass: (value.linkid==0)?setUpClasses.textContentItemClass+' '/*+setUpClasses.showHiddenElementClass*/:setUpClasses.textContentItemClass,
                    divid: setUpClasses.mainNavigationID+value.linkid
                }).append(
                    new divtag({
                            divclass: setUpClasses.contentImageFrame,
                            divid: setUpClasses.systemImageId+key
                        }
                    ),
                    new divtag({
                            divclass: setUpClasses.pagerClass,
                            divid: setUpClasses.pagerId+key
                        }
                    ),
                    new headline(
                        {
                            headlinetext: value.headline,
                            headlineid: '',
                            headlineclass: setUpClasses.textHeadlineClass
                        }
                    ),
                    new paragraph(
                        {
                            paragraphtext: value.standort,
                            paragraphid: '',
                            paragraphclass: setUpClasses.textParagraphClass
                        }
                    ),
                    new paragraph(
                        {
                            paragraphtext: value.text,
                            paragraphid: '',
                            paragraphclass: setUpClasses.textInfoParagraphClass
                        }
                    )
                )
            );
        $().setContentImages(value.images, $('#'+setUpClasses.systemImageId+key),value.imagefolder, value.headline);
    });
}

function setPager(){
	$('.pager').each(
		function(i){
			$(	
				$(pagerLinkItems)
					.map(
						function(i, el){
							var imgsrc = (el.pagerrel == 'prev')?'pfeil_blaettern_links.gif':'pfeil_blaettern_rechts.gif';
							var linkimg =     new image({
												imagefolder: 'images',
												image: imgsrc,
												imageclass: '',
												imageid: '',
												imagealt: ''
											});
							var linkitem = new link({
								linktarget: '#',
								linktext:     '',
								linkid: 'projectpager' + el.pagerrel,
								linkclass: 'pagerlinkitem',
								linkopen: '',
								linktitle: '',
								linkattr: 'rel',
								linkattrcontent: el.pagerrel
							});
							return linkitem.append($(linkimg));
						}
					)
			)
			.appendTo($('#'+setUpClasses.pagerId+i));
		}
	);
}

$.fn.setContentImages = function(elem, frameobj, imgfolder, imagetext){
    for(i=0;i<elem.length;i++){
        $(frameobj).
            append(
                $(
                    new link({
                        linktarget: 'contentVisuals/'+setUpClasses.siteImageFolder+'/'+imgfolder+'/largeImages/'+(i+1)+'.jpg',
                        linktext: '<img src='+setUpClasses.systemImageFolder+'/'+setUpClasses.siteImageFolder+'/'+elem[i]+' alt="'+elem[i]+'" />',
                        linkid: 'li'+i,
                        linkclass: setUpClasses.contentImageLink,
                        linkopen: '',
                        linktitle: imagetext,
                        linkattr: '',
                        linkattrcontent: ''
                    })
                ).attr('rel', 'lightbox')
            );
    }
}
var showProjectTableLink = function(){
  $(
        new link({
                linktarget: setUpClasses.secondNavigationLinkItemTarget,
                linktext: setUpClasses.siteProjectOverviewLinkText,
                linkid: 'n99',
                linkclass: setUpClasses.projectListLinkClass,
                linkopen: '',
                linktitle: '',
                linkattr: '',
                linkattrcontent: ''
        })
    ).appendTo('.'+setUpClasses.mainNavigationListClass);
}

$.fn.buildNavigation = function() {
    var links = $(contentitems).map(function(i, el){
        return $(new simpleHTMLElement({
            htmlelementtype: setUpClasses.secondNavigationListItemElement,
            htmlelementclass: setUpClasses.secondNavigationListItemClass,
            htmlelementid: ''
        })).append(
            $(new link({
                    linktarget: setUpClasses.secondNavigationLinkItemTarget,
                    linktext: el.linktext,
                    linkid: setUpClasses.secondNavigationLinkID+el.linkid,
                    linkclass: (i==0)?setUpClasses.secondNavigationLinkItemClass+ ' '+setUpClasses.secondNavigationActiveItemClass:setUpClasses.secondNavigationLinkItemClass,
                    linkopen: '',
                    linktitle: '',
                    linkattr: '',
                    linkattrcontent: ''
				})
            )
        );
    });
    var secondnavi= new simpleHTMLElement({
                        htmlelementtype: setUpClasses.secondNavigationListElement,
                        htmlelementclass: setUpClasses.secondNavigationListClass,
                        htmlelementid: ''
                    });
    $(links).appendTo(secondnavi);
    $('.'+setUpClasses.mainNavigationListClass).append(secondnavi);
}

