Difference between revisions of "MediaWiki:Common.js"

From Fall of Eden
Jump to navigation Jump to search
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
+
var cookies;
 +
/**
 +
* Anonymous function that obtains the parameters passed in the url.
 +
* The returned value is stored in the variable QueryString.
 +
* To obtain a parameter "name1", we have to call "QueryString.name1"
 +
*/
 +
var QueryString = function () {
 +
  var query_string = {};
 +
  var query = window.location.search.substring(1);
 +
  var vars = query.split("&");
 +
  for (var i=0;i<vars.length;i++) {
 +
    var pair = vars[i].split("=");
 +
    if (typeof query_string[pair[0]] === "undefined") {
 +
      query_string[pair[0]] = pair[1];
 +
    } else if (typeof query_string[pair[0]] === "string") {
 +
      var arr = [ query_string[pair[0]], pair[1] ];
 +
      query_string[pair[0]] = arr;
 +
    } else {
 +
      query_string[pair[0]].push(pair[1]);
 +
    }
 +
  }
 +
    return query_string;
 +
} ();
 +
 
 +
/**
 +
* Returns the value of the cookie name.
 +
* @param {string} name
 +
* @returns {string}
 +
*/
 +
function readCookie(name,c,C,i){
 +
    if(cookies){ return cookies[name]; }
 +
 
 +
    c = document.cookie.split('; ');
 +
    cookies = {};
 +
 
 +
    for(i=c.length-1; i>=0; i--){
 +
      C = c[i].split('=');
 +
      cookies[C[0]] = C[1];
 +
    }
 +
 
 +
    return cookies[name];
 +
}
 +
 
 +
/**
 +
* Checks if the cookie
 +
* @param {string} url
 +
* @returns {string}
 +
*/
 +
function checkAge(url){
 +
    var laChCookie = readCookie('nameOfCookie');
 +
    if(!laChCookie){
 +
        window.location.href='age.html?url='+encodeURIComponent(url);
 +
    }
 +
    return laChCookie;
 +
}
 +
 
 +
/**
 +
* Sets the cookie cname with value cvallue for expiring in exdays
 +
* and redirects to url.
 +
* @param {string} cname
 +
* @param {string} cvalue
 +
* @param {string} exdays
 +
* @param {string} url
 +
* @returns {}
 +
*/
 +
function setCookie(cname,cvalue,exdays,url){
 +
    var d = new Date();
 +
    d.setTime(d.getTime()+(exdays*24*60*60*1000));
 +
    var expires = "expires="+d.toGMTString();
 +
    /**
 +
    * If cookie goes around subdomains, the next line should be something like this:
 +
    * document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/;domain=mydomain.com.md";
 +
    */
 +
    document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
 +
    if(!url){
 +
        url = "http://wiki.ganked.me";
 +
    }
 +
    window.location.href=decodeURIComponent(url);
 +
}
 +
 
 +
document.onload = checkAge(document.URL);

Revision as of 04:37, 29 November 2014

var cookies;
/**
 * Anonymous function that obtains the parameters passed in the url.
 * The returned value is stored in the variable QueryString.
 * To obtain a parameter "name1", we have to call "QueryString.name1"
 */
var QueryString = function () {
  var query_string = {};
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (typeof query_string[pair[0]] === "undefined") {
      query_string[pair[0]] = pair[1];
    } else if (typeof query_string[pair[0]] === "string") {
      var arr = [ query_string[pair[0]], pair[1] ];
      query_string[pair[0]] = arr;
    } else {
      query_string[pair[0]].push(pair[1]);
    }
  } 
    return query_string;
} ();

/**
 * Returns the value of the cookie name.
 * @param {string} name
 * @returns {string}
 */
function readCookie(name,c,C,i){
    if(cookies){ return cookies[name]; }

    c = document.cookie.split('; ');
    cookies = {};

    for(i=c.length-1; i>=0; i--){
       C = c[i].split('=');
       cookies[C[0]] = C[1];
    }

    return cookies[name];
}

/**
 * Checks if the cookie
 * @param {string} url
 * @returns {string}
 */
function checkAge(url){
    var laChCookie = readCookie('nameOfCookie');
    if(!laChCookie){
        window.location.href='age.html?url='+encodeURIComponent(url);
    }
    return laChCookie;
}

/**
 * Sets the cookie cname with value cvallue for expiring in exdays
 * and redirects to url.
 * @param {string} cname
 * @param {string} cvalue
 * @param {string} exdays
 * @param {string} url
 * @returns {}
 */
function setCookie(cname,cvalue,exdays,url){
    var d = new Date();
    d.setTime(d.getTime()+(exdays*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    /**
     * If cookie goes around subdomains, the next line should be something like this:
     * document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/;domain=mydomain.com.md";
     */
    document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
    if(!url){
        url = "http://wiki.ganked.me";
    }
    window.location.href=decodeURIComponent(url);
}

document.onload = checkAge(document.URL);