if (typeof YAMLIAT == 'undefined') {
	YAMLIAT = {};
};
	YAMLIAT.version = '0.2';
	YAMLIAT.current_id = 0;
	YAMLIAT.inputs = { count: 0 };
	YAMLIAT.blacklist = [];
	YAMLIAT.nextId = function() {
        return "yamliat_" + YAMLIAT.current_id++;
	};
	YAMLIAT.getId = function (element) {
        if (!element.id || YAMLIAT.inputs[element.id]) {
            element.id = YAMLIAT.nextId();
        }

        return element.id;
    };
	YAMLIAT.pushInput = function(element) {
        YAMLIAT.inputs[YAMLIAT.getId(element)] = element;
		YAMLIAT.inputs.count++;
	};
	YAMLIAT.getInputs = function() {
        var block_inputs = document.getElementsByTagName('textarea');
        for (i=0; i < block_inputs.length; i++) {
			YAMLIAT.pushInput(block_inputs[i]);
        }

        var line_inputs = document.getElementsByTagName('input');
        for (i=0; i < line_inputs.length; i++) {
            if (line_inputs[i].type == "text") {
				YAMLIAT.pushInput(line_inputs[i]);
            }
        }

        return YAMLIAT.inputs;
    };
	YAMLIAT.blacklisted = function(url) {
		for (pattern in YAMLIAT.blacklist) {
			if (YAMLIAT.blacklist[pattern].test(url)) { return true; }
		}
		return false;
	};
	YAMLIAT.loadJsFile = function(url, callback) {
        var file = document.createElement('script');
        file.type = "text/javascript";
        file.src = url;
        document.body.appendChild(file);    
        if (callback) {
            file.onload = callback;
        }
    };
	YAMLIAT.init = function () {
		YAMLIAT.getInputs();
		if (YAMLIAT.inputs.count > 0) {
			YAMLIAT.loadJsFile("http://at.alixsys.com/codesprint2009/yamli/blacklist/?v="+YAMLIAT.version, function () {
				if (!YAMLIAT.blacklisted(document.location.href)) {
					YAMLIAT.loadJsFile("http://api.yamli.com/js/yamli_api.js", function () {
						if (typeof(Yamli) == "object") {
						Yamli.init(YAMLIAT.options);

						YAMLIAT.yamlifyAll();
						}
					});
				}
			});
		}
    };
	YAMLIAT.yamlifyAll = function() {
		for (input in YAMLIAT.inputs) {
				Yamli.yamlify(input);
		}
    };

if (typeof YAMLIAT.options == 'undefined') {
	YAMLIAT.options = {
		// assumeDomReady is undocumented parameter which tells
		// Yamli not to wait for DOMContentLoaded.
		assumeDomReady: true,
		showTutorialLink: false,
		startMode: "onOrUserDefault",
		settingsPlacement: "inside",
		tool: "yamiat.js"
	};
};
YAMLIAT.init();
