function bg_determine_page_name(source_control, destination_control) {
	var result = bg_page_name_from_title(source_control.value);

	if (result != null) {
		destination_control.value = result;
	}
}

function bg_page_name_from_title(current_title) {
	var return_value = '';
	
	if (current_title != null && current_title.length > 0) {
		for (i = 0; i < current_title.length; i++)
		{
			var current_char = current_title.charCodeAt(i);

			if (current_char == 32 || current_char == 45 || current_char == 95 || current_char == 46) {	// (space), -, _, .
				if (return_value.length > 0 && return_value.charCodeAt(return_value.length - 1) != 45) {
					return_value += "-";
				}
			} else if ((current_char >= 48 && current_char <= 57)	// 0-9
					|| (current_char >= 65 && current_char <= 90)	// A-Z
					|| (current_char >= 97 && current_char <= 122)) {	// a-z

				return_value += current_title.substring(i, i + 1).toLowerCase();
			} else if ((current_char >= 192 && current_char <= 197)
					|| (current_char >= 224 && current_char <= 229)
					|| (current_char >= 256 && current_char <= 261)) { // a
					
				return_value += "a";
			} else if ((current_char == 199)
					|| (current_char == 231)
					|| (current_char >= 262 && current_char <= 269)) { // c
				
				return_value += "c";
			} else if ((current_char == 208)
					|| (current_char == 240)
					|| (current_char >= 270 && current_char <= 273)) { // d
				return_value += "d";
			} else if ((current_char >= 200 && current_char <= 203)
					|| (current_char >= 232 && current_char <= 235)
					|| (current_char >= 274 && current_char <= 283)) { // e
				
				return_value += "e";
			} else if (current_char >= 284 && current_char <= 291) { // g
				return_value += "g";
			} else if (current_char >= 292 && current_char <= 295) { // h
				return_value += "h";
			} else if ((current_char >= 204 && current_char <= 207)
					|| (current_char >= 236 && current_char <= 239)
					|| (current_char >= 296 && current_char <= 305)) { // i
				
				return_value += "i";
			} else if (current_char >= 308 && current_char <= 309) { // j
				return_value += "j";
			} else if (current_char >= 310 && current_char <= 312) { // k
				return_value += "k";
			} else if (current_char >= 313 && current_char <= 322) { // l
				return_value += "l";
			} else if ((current_char == 209)
					|| (current_char == 241)
					|| (current_char >= 323 && current_char <= 331)) { // n
				
				return_value += "n";
			} else if ((current_char >= 210 && current_char <= 216)
					|| (current_char >= 242 && current_char <= 248)
					|| (current_char >= 332 && current_char <= 337)) { // o
				
				return_value += "o";
			} else if (current_char >= 340 && current_char <= 345) { // r
				return_value += "r";
			} else if (current_char >= 346 && current_char <= 353) { // s
				return_value += "s";
			} else if (current_char >= 354 && current_char <= 359) { // t
				return_value += "t";
			} else if ((current_char >= 217 && current_char <= 220)
					|| (current_char >= 243 && current_char <= 246)
					|| (current_char >= 360 && current_char <= 372)) { // u
				
				return_value += "u";
			} else if (current_char >= 373 && current_char <= 374) { // w
				return_value += "w";
			} else if (current_char >= 375 && current_char <= 377) { // y
				return_value += "y";
			} else if (current_char >= 378 && current_char <= 383) { // z
				return_value += "z";
			}
		}
	}
	
	if (return_value.length > 50) {
		return_value = return_value.substr(0, ((return_value.charCodeAt(49) == 45) ? 49 : 50));
	}
	
	if (return_value.charCodeAt(return_value.length - 1) == 45) {
		return_value = return_value.substr(0, return_value.length - 1);
	}
	
	return return_value;
}