﻿var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function decode64(input) {
	var output = "";
 	var chr1, chr2, chr3;
 	var enc1, enc2, enc3, enc4;
 	var i = 0;
 
 	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
 	var tempString = "";
 	for(var c=0; c<input.length; c++){
 		if(input.charAt(c) >= 'A' && input.charAt(c) <= 'Z')
 			tempString += input.charAt(c);
 		else if(input.charAt(c) >= 'a' && input.charAt(c) <= 'z')
			tempString += input.charAt(c);
		else if(input.charAt(c) >= '0' && input.charAt(c) <= '9')
			tempString += input.charAt(c);
		else if(input.charAt(c) == '+' || input.charAt(c) == '/' || input.charAt(c) == '=')
			tempString += input.charAt(c);				
 	}
 	input = tempString;
 
 	do {
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));
 
		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;
 
		output = output + String.fromCharCode(chr1);
 
		if (enc3 != 64) {
		   	output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64) {
			output = output + String.fromCharCode(chr3);
		}
		
		chr1 = chr2 = chr3 = "";
		enc1 = enc2 = enc3 = enc4 = "";
	} while (i < input.length);
 
 	return output;
}

function GoToB(encodedUrl)
{
    document.location.href = decode64(encodedUrl);
}
function GoToCategoryPageB(baseUrl) {
	GoToCategoryPage(decode64(baseUrl));
}