// This function calculates the required skill to pass a skill check of [diff] [successRate]% of the time.
function calculateRequiredSkill(diff, successRate) {
	var skill = Math.round(Math.log((Math.exp(0.03*diff)/((1/successRate)-1)))/0.03);
	return skill;
}

//  This function calculates the success rate given an [effectiveSkill] and a [diff].
function calculateSucessRate(diff, effectiveSkill) {
	var success = Math.round(1-1/(1+Math.exp(0.03 *(diff - effectiveSkill))));
	return success;
}

// This function calculates effective skill given a skill of [skill] and a modifier of mod (as a percentage (0 - 1).
// Mainly used for calculating attack and defense mods.
function calculateBuffedSkill(skill, mod) {
	return Math.round(skill / (1 + mod));
}

// Sorts the mobs[] array by critter name
function sortIt(sortBy, sortType) {
	/* here we want to sort the buggers, let's use a selection sort */
	var i, j, m;
	var t0, t1;
	
	var sortColumn = (sortBy == 'name') ? 1 : 0;
	var ascending = (sortType == 'ascending');
	
	for(i = 0; i < mobs.length - 1; i++) {
		m = i;
		for(j = i + 1; j < mobs.length; j++) {
			if(ascending) {
				if(mobs[j][sortColumn] < mobs[m][sortColumn]) { // sort on the name, use if(mobs[j][0] < mobs[m][0]) to sort by attack skill
					m = j;
				}
			}
			else {
				if(mobs[j][sortColumn] > mobs[m][sortColumn]) { // sort on the name, use if(mobs[j][0] < mobs[m][0]) to sort by attack skill
					m = j;
				}
			}
		}
		
		t0 = mobs[m][0];
		t1 = mobs[m][1];
		
		mobs[m][0] = mobs[i][0];
		mobs[m][1] = mobs[i][1];
		
		mobs[i][0] = t0;
		mobs[i][1] = t1;
	}
}



function getParameter(name) {
	var earl = document.location.toString();
	var qsStart = earl.indexOf("?");

	if(qsStart != -1) {
		var qs = earl.substr(qsStart + 1);
		if(qs.length/* > 4*/) {
			var qsArray = qs.split('&');
			for(var i = 0; i < qsArray.length; i++) {
				var paramArray = qsArray[i].split('=');
				if(paramArray.length > 1) {
					if(name == paramArray[0]) {
						// String.replace doesn't seem to be working in IE6...
						var newParamArr = paramArray[1].split('+');
						var newParam = "";
						for(var j = 0; j < newParamArr.length; j++) {
							if(j != 0) newParam += " ";
							newParam += newParamArr[j];
						}
						return unescape(newParam);
					}
				}
			}
		}
	}
	return null;
}
