/* generated javascript */
var skin = 'monobook';
var stylepath = '/skins';

/* MediaWiki:Common.js */
/* Any JavaScript here will be loaded for all users on every page load. */

/* Dice Roller */
window.onload = init;
function init() {
	array = document.getElementsByTagName('span');
	for(var i=0,len=array.length; i<len; i++) {
		if (array[i].className.indexOf('dice_') > -1) {
			array[i].onclick = rollhandler;
		}
	}
}

function rollhandler() {
	var res = /dice_([^_]*)_([0-9a+-x]*)/.exec(this.className);
	if (res) {
		rollValue(res[1],res[2]);
	} else {
		alert('Res failed');
	}
}

function rollDie(size) {
  var result = size * Math.random()
  if (result == 0) {
      result = 0.5
  }
  result = Math.ceil(result)
  return result }

function rollDice(number, size) {
  var dice = ''
  var result = ''
  var roll = 0
  var total = 0
  for (count = 0; count < number; count++) {
    roll = rollDie(size)
    total += roll
    if (dice == '') {
      dice = roll
    } else {
      dice = dice + ', ' + roll
    }
  }
  result = total + ':' + dice
  return result;
}

function getValue(data) {
  var element_array = data.split('d')
  var result = ''
  if (element_array[1] > 0) {
    result = rollDice(element_array[0], element_array[1])
  } else {
	result = element_array[0] + ':';
  }
  return result;
}

function addcommas (sValue) {
	var X= "", S = String(sValue), L;
	while (S != "") {
		L = S.length-3
		X = S.substr(L, 3) + (X > "" ? "," + X : "");
		S = S.substr(0, L);
	}
	return X;
}

function rollValue(label, data) {
  var original_data = data;
  data = data.replace(/ /g, '+')
  data = data.replace(/\-/g, '+-')
  data = data.replace(/x/g, '+x')
  data = data.replace(/\++/g, '+')
  var element_array = data.split('+')
  var dice = ''
  var result = ''
  var total = 0
  var value = 0
  var array_size = element_array.length
  for (loop = 0; loop < array_size; loop++) {
    value = getValue(element_array[loop])
    var result_array = value.split(':')
    if (result_array[0].charAt(0) == "x") {
    	var multiplier = result_array[0].substring(1);
    	total = total * multiplier;
    } else {
    	total = total + parseInt(result_array[0]);
   	}
    if (result_array[1] != '') {
      if (dice == '') {
        dice = result_array[1];
      } else {
        dice = dice + ' : ' + result_array[1];
      }
    }
  }
  if (total < 1) {
    total = 1;
  }
  if (total.length >= 3) {
	  total = addcommas(total);
  }
  data = original_data;
  if (dice != '') {
    alert(label + ' rolled: ' + total + "\n(" + data + ")\n(Rolls: " + dice + ')')
  } else {
    alert(label + ' rolled: ' + total + "\n(" + data + ')')
  }
  return false;
}

/* MediaWiki:Monobook.js (deprecated; migrate to Common.js!) */
/* tooltips and access keys */
var ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-project'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');