var isDHTML = 0;
var isLayers = 0;
var isAll = 0;
var isId = 0;

if (document.getElementById) {
  isId = 1;
  isDHTML = 1;
}
else if (document.all) {
  isAll = 1;
  isDHTML = 1;
}
else {
  var browserVersion = parseInt(navigator.appVersion);
  if ((navigator.appName.indexOf('Netscape') != -1) &&
  (browserVersion == 4)) {
    isLayers = 1;
    isDHTML = 1;
  }
}

function getDOM(objectId, withStyle) {
  if (withStyle == 1) {
    if (isId) {
      return (document.getElementById(objectId).style);
    }
    else if (isAll) {
      return (document.all[objectId].style);
    }
    else if (isLayers) {
      return (document.layers[objectId]);
    }
  }
  else {
    if (isId) {
      return (document.getElementById(objectId));
    }
    else if (isAll) {
      return (document.all[objectId]);
    }
    else if (isLayers) {
      return (document.layers[objectId]);
    }
  }
}

function f(n){
    if (n<=1) return 1;
    var ans = 1;
    for ( var i=2; i<=n; i++){
        ans *= i;
    }
    return ans;
}

function nCr(n, r){
    if (n==0 || r==0) return 0;
    return (f(n)/(f(n-r)*f(r)));
}

function calcPerm(selection, output) {
  var totalval = 6;
  var selectionval = parseInt(getDOM(selection).value, 10);
  var chance = Math.round(nCr(selectionval, totalval));
  getDOM(output).innerHTML = formatNumber(chance,0,true,false,true);
}

function round(val, digit) {
  if (isNaN(parseFloat(val))) {
    return 0;
  }
  return val.toFixed(digit);
}

function formatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
{ 
  if (isNaN(parseInt(num))) return "NaN";
	var tmpNumStr = round(num, decimalNum);

	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;
}

function get4dFromBirthDate(year, month, day) {

  var num = new Array();
  num[0] = getSingleDigit(day);
  num[1] = getSingleDigit('' + year + month + day);
  num[2] = getSingleDigit(num[0] + num[1]);
  num[3] = getSingleDigit(num[0] + num[1] + num[2]);
  return '' + num[0] + num[1] + num[2] + num[3];
}

function getSingleDigit(num) {
  var num2 = num;
  var total = 0;
  while (num2 > 0) {
    var m = num2 % 10;
    var d = Math.floor(num2 / 10);
    total += m;
    num2 = d;
  }
  if (total >= 10) {
    return getSingleDigit(total);
  }
  return total;
}


