Курсовая работа: Разработка сайта по составлению комплектации компьютера

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

// Thanks Nate Wright for the fix. @https://github.com/NateWr

if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&

this.album[this.currentImageIndex].title !== '') {

var $caption = this.$lightbox.find('.lb-caption');

if (this.options.sanitizeTitle) {

$caption.text(this.album[this.currentImageIndex].title);

} else {

$caption.html(this.album[this.currentImageIndex].title);

}

$caption.fadeIn('fast')

.find('a').on('click', function(event) {

if ($(this).attr('target') !== undefined) {

window.open($(this).attr('href'), $(this).attr('target'));

} else {

location.href = $(this).attr('href');

}

});

}

if (this.album.length > 1 && this.options.showImageNumberLabel) {

var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length);

this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');

} else {

this.$lightbox.find('.lb-number').hide();

}

this.$outerContainer.removeClass('animating');

this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() {

return self.sizeOverlay();

});

};

// Preload previous and next images in set.

Lightbox.prototype.preloadNeighboringImages = function() {

if (this.album.length > this.currentImageIndex + 1) {

var preloadNext = new Image();

preloadNext.src = this.album[this.currentImageIndex + 1].link;

}

if (this.currentImageIndex > 0) {

var preloadPrev = new Image();

preloadPrev.src = this.album[this.currentImageIndex - 1].link;

}

};

Lightbox.prototype.enableKeyboardNav = function() {

$(document).on('keyup.keyboard', $.proxy(this.keyboardAction, this));

};

Lightbox.prototype.disableKeyboardNav = function() {

$(document).off('.keyboard');

};

Lightbox.prototype.keyboardAction = function(event) {

var KEYCODE_ESC = 27;

var KEYCODE_LEFTARROW = 37;

var KEYCODE_RIGHTARROW = 39;

var keycode = event.keyCode;

var key = String.fromCharCode(keycode).toLowerCase();

if (keycode === KEYCODE_ESC || key.match(/x|o|c/)) {

this.end();

} else if (key === 'p' || keycode === KEYCODE_LEFTARROW) {

if (this.currentImageIndex !== 0) {

this.changeImage(this.currentImageIndex - 1);

} else if (this.options.wrapAround && this.album.length > 1) {

this.changeImage(this.album.length - 1);

}

} else if (key === 'n' || keycode === KEYCODE_RIGHTARROW) {

if (this.currentImageIndex !== this.album.length - 1) {

this.changeImage(this.currentImageIndex + 1);

} else if (this.options.wrapAround && this.album.length > 1) {

this.changeImage(0);

}

}

};

// Closing time. :-(

Lightbox.prototype.end = function() {

this.disableKeyboardNav();

$(window).off('resize', this.sizeOverlay);

this.$lightbox.fadeOut(this.options.fadeDuration);

this.$overlay.fadeOut(this.options.fadeDuration);

$('select, object, embed').css({

visibility: 'visible'

});

if (this.options.disableScrolling) {

$('body').removeClass('lb-disable-scrolling');

}

};

return new Lightbox();

}));

/*

* MIXITUP - A CSS3 and JQuery Filter & Sort Plugin

* Version: 1.5.5

* License: Creative Commons Attribution-NoDerivs 3.0 Unported - CC BY-ND 3.0

* http://creativecommons.org/licenses/by-nd/3.0/

* This software may be used freely on commercial and non-commercial projects with attribution to the author/copyright holder.

* Author: Patrick Kunka

* Copyright 2012-2013 Patrick Kunka, Barrel LLC, All Rights Reserved

*

* http://mixitup.io

*/

(function($){

// DECLARE METHODS

var methods = {

// "INIT" METHOD

init: function(settings){

return this.each(function(){

var browser = window.navigator.appVersion.match(/Chrome\/(\d+)\./),

ver = browser ? parseInt(browser[1], 10) : false,

chromeFix = function(id){

var grid = document.getElementById(id),

parent = grid.parentElement,

placeholder = document.createElement('div'),

frag = document.createDocumentFragment();

parent.insertBefore(placeholder, grid);

frag.appendChild(grid);

parent.replaceChild(grid, placeholder);

frag = null;

placeholder = null;

};

if(ver && ver == 31 || ver == 32){

chromeFix(this.id);

};

// BUILD CONFIG OBJECT

var config = {

// PUBLIC PROPERTIES

targetSelector : '.mix',

filterSelector : '.filter',

sortSelector : '.sort',

buttonEvent: 'click',

effects : ['fade', 'scale'],

listEffects : null,

easing : 'smooth',

layoutMode: 'grid',

targetDisplayGrid : 'inline-block',

targetDisplayList: 'block',

listClass : '',

gridClass : '',

transitionSpeed : 600,

showOnLoad : 'all',

sortOnLoad : false,

multiFilter : false,

filterLogic : 'or',

resizeContainer : true,

minHeight : 0,

failClass : 'fail',

perspectiveDistance : '3000',

perspectiveOrigin : '50% 50%',

animateGridList : true,

onMixLoad: null,

onMixStart : null,

onMixEnd : null,

// MISC

container : null,

origOrder : [],

startOrder : [],

newOrder : [],

origSort: [],

checkSort: [],

filter : '',

mixing : false,

origDisplay : '',

origLayout: '',

origHeight : 0,

newHeight : 0,

isTouch : false,

resetDelay : 0,

failsafe : null,

// CSS

prefix : '',

easingFallback : 'ease-in-out',

transition : {},

perspective : {},

clean : {},

fade : '1',

scale : '',

rotateX : '',

rotateY : '',

rotateZ : '',

blur : '',

grayscale : ''

};

if(settings){

$.extend(config, settings);

};

// ADD CONFIG OBJECT TO CONTAINER OBJECT PER INSTANTIATION

this.config = config;

// DETECT TOUCH

$.support.touch = 'ontouchend' in document;

if ($.support.touch) {

config.isTouch = true;

config.resetDelay = 350;

};

// LOCALIZE CONTAINER

config.container = $(this);

var $cont = config.container;

// GET VENDOR PREFIX

config.prefix = prefix($cont[0]);

config.prefix = config.prefix ? '-'+config.prefix.toLowerCase()+'-' : '';

// CACHE 'DEFAULT' SORTING ORDER

$cont.find(config.targetSelector).each(function(){

config.origOrder.push($(this));

});

// PERFORM SORT ON LOAD

if(config.sortOnLoad){

var sortby, order;

if($.isArray(config.sortOnLoad)){

sortby = config.sortOnLoad[0], order = config.sortOnLoad[1];

$(config.sortSelector+'[data-sort='+config.sortOnLoad[0]+'][data-order='+config.sortOnLoad[1]+']').addClass('active');

} else {

$(config.sortSelector+'[data-sort='+config.sortOnLoad+']').addClass('active');

sortby = config.sortOnLoad, config.sortOnLoad = 'desc';

};

sort(sortby, order, $cont, config);

};

// BUILD TRANSITION AND PERSPECTIVE OBJECTS

for(var i = 0; i<2; i++){

var a = i==0 ? a = config.prefix : '';

config.transition[a+'transition'] = 'all '+config.transitionSpeed+'ms ease-in-out';

config.perspective[a+'perspective'] = config.perspectiveDistance+'px';

config.perspective[a+'perspective-origin'] = config.perspectiveOrigin;

};

// BUILD TRANSITION CLEANER

for(var i = 0; i<2; i++){

var a = i==0 ? a = config.prefix : '';

config.clean[a+'transition'] = 'none';

};

// CHOOSE GRID OR LIST

if(config.layoutMode == 'list'){

$cont.addClass(config.listClass);

config.origDisplay = config.targetDisplayList;

} else {

$cont.addClass(config.gridClass);

config.origDisplay = config.targetDisplayGrid;

};

config.origLayout = config.layoutMode;

// PARSE 'SHOWONLOAD'

var showOnLoadArray = config.showOnLoad.split(' ');

// GIVE ACTIVE FILTER ACTIVE CLASS

$.each(showOnLoadArray, function(){

$(config.filterSelector+'[data-filter="'+this+'"]').addClass('active');

});

// RENAME "ALL" CATEGORY TO "MIX_ALL"

$cont.find(config.targetSelector).addClass('mix_all');

if(showOnLoadArray[0] == 'all'){

showOnLoadArray[0] = 'mix_all',

config.showOnLoad = 'mix_all';

};

// FADE IN 'SHOWONLOAD'

var $showOnLoad = $();

$.each(showOnLoadArray, function(){

$showOnLoad = $showOnLoad.add($('.'+this))

});

$showOnLoad.each(function(){

var $t = $(this);

if(config.layoutMode == 'list'){

$t.css('display',config.targetDisplayList);

} else {

$t.css('display',config.targetDisplayGrid);

};

$t.css(config.transition);

});

// WRAP FADE-IN TO PREVENT RACE CONDITION

var delay = setTimeout(function(){

config.mixing = true;

$showOnLoad.css('opacity','1');

// CLEAN UP

var reset = setTimeout(function(){

if(config.layoutMode == 'list'){

$showOnLoad.removeStyle(config.prefix+'transition, transition').css({

display: config.targetDisplayList,

opacity: 1

});

} else {

$showOnLoad.removeStyle(config.prefix+'transition, transition').css({

display: config.targetDisplayGrid,

opacity: 1

});

};

// FIRE "ONMIXLOAD" CALLBACK

config.mixing = false;

if(typeof config.onMixLoad == 'function') {

var output = config.onMixLoad.call(this, config);

// UPDATE CONFIG IF DATA RETURNED

config = output ? output : config;

};

},config.transitionSpeed);

},10);

// PRESET ACTIVE FILTER

config.filter = config.showOnLoad;

// BIND SORT CLICK HANDLERS

$(config.sortSelector).bind(config.buttonEvent,function(){

if(!config.mixing){

// PARSE SORT ARGUMENTS FROM BUTTON CLASSES

var $t = $(this),

sortby = $t.attr('data-sort'),

order = $t.attr('data-order');

if(!$t.hasClass('active')){

$(config.sortSelector).removeClass('active');

$t.addClass('active');

} else {

if(sortby != 'random')return false;

};

$cont.find(config.targetSelector).each(function(){

config.startOrder.push($(this));

});

goMix(config.filter,sortby,order,$cont, config);

};

});

// BIND FILTER CLICK HANDLERS

$(config.filterSelector).bind(config.buttonEvent,function(){

if(!config.mixing){

var $t = $(this);

// PARSE FILTER ARGUMENTS FROM BUTTON CLASSES

if(config.multiFilter == false){

// SINGLE ACTIVE BUTTON

$(config.filterSelector).removeClass('active');

$t.addClass('active');

config.filter = $t.attr('data-filter');

$(config.filterSelector+'[data-filter="'+config.filter+'"]').addClass('active');

} else {

// MULTIPLE ACTIVE BUTTONS

var thisFilter = $t.attr('data-filter');

if($t.hasClass('active')){

$t.removeClass('active');

// REMOVE FILTER FROM SPACE-SEPERATED STRING

var re = new RegExp('(\\s|^)'+thisFilter);

config.filter = config.filter.replace(re,'');

} else {

// ADD FILTER TO SPACE-SEPERATED STRING

$t.addClass('active');

config.filter = config.filter+' '+thisFilter;

};

};

// GO MIX

goMix(config.filter, null, null, $cont, config);

};

});

});

},

// "TOGRID" METHOD

toGrid: function(){

return this.each(function(){

var config = this.config;

if(config.layoutMode != 'grid'){

config.layoutMode = 'grid';

goMix(config.filter, null, null, $(this), config);

};

});

},

// "TOLIST" METHOD

toList: function(){

return this.each(function(){

var config = this.config;

if(config.layoutMode != 'list'){

config.layoutMode = 'list';

goMix(config.filter, null, null, $(this), config);

};

});

},

// "FILTER" METHOD

filter: function(arg){

return this.each(function(){

var config = this.config;

if(!config.mixing){

$(config.filterSelector).removeClass('active');

$(config.filterSelector+'[data-filter="'+arg+'"]').addClass('active');

goMix(arg, null, null, $(this), config);

};

});

},

// "SORT" METHOD

sort: function(args){

return this.each(function(){

var config = this.config,

$t = $(this);

if(!config.mixing){

$(config.sortSelector).removeClass('active');

if($.isArray(args)){

var sortby = args[0], order = args[1];

$(config.sortSelector+'[data-sort="'+args[0]+'"][data-order="'+args[1]+'"]').addClass('active');

} else {

$(config.sortSelector+'[data-sort="'+args+'"]').addClass('active');

var sortby = args, order = 'desc';

};

$t.find(config.targetSelector).each(function(){

config.startOrder.push($(this));

});

goMix(config.filter,sortby,order, $t, config);

};

});

},

// "MULTIMIX" METHOD

multimix: function(args){

return this.each(function(){

var config = this.config,

$t = $(this);

multiOut = {

filter: config.filter,

sort: null,

order: 'desc',

layoutMode: config.layoutMode

};

$.extend(multiOut, args);

if(!config.mixing){

$(config.filterSelector).add(config.sortSelector).removeClass('active');

$(config.filterSelector+'[data-filter="'+multiOut.filter+'"]').addClass('active');

if(typeof multiOut.sort !== 'undefined'){

$(config.sortSelector+'[data-sort="'+multiOut.sort+'"][data-order="'+multiOut.order+'"]').addClass('active');

$t.find(config.targetSelector).each(function(){

config.startOrder.push($(this));