function set_i( id, i, v, noquote, addslashes) { if (id) {
	var q = noquote?'':'"';
	if (addslashes) {
		v = v.replace(/"/g,"\\\"");
	}
	eval('document.getElementById("'+id+'").'+i+'='+q+v+q);
} }

function get_i( id, i) {
	return eval('document.getElementById(id).'+i);
}
function call_return( ret) {
	func = arguments[1];
	var s = '';
	for ( var i=2; i<arguments.length; i++) {
		s += ',"'+arguments[i]+'"';
	}
	eval(func+'('+s.slice(1)+')');
	return ret;
}


// base64 js decoding routine FOR WINDOWS-1251
// may, 2005 // by morgan
var base64_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var base64_keys = [];
for ( var i=0; i<=64; i++) {
	base64_keys[base64_chars.charAt(i)] = i;
}

byte_2_char = new Array();
for (var i=0; i<128; i++) {
	byte_2_char[i] = String.fromCharCode(i);
}

over_ascii_win1251 = '€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ\xa0¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
for ( i=128; i<256; i++) {
	byte_2_char[i] = over_ascii_win1251.charAt(i-128);
}

function base64_decode( s) {
	if ((s.length&3)||(!s.match(/^[a-z0-9+\/]+={0,2}$/i))) {
		return ''; // invalid input
	}

	var i = 0, rz = '', n = s.length;
	while (i < n) {
		k =
			base64_keys[s.charAt(i++)]<<18|
			base64_keys[s.charAt(i++)]<<12|
			base64_keys[s.charAt(i++)]<<6|
			base64_keys[s.charAt(i++)];

		rz += byte_2_char[k>>16]+byte_2_char[(k>>8)&0xff]+byte_2_char[k&0xff];
	}

	if ((i = s.indexOf('=')) != -1) {
		rz = rz.substr(0,rz.length-(n-i));
	}

	return rz;
}
