mirror of
https://github.com/silverstripe/silverstripe-simple
synced 2024-10-22 11:05:50 +02:00
149 lines
4.0 KiB
JavaScript
149 lines
4.0 KiB
JavaScript
jQuery.noConflict();
|
|
|
|
(function($) {
|
|
$(document).ready(function() {
|
|
/* removes text from search form on focus and replaces it on unfocus - if text is entered then it does not get replaced with default on unfocus */
|
|
$('#SearchForm_SearchForm_action_results').val('L');
|
|
var searchField = $('#SearchForm_SearchForm_Search');
|
|
var default_value = searchField.val();
|
|
searchField.focus(function() {
|
|
$(this).addClass('active');
|
|
if(searchField.val() == default_value) {
|
|
searchField.val('');
|
|
}
|
|
});
|
|
searchField.blur(function() {
|
|
if(searchField.val() == '') {
|
|
searchField.val(default_value);
|
|
}
|
|
});
|
|
|
|
if (!$.browser.msie || ($.browser.msie && (parseInt($.browser.version, 10) > 8))) {
|
|
var searchBarButton = $("span.search-dropdown-icon");
|
|
var searchBar = $('div.search-bar');
|
|
var menuButton = $("span.nav-open-button");
|
|
var menu = $('.header .primary ul');
|
|
var mobile = false;
|
|
var changed = false;
|
|
|
|
$('body').append('<div id="media-query-trigger"></div>');
|
|
|
|
function menuWidthCheck() {
|
|
var header_w = $('header .inner').width();
|
|
var elements_w = menu.width() + $('.brand').width();
|
|
|
|
if ((header_w < elements_w) || ($(window).width() <= 768)) {
|
|
$('body').addClass('tablet-nav');
|
|
}
|
|
else {
|
|
$('body').removeClass('tablet-nav');
|
|
}
|
|
|
|
mobile_old = mobile;
|
|
if ($('#media-query-trigger').css('visibility') == 'hidden') {
|
|
mobile = false;
|
|
}
|
|
else {
|
|
mobile = true;
|
|
}
|
|
|
|
if (mobile_old != mobile) {
|
|
changed = true;
|
|
}
|
|
else {
|
|
changed = false;
|
|
}
|
|
}
|
|
|
|
menuWidthCheck();
|
|
|
|
$(window).resize(function() {
|
|
menuWidthCheck();
|
|
|
|
if (!mobile) {
|
|
menu.show();
|
|
searchBar.show();
|
|
}
|
|
else {
|
|
if (changed) {
|
|
menu.hide();
|
|
searchBar.hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
/* toggle navigation and search in mobile view */
|
|
searchBarButton.click(function() {
|
|
menu.slideUp();
|
|
searchBar.slideToggle(200);
|
|
});
|
|
|
|
menuButton.click(function() {
|
|
searchBar.slideUp();
|
|
menu.slideToggle(200);
|
|
});
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------
|
|
// Use of jQuery.browser is frowned upon.
|
|
// More details: http://api.jquery.com/jQuery.browser
|
|
// jQuery.uaMatch maintained for back-compat
|
|
|
|
jQuery.uaMatch = function( ua ) {
|
|
ua = ua.toLowerCase();
|
|
|
|
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
|
|
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
|
|
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
|
|
/(msie) ([\w.]+)/.exec( ua ) ||
|
|
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
|
|
[];
|
|
|
|
return {
|
|
browser: match[ 1 ] || "",
|
|
version: match[ 2 ] || "0"
|
|
};
|
|
};
|
|
|
|
matched = jQuery.uaMatch( navigator.userAgent );
|
|
browser = {};
|
|
|
|
if ( matched.browser ) {
|
|
browser[ matched.browser ] = true;
|
|
browser.version = matched.version;
|
|
}
|
|
|
|
// Chrome is Webkit, but Webkit is also Safari.
|
|
if ( browser.chrome ) {
|
|
browser.webkit = true;
|
|
} else if ( browser.webkit ) {
|
|
browser.safari = true;
|
|
}
|
|
|
|
jQuery.browser = browser;
|
|
|
|
jQuery.sub = function() {
|
|
function jQuerySub( selector, context ) {
|
|
return new jQuerySub.fn.init( selector, context );
|
|
}
|
|
jQuery.extend( true, jQuerySub, this );
|
|
jQuerySub.superclass = this;
|
|
jQuerySub.fn = jQuerySub.prototype = this();
|
|
jQuerySub.fn.constructor = jQuerySub;
|
|
jQuerySub.sub = this.sub;
|
|
jQuerySub.fn.init = function init( selector, context ) {
|
|
if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
|
|
context = jQuerySub( context );
|
|
}
|
|
|
|
return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
|
|
};
|
|
jQuerySub.fn.init.prototype = jQuerySub.fn;
|
|
var rootjQuerySub = jQuerySub(document);
|
|
return jQuerySub;
|
|
};
|
|
// ---------------------------------------------------------
|
|
|
|
}(jQuery));
|