URL shortening

by Shishir Morshed

HTML

<input type="text" id="num62" name="num62" placeholder="base62"/>
<button id ="convertTo10">convertTo10</button>
<br>
<input type="text" id="num10" name="num10" placeholder="base10"/>
<button id ="convertTo62">convertTo62</button>

JavaScript

var digits = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

function getNthValue (base, power){
	(base == null || base == 'undefined')? base = 62 : base = base;
	var result = 1;
	for(var i = 0; i < power; i++ ){
		result *= base; 
	}
	return result;
}


function urlInDecimal (num62){
	var result = 0;
	num62Length = num62.length;

	for(var i = 0; i < num62Length; i++){
		result += digits.indexOf(num62[i]) * getNthValue(62,(num62Length-i-1)); 
	}
	return result;
}

function reverse(s) {
  return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0);
}

function urlInbase62 ( num10){
    var result ='';
    while( num10>62 ){
        result += digits[num10%62];
        num10 = Math.floor(num10/62);
    } 
    if(num10 != 0){
    	result += digits[num10];	
    }
       
    return reverse(result);
}

document.getElementById('convertTo10').addEventListener('click', function(){
	var num10 = urlInDecimal(document.getElementById('num62').value);
	alert(num10)
});
document.getElementById('convertTo62').addEventListener('click', function(){
	var num62 = urlInbase62(document.getElementById('num10').value);
	alert(num62)
});