jQuery(document).ready(function(){
	jQuery.jQueryRandom = 0;
	jQuery.extend(jQuery.expr[":"],
	{
    		random: function(a, i, m, r) {
        		if (i == 0) {
            			jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
        		};
        		return i == jQuery.jQueryRandom;
    		}
	});
    
    t = '';
    t2 = '';
    
    activate(jQuery(".childElement:first"));
    
    t = setTimeout(nextElement, tx3dgjqueryteaserFade*0.7);
    
    jQuery(".childElement").hover(function(){
        clearTimeout(t);
        jQuery(this).addClass('hover');
        if (jQuery(this).is(":not(.active)")) { 
            activate(this,1);
        }
        if (jQuery(".childImages", this).children(jQuery("img")).size() > 1) {
            t2 = setTimeout(setRandomImageElement, tx3dgjqueryteaserFade*0.7);
        }
    }, function() {
        jQuery(this).removeClass('hover');
        clearTimeout(t2);
        t = setTimeout(nextElement, tx3dgjqueryteaserFade*0.7);
    });
    
    function activate(el,hover) {
	if (hover == 1) {
	    jQuery(".cover").css({'top':'0px', 'height': '0px', 'opacity': '0'});
	    
	    setRandomImage(el);
	    
	    jQuery(".cover", el).css({'left':'-300px', 'height': '30px', 'opacity': '1'});
	    jQuery('.childElement').removeClass('active');
	    jQuery(el).addClass('active');
	}
	else {
	    jQuery(".cover").stop().animate({top:'0px', height: '0px', opacity: '0'},{queue:false,duration:tx3dgjqueryteaserImageFade});
	    
	    setRandomImage(el);

	    jQuery(".cover", el).stop().animate({left:'-300px', height: '30px', opacity: '1'},{queue:false,duration:tx3dgjqueryteaserImageFade*0.3});
	    jQuery('.childElement').removeClass('active');
	    jQuery(el).addClass('active');
	}
    };
        
    function nextElement() {
        if (jQuery(".childElement.active").next().length > 0) {
            activate(jQuery(".childElement.active").next());
	}
	else {
	    activate(jQuery(".childElement:first"));
	}
	t = setTimeout(nextElement, tx3dgjqueryteaserFade);
    }
        
    function setRandomImage(parent) {
	lastImg = jQuery('.tx-3dgjqueryteaserImage');
	jQuery(lastImg).addClass('activelast');
	//new image
	newImg = jQuery('.childImages .singleImage img:random', parent).clone().insertAfter(jQuery(lastImg)).css({opacity: 0.0}).addClass('tx-3dgjqueryteaserImage').addClass('active').animate({opacity: 1.0}, tx3dgjqueryteaserImageFade, function() {
            jQuery(lastImg).remove();
        });
        currentImgSrc = jQuery(newImg).attr("src");
        addTeaserBox(jQuery('.childImages img[src*=' + currentImgSrc + ']', parent).parent().children(jQuery('.teaserText')).children());
    }
    
    function setRandomImageElement() {
	lastImg = jQuery('.tx-3dgjqueryteaserImage');
        lastImgSrc = (jQuery('.tx-3dgjqueryteaserImage').attr("src"));
	jQuery(lastImg).addClass('activelast');
        
        if (jQuery('.childElement.active .childImages img[src*=' + lastImgSrc + ']').parent().next().children(jQuery('img')).attr("src")) {
	    //new image
	    newImg = jQuery('.active .childImages img[src*=' + lastImgSrc + ']').parent().next().children('img').clone().insertAfter(jQuery(lastImg)).css({opacity: 0.0}).addClass('tx-3dgjqueryteaserImage').addClass('active').animate({opacity: 1.0}, tx3dgjqueryteaserImageFade, function() {
	        jQuery(lastImg).remove();
	    });
	    currentImgSrc = jQuery(newImg).attr("src");
            addTeaserBox(jQuery('.childImages img[src*=' + currentImgSrc + ']').parent().children(jQuery('.teaserText')).children());
        }
        else {
            //jQuery('.tx-3dgjqueryteaserImage').attr("src",jQuery('.active .childImages img:first').attr("src"));
	    newImg = jQuery('.active .childImages img:first').clone().insertAfter(jQuery(lastImg)).css({opacity: 0.0}).addClass('tx-3dgjqueryteaserImage').addClass('active').animate({opacity: 1.0}, tx3dgjqueryteaserImageFade, function() {
	        jQuery(lastImg).remove();
	    });
	    currentImgSrc = jQuery(newImg).attr("src");
            addTeaserBox(jQuery('.childImages img[src*=' + currentImgSrc + ']').parent().children(jQuery('.teaserText')).children());
        }        

        t2 = setTimeout(setRandomImageElement, tx3dgjqueryteaserFade*0.7);
    }
    
    function addTeaserBox(teaser) {
        jQuery('#tx-3dgjqueryteaserTeaser').empty();
	if (jQuery(teaser).length > 0) {
	    jQuery('#tx-3dgjqueryteaserTeaser').append("<div class=\"teaserContent\"></div>");
	    var children = jQuery(teaser).clone();
	    jQuery.each(children, function() {
		jQuery('.teaserContent').append(jQuery(this));
	    });
	    jQuery('#tx-3dgjqueryteaserTeaser').fadeTo(tx3dgjqueryteaserImageFade, 1);
	}
    }
});
