/*-----------------------------------------------------------------------------------*/
/* Preloader & Initialize Masonry Script
/*-----------------------------------------------------------------------------------*/
$('.ajaxloading').fadeIn(500);
$(window).load(function(){
$('.ajaxloading').fadeOut(500);
});
heightTmp = 0;
$(window).load(function(){
$(".slideshowpreload").fadeOut('slow');
$("body").prepend('
');
$("body").prepend('
');
heightTmp = $(document).height();
$(".zooloBorderBottom").height(6+"px");
$(".zooloBorderBottom").css("top", $(window).height()-6+$(document).scrollTop());
$(".zooloBorderTop").height(6+"px");
$(".zooloBorderTop").css("top", $(document).scrollTop());
$(".zooloBorder").width($(window).width()-12);
$(".zooloBorder").height(heightTmp);
});
$(window).resize(function(){
$(".zooloBorder").width($(window).width()-12);
$(".zooloBorder").height($(document).height());
$(".zooloBorderBottom").height(6+"px");
$(".zooloBorderBottom").css("top", $(window).height()-6+$(document).scrollTop());
heightTmp = $(document).height();
});
$(window).scroll(function(){
if ( $(window).height()-6+$(document).scrollTop() < heightTmp ) {
$(".zooloBorderBottom").css("top", $(window).height()-6+$(document).scrollTop());
} else {
$(".zooloBorderBottom").css("top", heightTmp-6); /* urspruenglich heightTmp-6*/
}
$(".zooloBorderTop").css("top", $(document).scrollTop());
});
/*-----------------------------------------------------------------------------------*/
/* Superfish Initialization
/*-----------------------------------------------------------------------------------*/
$(function() {
$('ul.sf-menu').superfish({
autoArrows: true
});
});
/*-----------------------------------------------------------------------------------*/
/* Smooth Dimension Transformation
/*-----------------------------------------------------------------------------------*/
// Animates the dimensional changes resulting from altering element contents
// Usage examples:
// $("#myElement").showHtml("new HTML contents");
// $("div").showHtml("new HTML contents", 400);
// $(".className").showHtml("new HTML contents", 400,
// function() {/* on completion */});
(function($)
{
$.fn.showHtml = function(html, speed, callback)
{
return this.each(function()
{
// The element to be modified
var el = $(this);
// Preserve the original values of width and height - they'll need
// to be modified during the animation, but can be restored once
// the animation has completed.
var finish = {width: this.style.width, height: this.style.height};
// The original width and height represented as pixel values.
// These will only be the same as `finish` if this element had its
// dimensions specified explicitly and in pixels. Of course, if that
// was done then this entire routine is pointless, as the dimensions
// won't change when the content is changed.
var cur = {width: el.width()+'px', height: el.height()+'px'};
// Modify the element's contents. Element will resize.
el.html(html);
// Capture the final dimensions of the element
// (with initial style settings still in effect)
var next = {width: el.width()+'px', height: el.height()+'px'};
el .css(cur) // restore initial dimensions
.animate(next, speed, function() // animate to final dimensions
{
el.css(finish); // restore initial style settings
if ( $.isFunction(callback) ) callback();
});
});
};
})(jQuery);
/*-----------------------------------------------------------------------------------*/
/* Tabs
/*-----------------------------------------------------------------------------------*/
if(jQuery() .tabs) {
$( "#tabs" ).tabs().addClass( "ui-tabs-vertical ui-helper-clearfix" );
$( "#tabs li" ).removeClass( "ui-corner-top" ).addClass( "ui-corner-left" );
$( "#tabs" ).tabs({ fx: { opacity: 'toggle' } });
};
/*-----------------------------------------------------------------------------------*/
/* Pretty Photo
/*-----------------------------------------------------------------------------------*/
$(function(){
$("a[rel^='prettyPhoto']").prettyPhoto({
animation_speed: 'fast', /* fast/slow/normal */
slideshow: 5000, /* false OR interval time in ms */
autoplay_slideshow: false, /* true/false */
opacity: 0.80, /* Value between 0 and 1 */
show_title: false, /* true/false */
allow_resize: true, /* Resize the photos bigger than viewport. true/false */
default_width: 500,
default_height: 344,
counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
horizontal_padding: 20, /* The padding on each side of the picture */
hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
wmode: 'opaque', /* Set the flash wmode attribute */
autoplay: true, /* Automatically start videos: True/False */
modal: false, /* If set to true, only the close button will close the window */
deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */
overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
callback: function(){}, /* Called when prettyPhoto is closed */
ie6_fallback: true
});
});
/*-----------------------------------------------------------------------------------*/
/* Hover Effects
/*-----------------------------------------------------------------------------------*/
function hover_overlay() {
jQuery('.flexslider .slides').each(function() {
var $this = $(this);
$this.hover( function() {
jQuery($this).stop().animate({opacity : 0.1}, 300);
$($this).parent().find('.thumbnailtitle').fadeIn('300');
}, function() {
jQuery($this).stop().animate({opacity : 1}, 300);
$($this).parent().find('.thumbnailtitle').css('display', 'none');
});
});
}
hover_overlay();
function hover_overlay_slide() {
jQuery('.video').hover( function() {
jQuery(this).stop().animate({opacity : 1}, 100);
}, function() {
jQuery(this).stop().animate({opacity : .9}, 100);
});
}
hover_overlay_slide();
function hover_overlay_images() {
jQuery('a img').hover( function() {
jQuery(this).stop().animate({opacity : 0.7}, 500);
}, function() {
jQuery(this).stop().animate({opacity : 1}, 500);
});
}
hover_overlay_images();
/*-----------------------------------------------------------------------------------*/
/* Portfolio Mini Flexible Slideshow
/*-----------------------------------------------------------------------------------*/
$(document).ready(function() {
$('.flexslider').each(function() {
var $this = $(this);
$this.flexslider({
animation: "fade", //String: Select your animation type, "fade" or "slide"
slideDirection: "vertical", //String: Select the sliding direction, "horizontal" or "vertical"
slideshow: true, //Boolean: Animate slider automatically
slideshowSpeed: Math.floor(Math.random()*10001) + 3000, //Integer: Set the speed of the slideshow cycling, in milliseconds
animationDuration: 2000, //Integer: Set the speed of animations, in milliseconds
directionNav: false, //Boolean: Create navigation for previous/next navigation? (true/false)
controlNav: false, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
keyboardNav: false, //Boolean: Allow slider navigating via keyboard left/right keys
mousewheel: false, //Boolean: Allow slider navigating via mousewheel
prevText: "Previous", //String: Set the text for the "previous" directionNav item
nextText: "Next", //String: Set the text for the "next" directionNav item
pausePlay: false, //Boolean: Create pause/play dynamic element
pauseText: 'Pause', //String: Set the text for the "pause" pausePlay item
playText: 'Play', //String: Set the text for the "play" pausePlay item
randomize: false, //Boolean: Randomize slide order
slideToStart: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
pauseOnHover: true, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
controlsContainer: "", //Selector: Declare which container the navigation elements should be appended too. Default container is the flexSlider element. Example use would be ".flexslider-container", "#container", etc. If the given element is not found, the default action will be taken.
manualControls: "", //Selector: Declare custom control navigation. Example would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide
before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation
after: function(){}, //Callback: function(slider) - Fires after each slider animation completes
end: function(){} //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
});
});
});
/*-----------------------------------------------------------------------------------*/
/* Scroll to Top by Andre Gagnon
/*-----------------------------------------------------------------------------------*/
$(document).ready(function() {
$(window).scroll(function () {
var y_scroll_pos = window.pageYOffset;
var scroll_pos_test = 50; // set to whatever you want it to be
if(y_scroll_pos > scroll_pos_test) {
$('.top').fadeIn(1000);
$('.iphone').children('.top').css('display', 'none !important');
} else { $('.top').fadeOut(500);
}
});
$('.top').click(function(){
$('html, body').animate({scrollTop:0}, 500, 'easeOutCubic');
return false;
});
});
/*-----------------------------------------------------------------------------------*/
/* Top Widgets Drawer by Andre Gagnon
/*-----------------------------------------------------------------------------------*/
jQuery(function($) {
var height = $('#top_panel_content').height();
$('#top_panel_button').click(function() {
var docHeight = $(document).height();
var windowHeight = $(window).height();
var scrollPos = docHeight - windowHeight + height;
$('#top_panel_content').animate({ height: "toggle"}, 500, 'easeOutCubic');
$('#toggle_button').toggleClass("downarrow");
jQuery('#top_panel').removeClass('active');
jQuery(this).addClass('active');
});
});
/*-----------------------------------------------------------------------------------*/
/* Ajax Load Post
/*-----------------------------------------------------------------------------------*/
$(document).ready(function(){
$.ajaxSetup({cache:false});
/* Declare Variables */
var ajaxouter = jQuery('#ajaxouter'); /* Outer Container (with data id = post id) */
var url = jQuery('#ajaxinner').attr('data-url'); /* Set the post ID from the outer container */
var $postId = null;
var $nextitem = null;
var $nextId = null;
var $prevId = null;
var $this = null;
var $state = 'closed';
$(".flexslider ul.slides li a.slidingShow").live('click', function(e){
e.preventDefault();
/*Set Function Variables */
$this = $(this);
$postId = $($this).attr('data-url');
$nextitem = $($this).closest('.portfolioitem').next('.portfolioitem').find('a');
$previtem = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a');
$prevId = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a').attr('data-url');
$nextId = $($this).closest('.portfolioitem').next('.portfolioitem').find('a').attr('data-url');
$('.ajaxloading').fadeIn(500);
if ( $.browser.msie && $.browser.version == '7.0') {
$('html,body').parent().animate({scrollTop: $('#loadingcontainer').offset().top}, 2000, 'easeOutCubic');
} else {
$('html,body').animate({scrollTop: $('#loadingcontainer').offset().top}, 2000, 'easeOutCubic');
}
if ($state !== 'closed'){
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
}
ajaxouter.load(url, {
id: $postId
},
function() {
if ($state == 'closed'){
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
/* If there's a previous */
if(typeof $prevId == 'string') {
$('a#prev-port').css('display', 'block');
} else {
$('a#prev-port').css('display', 'none');
}
/* If there's a Next*/
if(typeof $nextId == 'string') {
$('a#next-port').css('display', 'block');
} else {
$('a#next-port').css('display', 'none');
}
$state = 'open';
} else {
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
/* If there's a previous */
if(typeof $prevId == 'string') {
$('a#prev-port').css('display', 'block');
} else {
$('a#prev-port').css('display', 'none');
}
/* If there's a Next*/
if(typeof $nextId == 'string') {
$('a#next-port').css('display', 'block');
} else {
$('a#next-port').css('display', 'none');
}
}
$('.ajaxloading').fadeOut(500);
}
);
return false;
});
$('a#next-port').live('click', function(e){ e.preventDefault();
if(typeof $nextId == 'string') {
$('.ajaxloading').fadeIn(500);
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
ajaxouter.load(url, { id: $nextId },
function() {
$this = $nextitem;
$previtem = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a');
$nextitem = $($this).closest('.portfolioitem').next('.portfolioitem').find('a');
$prevId = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a').attr('data-url');
$nextId = $($this).closest('.portfolioitem').next('.portfolioitem').find('a').attr('data-url');
/* If there's a Next*/
if(typeof $nextId == 'string') {
$('a#next-port').css('display', 'block');
} else {
$('a#next-port').css('display', 'none');
}
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
$('.ajaxloading').fadeOut(500);
});
}
});
$('a#prev-port').live('click', function(e){ e.preventDefault();
if(typeof $prevId == 'string') {
$('.ajaxloading').fadeIn(500);
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
ajaxouter.load(url, { id: $prevId },
function() {
$this = $previtem;
$previtem = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a');
$nextitem = $($this).closest('.portfolioitem').next('.portfolioitem').find('a');
$prevId = $($this).closest('.portfolioitem').prev('.portfolioitem').find('a').attr('data-url');
$nextId = $($this).closest('.portfolioitem').next('.portfolioitem').find('a').attr('data-url');
/* If there's a previous */
if(typeof $prevId == 'string') {
$('a#prev-port').css('display', 'block');
} else {
$('a#prev-port').css('display', 'none');
}
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic');
$('.ajaxloading').fadeOut(500);
});
}
});
$('a.portfolio-close').live('click', function(e){
e.preventDefault();
$state = 'closed';
if ( $.browser.msie && $.browser.version == '7.0' ) {
$('html,body').parent().animate({scrollTop: $('body').offset().top}, 2000, 'easeOutCubic');
} else {
$('html,body').animate({scrollTop: $('body').offset().top}, 2000, 'easeOutCubic');
}
$('#ajaxcontainer').animate({ height: "toggle"}, 500, 'easeOutCubic', function(){
$('.ajaxslider').remove(); // so videos stop playing
});
});
});
/*-----------------------------------------------------------------------------------*/
/* Filter Portfolio
/*-----------------------------------------------------------------------------------*/
$(document).ready(function() {
$('ul.filter a').click(function() {
$(this).css('outline','none');
$('ul.filter .active').removeClass('active');
$(this).parent().addClass('active');
var filterVal = $(this).text().toLowerCase().replace(' ','-');
if(filterVal == 'all') {
$('.portfolioitem .disable').animate({opacity: 0}, 500, function(){
$(this).css('display', 'none');
});
} else {
$('.portfolioitem .disable').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).css('display', 'block');
$(this).animate({opacity: .95}, 500);
} else {
$(this).animate({opacity: 0}, 500, function(){$(this).css('display', 'none');});
}
});
}
return false;
});
});
/*-----------------------------------------------------------------------------------*/
/* Portfolio Flexible Slider
/*-----------------------------------------------------------------------------------*/
$('.projectslideshow').wmuSlider({
animation: 'fade',
animationDuration: 600,
slideshow: false,
slideshowSpeed: 7000,
slideToStart: 0,
navigationControl: true,
paginationControl: true,
previousText: 'Previous',
nextText: 'Next',
touch: true,
slide: 'span'
});
/*-----------------------------------------------------------------------------------*/
/* FitVid Fluid Video
/*-----------------------------------------------------------------------------------*/
$(document).ready(function(){
$(".videocontainer").fitVids();
});
/*-----------------------------------------------------------------------------------*/
/* Coda Slider
/*-----------------------------------------------------------------------------------*/
if(jQuery() .codaSlider){
$('#coda-slider-1').codaSlider({
dynamicArrows: false,
dynamicTabs: false
});
};
/*-----------------------------------------------------------------------------------*/
/* Form Validation
/*-----------------------------------------------------------------------------------*/
$(document).ready(function(){
$("#contactform").validate();
$("#quoteform").validate();
$("#quickform").validate();
$("#commentsubmit").validate();
});