﻿function AttachUrlKeyBuilder(plainTextFieldId, urlKeyFieldId, previewSpanId, previewPrefix)
{
	var plainTextField = $get(plainTextFieldId);
	var urlKeyField = $get(urlKeyFieldId);
	var previewSpan = $get(previewSpanId);
	
	var updatePreview = function()
	{
		previewSpan.innerHTML = previewPrefix + MakeUrlKey(urlKeyField.value);
	};
	
	//Whenever they update the plain text version, generate a new URL key automatically
	var plainTextHandler = function(e)
	{
		urlKeyField.value = MakeUrlKey(plainTextField.value);
		updatePreview();
	};
	$addHandler(plainTextField, "keyup", plainTextHandler);
	$addHandler(plainTextField, "change", plainTextHandler);
	
	//Whenever the url key changes, update the preview
	$addHandler(urlKeyField, "keyup", updatePreview);
	$addHandler(urlKeyField, "change", updatePreview);
}

function MakeUrlKey(inputText)
{
	var outputText = new String();
	
	inputText = inputText.toLowerCase();

	for (i=0; i<inputText.length; i++)
	{
		var charCode = inputText.charCodeAt(i);
		if
		(
			(charCode >= 97 && charCode <= 122) ||
			(charCode >= 48 && charCode <= 57)
		) { outputText = outputText.concat(String.fromCharCode(charCode)); }
		else if
		(
			(charCode == 38) ||
			(charCode == 43)
		) { outputText = outputText.concat("and"); }
	}
	
	return outputText;
}