User:An0num0us/common.js

//jQuery Cookie Plugin /*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ (function (factory) {	if (typeof define === 'function' && define.amd) {		// AMD		define(['jquery'], factory);	} else if (typeof exports === 'object') {		// CommonJS		factory(require('jquery'));	} else {		// Browser globals		factory(jQuery);	} }(function ($) {

var pluses = /\+/g;

function encode(s) { return config.raw ? s : encodeURIComponent(s); }

function decode(s) { return config.raw ? s : decodeURIComponent(s); }

function stringifyCookieValue(value) { return encode(config.json ? JSON.stringify(value) : String(value)); }

function parseCookieValue(s) { if (s.indexOf('"') === 0) {			// This is a quoted cookie as according to RFC2068, unescape...			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');		}

try { // Replace server-side written pluses with spaces. // If we can't decode the cookie, ignore it, it's unusable. // If we can't parse the cookie, ignore it, it's unusable. s = decodeURIComponent(s.replace(pluses, ' ')); return config.json ? JSON.parse(s) : s;		} catch(e) {} }

function read(s, converter) { var value = config.raw ? s : parseCookieValue(s); return $.isFunction(converter) ? converter(value) : value; }

var config = $.cookie = function (key, value, options) {

// Write

if (value !== undefined && !$.isFunction(value)) { options = $.extend({}, config.defaults, options);

if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date; t.setTime(+t + days * 864e+5); }

return (document.cookie = [				encode(key), '=', stringifyCookieValue(value),				options.expires ? '; expires=' + options.expires.toUTCString : , // use expires attribute, max-age is not supported by IE				options.path   ? '; path=' + options.path : ,				options.domain  ? '; domain=' + options.domain : ,				options.secure  ? '; secure' : 			].join('')); }

// Read

var result = key ? undefined : {};

// To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. Also prevents odd result when // calling $.cookie. var cookies = document.cookie ? document.cookie.split('; ') : [];

for (var i = 0, l = cookies.length; i < l; i++) { var parts = cookies[i].split('='); var name = decode(parts.shift); var cookie = parts.join('=');

if (key && key === name) { // If second argument (value) is a function it's a converter... result = read(cookie, value); break; }

// Prevent storing a cookie that we couldn't decode. if (!key && (cookie = read(cookie)) !== undefined) { result[name] = cookie; }		}

return result; };

config.defaults = {};

$.removeCookie = function (key, options) { if ($.cookie(key) === undefined) { return false; }

// Must not alter options, thus extending a fresh object... $.cookie(key, '', $.extend({}, options, { expires: -1 })); return !$.cookie(key); };

}));

/*jshint node: true */

'use strict';

module.exports = function (grunt) {

grunt.initConfig({		pkg: grunt.file.readJSON('package.json'),		qunit: {			all: ['test/index.html']		},		jshint: {			files: [				'Gruntfile.js',				'jquery.cookie.js'			],			options: {				jshintrc: '.jshintrc'			}		},		uglify: {			options: {				banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n'			},			build: {				files: {					'build/jquery.cookie-<%= pkg.version %>.min.js': 'jquery.cookie.js'				}			}		},		watch: {			files: [				'jquery.cookie.js',				'test/tests.js'			],			tasks: 'default'		},		compare_size: {			files: [				'build/jquery.cookie-<%= pkg.version %>.min.js',				'jquery.cookie.js'			],			options: {				compress: {					gz: function (fileContents) {						return require('gzip-js').zip(fileContents, {}).length;					}				}			}		},		connect: {			server: {				options: {					base: '.',					directory: 'test',					port: 9999				}			}		},		'saucelabs-qunit': {			all: { options: { urls: ['http://127.0.0.1:9999/test/index.html'], tunnelTimeout: 5, build: process.env.TRAVIS_JOB_ID, concurrency: 3, browsers: [ {							browserName: 'safari', platform: 'OS X 10.8' },						{							browserName: 'firefox', platform: 'Windows 7' },						{							browserName: 'firefox', platform: 'Windows XP' },						{							browserName: 'firefox', platform: 'Linux' },						{							browserName: 'chrome', platform: 'Windows 7' },						{							browserName: 'internet explorer', platform: 'Windows 8', version: '10' },						{							browserName: 'internet explorer', platform: 'Windows 7', version: '9' }					],					testname: 'jquery.cookie qunit tests' }			}		}	});

// Loading dependencies for (var key in grunt.file.readJSON('package.json').devDependencies) { if (key !== 'grunt' && key.indexOf('grunt') === 0) { grunt.loadNpmTasks(key); }	}

grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']); grunt.registerTask('saucelabs', ['connect', 'saucelabs-qunit']); grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']); };