{

	// This base64 encodes str. RFC-2045

	function encodeBase64(str)

	{

		var lut = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";



		var chunk = 0;



		var result = "";



		for( var i = 0; i < str.length; i += 3) {

			chunk = str.charCodeAt(i) & 0xFF;

			chunk = chunk << 8;



			// asking for a char out of range returns ""

			chunk |= str.charCodeAt(i+1) & 0xFF;

			chunk = chunk << 8;



			chunk |= str.charCodeAt(i+2) & 0xFF;



			// these are the number of gaps until we hit %3

			var partialEnd = 3 - (str.length - i) ;



			var num6bits = 4;

			// 

			if (partialEnd == 2) { // one character encoded

				num6bits = 2;

			} else if (partialEnd == 1) { // two encoded

				num6bits = 3;

			}



			for( var j = 0; j < num6bits; j++){

				result += lut.charAt((chunk & 0xFC0000) >> 18); // six bits	

				chunk = chunk << 6; 

			}	



			// fill with = chars

			if (partialEnd < 3) {

				for( var j = 0; j < partialEnd; j++){

					result += "=";

				}

			}

		}



		return result;

	}





	// This script sets email settings.

	// It can be run all by itself, but it is also called 

	// within "3-Render and Mail.jsx" if the settings aren't yet set.

	// version history

	// 2 - 6/24/03 -- add support for authorization



	function GetStringDefaultNull(key)

	{

		if(app.settings.haveSetting("Email Settings", key)) {

			return app.settings.getSetting("Email Settings", key);

		} else {

			return "";

		}

	}



	var serverValue = prompt("Enter smtp server address:", GetStringDefaultNull("Mail Server"));

	var fromValue = prompt("Enter reply-to email address:", GetStringDefaultNull("Reply-to Address")); 

	

	var requiresAuth = confirm("Does your smtp server require you to log in?");

	var authUser = GetStringDefaultNull("Auth User");

	var authPass = GetStringDefaultNull("Auth Pass");

	

	if (requiresAuth) {

		authUser = prompt("Please enter the login id for the server:", authUser);

		

		if (authUser != null) {

			authPass = prompt("Please enter the password for the server:", "");

		}

		if (authUser != null) {

			app.settings.saveSetting("Email Settings", "Auth User", authUser);

		}

		

		if (authPass != null) {

			app.settings.saveSetting("Email Settings", "Auth Pass", encodeBase64(authPass));

		}

	} else {

		app.settings.saveSetting("Email Settings", "Auth User", "");

		app.settings.saveSetting("Email Settings", "Auth Pass", "");

	}

	

	var toValue   = prompt("Enter recipient's email address", GetStringDefaultNull("Render Report Recipient"));

	if (serverValue != null && serverValue != "") {

		app.settings.saveSetting("Email Settings", "Mail Server", serverValue);

	}

	if (fromValue != null && fromValue != "") {

		app.settings.saveSetting("Email Settings", "Reply-to Address", fromValue);

	}

	if (toValue != null && toValue != "") {

		app.settings.saveSetting("Email Settings", "Render Report Recipient", toValue);

	}

}

	

	

	

	

	

	