var _bin2hex = [
	'0', '1', '2', '3', '4', '5', '6', '7',
	'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
];

var _hex2bin = [
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0,
	 0,10,11,12,13,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0,10,11,12,13,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
];

function bin2hex(str) {
	var len = str.length;
	var rv = '';
	var i = 0;
	var c;
	
	while (len-- > 0) {
		c = str.charCodeAt(i++);

		rv += _bin2hex[(c & 0xf0) >> 4];
		rv += _bin2hex[(c & 0x0f)];
	}

	return rv;
}

function hex2bin(str) {
	var len = str.length;
	var rv = '';
	var i = 0;

	var c1;
	var c2;

	while (len > 1) {
		h1 = str.charAt(i++);
		c1 = h1.charCodeAt(0);
		h2 = str.charAt(i++);
		c2 = h2.charCodeAt(0);
		
		rv += String.fromCharCode((_hex2bin[c1] << 4) + _hex2bin[c2]);
		len -= 2;
	}

	return rv;
}

function base64_decode( data ) {
 
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
 
    do {  /* unpack four hexets into three octets using index points in b64 */
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
 
        bits = h1<<18 | h2<<12 | h3<<6 | h4;
 
        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;
 
        if (h3 == 64)      enc += String.fromCharCode(o1);
        else if (h4 == 64) enc += String.fromCharCode(o1, o2);
        else               enc += String.fromCharCode(o1, o2, o3);
    } while (i < data.length);
 
    return enc;
}

function ord( string ) {
    return (string+'').charCodeAt(0);
}

function chr( ascii ) {
    return String.fromCharCode(ascii);
}

function strlen (string) {
	return string.length;
}

function substr( f_string, f_start, f_length ) {

    f_string += '';
 
    if(f_start < 0) {
        f_start += f_string.length;
    }
 
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
 
    if(f_length < f_start) {
        f_length = f_start;
    }
 
    return f_string.substring(f_start, f_length);
}

function decrypt(string, key) {

  result = '';
  string = base64_decode(hex2bin(string));

  for(i=0; i<strlen(string); i++) {
    char = substr(string, i, 1);
    keychar = substr(key, (i % strlen(key))-1, 1);
    char = chr(ord(char)-ord(keychar));
    result=result+char;
  }

  return result;
}

function page_click(id){
	 
	for(i=1; document.getElementById('page'+i); i++){
		ID = document.getElementById('page'+i);
		if ('page'+i==id){
			document.getElementById('button'+i).style.backgroundColor='#FFFFFF'; 
			ID.style.display = ""; 
			
		} else {
			document.getElementById('button'+i).style.backgroundColor='#EBEBEB';
			ID.style.display = "none"; 
		}	
	}
}