function base64ToAscii(c)
{
	var theChar = 0;

	if (0 <= c && c <= 25)
	{
		theChar = String.fromCharCode(c + 65);
	}
	else if (26 <= c && c <= 51)
	{
		theChar = String.fromCharCode(c - 26 + 97);
	}
	else if (52 <= c && c <= 61)
	{
		theChar = String.fromCharCode(c - 52 + 48);
	}
	else if (c == 62)
	{
		theChar = '+';
	}
	else if( c == 63 )
	{
		theChar = '/';
	}
	else
	{
		theChar = String.fromCharCode(0xFF);
	}

	return theChar;
}


function myUrlEncode(str) {
	var result = "";
	var i = 0;
	var sextet = 0;
	var leftovers = 0;
	var octet = 0;

	for (i=0; i < str.length; i++) {
		octet = str.charCodeAt(i);
		switch( i % 3 )
		{
			case 0:
			{
				sextet = ( octet & 0xFC ) >> 2 ;
				leftovers = octet & 0x03 ;

				break;
			}

			case 1:
			{
				sextet = ( leftovers << 4 ) | ( ( octet & 0xF0 ) >> 4 );
				leftovers = octet & 0x0F ;

				break;
			}

			case 2:
			{
				sextet = ( leftovers << 2 ) | ( ( octet & 0xC0 ) >> 6 ) ;
				leftovers = ( octet & 0x3F ) ;

				break;
			}
		}

		result = result + base64ToAscii(sextet);

		if( (i % 3) == 2 )
		{
			result = result + base64ToAscii(leftovers);
		}

	}

	switch( str.length % 3 )
	{
		case 0:
		{
			break ;
		}
		case 1:
		{
			leftovers =  leftovers << 4 ;
			result = result + base64ToAscii(leftovers);
			result = result + "==";
			break ;
		}
		case 2:
		{
			leftovers = leftovers << 2 ;
			result = result + base64ToAscii(leftovers);
			result = result + "=";
			break ;
		}
	}

	return result;
}


   var encodeList = new Array(5);

   var shiftElem = 73;
   var keyFill = "gHjI";

   encodeList[0] = "71481931456358637567469327336497128493277148193145635863756746932733649712849327";
   encodeList[1] = "67469327336497128493271481931456358637566746932733649712849327148193145635863756";
   encodeList[2] = "58637528493271481931456674693273364971355863752849327148193145667469327336497135";
   encodeList[3] = "31456674714819613586375284932932733649733145667471481961358637528493293273364973";
   encodeList[4] = "67471431456863733649752849329327196135866747143145686373364975284932932719613586";


   function encrypt(_unEncoded){



	   var strEnc = "";
	   var index = 0;
	   var encodeIndex = 0;

	   var yy = newKey();

		for (var i = 0; i < _unEncoded.length; i ++) {
				 index = _unEncoded.charCodeAt(i);
				 encodeIndex = index - parseInt(encodeList[yy].substring(i,i+1));
				 strEnc = strEnc + String.fromCharCode(encodeIndex);
		}
		strEnc = strEnc + String.fromCharCode(yy + shiftElem);
		for (var i = 0; i < 4; i += 1) {
		   index = keyFill.charCodeAt(i);
		   encodeIndex = index - parseInt(encodeList[yy].substring(i,i+1));
		   strEnc = strEnc + String.fromCharCode(encodeIndex);
		}

		return(myUrlEncode(strEnc));
   }

	function newKey() {
			var x = -1;
			var y = 0;
			while (x == -1) {
				y = Math.round(Math.random() * 10);
				if (y < 5) {
					  x = y;
				}
			}
			return x;
	}
