// Adds a class 'js_on' to the tag if JavaScript is enabled,
// also helps remove flickering...
document.documentElement.className += ' js_on ';
// Quick script to detect some more popular mobile devices
var detectedDeviceAgent = navigator.userAgent.toLowerCase();
var detectedAgentID = detectedDeviceAgent.match(/(android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini)/);
if (detectedAgentID) { document.body.className += ' mobile-detected'; }
// Signup Button
jQuery(document).ready(function($){
$('p.signup-button a')
.css({'backgroundPosition': '0 0'})
.hover(function(){
$(this).stop()
.animate({
'opacity': 0
}, 650);
},
function(){
$(this).stop()
.animate({
'opacity': 1
}, 650);
}
);
});
// Smooth scrolling related scripts
jQuery(document).ready(function($) {
// "Back to Top" smooth scrolling
$('a[href="#top"]').click(function(){
$('html, body').animate({scrollTop:0}, 'slow');
return false; // returning 'false' will prevent hashtag being added to URL
});
// Smooth page scrolling to an anchor on the same page
if (udesign_script_vars.disable_smooth_scrolling_on_pages != 'yes') {
$('a[href*="#"]:not([href="#"], a.vc_pagination-trigger, .wc-tabs li a, .vc_tta-tab a, .vc_tta-panel-title a, a.vc-carousel-control, a.vc_carousel-control, .wpb_tabs_nav a, a.acomment-reply.bp-primary-action)').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
// determine if the scroll-to target position should be offset (ex. if "Stay-on-Top" menu, "Admin Bar", etc.)
var offsetElement = 0;
if ($('body').hasClass('u-design-fixed-menu-on')) { offsetElement = 40; }
if ($('body').hasClass('admin-bar')) { offsetElement += 32; }
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top - offsetElement
}, 1000);
// if anchor is pointing to any "Tabs" then keep the hash "tab-..." else remove the hash
if ( this.hash.slice(1,5) === "tab-" ) {
return true; // add the hashtag to URL
} else {
return false; // remove hashtag from URL
}
}
}
});
}
});
// Menu Related Scripts
jQuery(document).ready(function($){
var showAutoArrows = ( $('body').hasClass('u-design-menu-auto-arrows-on') ) ? 1 : 0;
$("#navigation-menu ul.sf-menu").supersubs({
minWidth: 12, // minimum width of sub-menus in em units
maxWidth: 15, // maximum width of sub-menus in em units
extraWidth: 1 // extra width can ensure lines don't sometimes turn over
// due to slight rounding differences and font-family
}).superfish({
hoverClass: 'sfHover', // the class applied to hovered list items
delay: 700, // the delay in milliseconds that the mouse can remain outside a submenu without it closing
animation: {opacity:'show',height:'show'}, // fade-in and slide-down animation
speed: 'normal',
cssArrows: showAutoArrows
});
// Fixed Menu
var allowFixedMenuOnMobile = true;
if ($("body").hasClass( "mobile-detected" ) && udesign_script_vars.remove_fixed_menu_on_mobile == 'yes') {
allowFixedMenuOnMobile = false;
}
if ($('body').hasClass('u-design-fixed-menu-on') && allowFixedMenuOnMobile) {
var distanceToMainMenu = $('#top-elements').height();
var secondaryNavBarHeight = $("#secondary-navigation-bar-wrapper").height();
$(window).scroll(function() {
if ($(this).scrollTop() > (distanceToMainMenu + secondaryNavBarHeight) ) {
$('#sticky-menu-alias').css({
'display':'block',
'height': distanceToMainMenu + $('#main-menu').height() + secondaryNavBarHeight
});
$('body').addClass('fixed-menu');
} else {
$('body').removeClass('fixed-menu');
$('#sticky-menu-alias').css('display', 'none');
}
});
$('#sticky-menu-logo').insertBefore("#navigation-menu .sf-menu");
}
});
/**
* CoolInput Plugin
*
* @version 1.5 (10/09/2009)
* @requires jQuery v1.2.6+
* @author Alex Weber
* @author Evan Winslow (v1.5)
* @copyright Copyright (c) 2008-2009, Alex Weber
* @see http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
*
* Distributed under the terms of the GNU General Public License
* http://www.gnu.org/licenses/gpl-3.0.html
*/
jQuery(document).ready(function($){
$.fn.coolinput=function(b){
var c={
hint:null,
source:"value",
blurClass:"blur",
iconClass:false,
clearOnSubmit:true,
clearOnFocus:true,
persistent:true
};if(b&&typeof b=="object")
$.extend(c,b);else
c.hint=b;return this.each(function(){
var d=$(this);var e=c.hint||d.attr(c.source);var f=c.blurClass;function g(){
if(d.val()=="")
d.val(e).addClass(f)
}
function h(){
if(d.val()==e&&d.hasClass(f))
d.val("").removeClass(f)
}
if(e){
if(c.persistent)
d.blur(g);if(c.clearOnFocus)
d.focus(h);if(c.clearOnSubmit)
d.parents("form:first").submit(h);if(c.iconClass)
d.addClass(c.iconClass);g()
}
})
}
});
jQuery(document).ready(function($){
// first input box is a search box, notice passing of a custom class and an icon to the coolInput function
$('#search_field').coolinput({
blurClass: 'blur'
});
// add placeholder attribute to the default Search widget form
$(".widget_search input#s").attr("placeholder", udesign_script_vars.search_widget_placeholder);
$(".widget_search input#searchsubmit").val(''); // remove default value "Search"
});
// ThumbCaption script
jQuery(document).ready(function($){
$(".portfolio-img-thumb-1-col, .portfolio-img-thumb-2-col, .portfolio-img-thumb-3-col, .portfolio-img-thumb-4-col").hover(function(){
var info=$(this).find(".hover-opacity");
info.stop().animate({opacity:0.4},600);
},
function(){
var info=$(this).find(".hover-opacity");
info.stop().animate({opacity:1},800);
});
$(".post-image").hover(function(){
var info=$(this).find(".hover-opacity");
info.stop().animate({opacity:0.6},400);
},
function(){
var info=$(this).find(".hover-opacity");
info.stop().animate({opacity:1},600);
});
});
// jQuery Validate
jQuery(document).ready(function($){
if( $('body').hasClass('page-template-page-Contact-php') ) {
// load js translated strings only when Contact page template is loaded
$("#contactForm").validate({
rules: {
contact_name: {
required: true,
minlength: 2
},
contact_email: {
required: true,
email: true
},
contact_message: $('input#rules_contact_message').val()
},
messages: {
contact_name: {
required: $('input#contact_name_required').val(),
minlength: $('input#contact_name_min_length').val()
},
contact_email: $('input#messages_contact_email').val(),
contact_message: $('input#messages_contact_message').val()
}
});
// phone number + extension format validator
$("#contact_phone_NA_format").mask("(999) 999-9999");
$("#contact_ext_NA_format").mask("? 99999");
}
});
// Content Toggle
jQuery(function($){
// Initial state of toggle (hide)
$(".slide_toggle_content").hide();
// Process Toggle click (http://api.jquery.com/toggle/)
$("h4.slide_toggle").toggle(function(){
$(this).addClass("clicked");
}, function () {
$(this).removeClass("clicked");
});
// Toggle animation (http://api.jquery.com/slideToggle/)
$("h4.slide_toggle").click(function(){
$(this).next(".slide_toggle_content").slideToggle();
});
});
// Content Accordion
jQuery(document).ready(function($){
var $accordionHeader = $('.accordion-toggle'),
$accordionHeaderOpenDefault = $('.accordion-toggle:first'),
$accordionContent = $('.accordion-container');
$accordionContent.hide();
$accordionHeaderOpenDefault.addClass('active').next().show();
$accordionHeader.click(function(){
var $this = $(this);
if( $this.next().is(':hidden') ) {
$accordionHeader.removeClass('active').next().slideUp();
$this.toggleClass('active').next().slideDown();
}
return false; // Prevent the browser jump to the link anchor
});
});
//Page Peel
jQuery(document).ready(function($){
$("#page-peel").hover(function() {
$("#page-peel img, .msg_block").stop()
.animate({width: '307px', height: '319px'}, 500);
}, function() {
$("#page-peel img").stop()
.animate({width: '50px', height: '52px'}, 220);
$(".msg_block").stop()
.animate({width: '50px', height: '50px'}, 200);
});
});
// remove the title attributes from the main menu and Subpages Widget
jQuery(document).ready(function($) {
// remove 'title' attribute from menu items
$("#navigation-menu a, .widget_subpages a").removeAttr("title");
// Add the 'default' cursor when hover to menu link that have no links
$('#navigation-menu a').each(function() {
if ( !$(this).attr("href") ) {
$(this).addClass("default-cursor");
}
});
});
// Tabs
jQuery(document).ready(function($){
$('.tabs-wrapper .tabs a').click(function(){
// Switch the tabs
switch_tabs($(this));
// Add URL hash to clicked tab without page jump
if(history.pushState) {
history.pushState(null, null, '#'+$(this).attr('id'));
} else { // fall back for older browsers
window.location.hash = "tabs";
}
});
switch_tabs($('.defaulttab'));
function switch_tabs(obj) {
$('.tabs-wrapper .tab-content').hide();
$('.tabs-wrapper .tabs a').removeClass("selected");
var id = obj.attr("id");
$('#'+id+'-content').show();
obj.addClass("selected");
}
// The following allows to link with hashtag to a specific tab when the hashtag has been changed
$(window).bind( 'hashchange', function(e) {
// Grabs the hash tag from the url
var hash = encodeURI(window.location.hash.substring(1));
// Checks whether a hash tag is set and if it matches any of the tab id's
if ( hash != "" && $('.tabs-wrapper .tabs a[id$="'+hash+'"]' ).attr('id') ) {
// Removes all 'selected' classes from tabs
$('.tabs-wrapper .tabs a').each(function() {
$(this).removeClass('selected');
});
// This will add the 'selected' class to the matched tab
var link = "";
$('.tabs-wrapper .tabs a').each(function() {
link = $(this).attr('id');
if (link == hash) {
$(this).addClass('selected');
}
});
// Take care of the content part of each tab accordingly
$('.tabs-wrapper .tab-content').each(function() {
link = $(this).attr('id');
if (link == hash+'-content') {
$(this).css({
"display":"block"
});
} else {
$(this).css({
"display":"none"
});
}
});
}
});
$(window).trigger( 'hashchange' );
});
// Takes care of multiple WP galleries with prettyPhoto in a single page/post
jQuery(document).ready(function($) {
$('.gallery').each(function(g) {
$(".gallery-item a[rel*='wp-prettyPhoto[gallery]']", this).each(function() {
$(this).attr('rel', function() {
return this.rel.replace('wp-prettyPhoto[gallery]', 'wp-prettyPhoto[gallery-' + g + ']');
});
});
});
});