261 lines
6.4 KiB
JavaScript
261 lines
6.4 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;
|
||
|
};
|
||
|
// ---------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
var cols = 5
|
||
|
var rows = 5;
|
||
|
var cells = rows * cols;
|
||
|
|
||
|
// the game
|
||
|
var fields = document.getElementsByClassName('card');
|
||
|
|
||
|
for (i=0;i<fields.length;i++)
|
||
|
{
|
||
|
fields[i].onclick = function click(e) {
|
||
|
// default states
|
||
|
checked = document.getElementsByClassName('checked');
|
||
|
for (list=0;list<checked.length;list++)
|
||
|
{
|
||
|
checked[list].classList.add('bg-primary');
|
||
|
checked[list].classList.remove('bg-success');
|
||
|
}
|
||
|
|
||
|
// change state
|
||
|
if (this.classList.contains("unchecked"))
|
||
|
{
|
||
|
this.classList.remove("unchecked");
|
||
|
this.classList.add("checked");
|
||
|
this.classList.add("bg-primary");
|
||
|
}
|
||
|
else if (this.classList.contains("checked"))
|
||
|
{
|
||
|
this.classList.remove("checked");
|
||
|
this.classList.remove("bg-primary");
|
||
|
this.classList.remove("bg-success");
|
||
|
this.classList.add("unchecked");
|
||
|
}
|
||
|
var winner_row = check_rows();
|
||
|
var winner_col = check_cols();
|
||
|
if (typeof winner_row !== 'undefined')
|
||
|
{
|
||
|
winner_row.forEach(function(elm) {
|
||
|
var winner = document.getElementById('field'+elm);
|
||
|
winner.classList.remove("bg-primary");
|
||
|
winner.classList.add('bg-success');
|
||
|
});
|
||
|
}
|
||
|
if (typeof winner_col !== 'undefined')
|
||
|
{
|
||
|
winner_col.forEach(function(elm) {
|
||
|
var winner = document.getElementById('field'+elm);
|
||
|
winner.classList.remove("bg-primary");
|
||
|
winner.classList.add('bg-success');
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function check_rows()
|
||
|
{
|
||
|
for (r=1;r<=rows;r++)
|
||
|
{
|
||
|
var row_check = true;
|
||
|
var col_end = r*cols;
|
||
|
var col_start = col_end - cols + 1;
|
||
|
var fields_arr = [];
|
||
|
for (c=col_start;c<=col_end;c++)
|
||
|
{
|
||
|
var field = document.getElementById('field'+c);
|
||
|
if (!field.classList.contains('checked') && !field.classList.contains('joker'))
|
||
|
{
|
||
|
row_check = false;
|
||
|
}
|
||
|
fields_arr.push(c);
|
||
|
}
|
||
|
if (row_check)
|
||
|
{
|
||
|
return fields_arr;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function check_cols()
|
||
|
{
|
||
|
for (c=1;c<=cols;c++)
|
||
|
{
|
||
|
var col_check = true;
|
||
|
var row_start = c;
|
||
|
var row_end = c + (cols - 1) * rows;
|
||
|
var fields_arr = [];
|
||
|
for (r=row_start;r<=row_end;r+=parseInt(cols))
|
||
|
{
|
||
|
var field = document.getElementById('field'+r);
|
||
|
if (!field.classList.contains('checked') && !field.classList.contains('joker'))
|
||
|
{
|
||
|
col_check = false;
|
||
|
}
|
||
|
fields_arr.push(r);
|
||
|
}
|
||
|
if (col_check)
|
||
|
{
|
||
|
return fields_arr;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
}(jQuery));
|