// page init 1.1
// requires functions 1.6, dom 3.7, tableMagic 1.0, listMagic 3.0, ajax 0.2

var page = {
	img_url: null, // absolute URL of images directory
	elements: new Array(),  // all elements processed by javascript
	tags: {},      // all tags processed by javascript
	
	initContent: function(block) {
		// runs on each block loaded to page (including page itself)
		
		if (typeof block == "undefined")
			block = document;
		
		var i, j, k; // integer iterator
		var src, alt;
		
		// init anchors
		try {
			var anchors = block.getElementsByTagName("a");
			page.tags["a"] = true;
			for (i = 0; i < anchors.length; i++) {
				page.elements[page.elements.length] = anchors[i];
				if (cls.has(anchors[i], "newWindow")) {
					evt.add(anchors[i], "click", function(e) {
						var obj = evt.getTrigger(e);
						window.open(obj.href, '');
						evt.cancel(e);
						return true;
					});
				}
			}
		} catch(ex) { xcp.warn(ex, 'initContent anchors'); }
		
		// init spans
		try {
			var spans = block.getElementsByTagName("span");
			page.tags["span"] = true;
			for (i = 0; i < spans.length; i++) {
				page.elements[page.elements.length] = spans[i];
				// detect spans replaced by images
				src = spans[i].getAttribute("src");
				if (src != null) {
					alt = spans[i].innerHTML;
					alt = alt.removeInlineHtml();
					replaceByImage(spans[i], src, alt);
				}
			}
		} catch(ex) { xcp.warn(ex, 'initContent spans'); }
		
		// init forms
		try {
			var frm = block.getElementsByTagName("form");
			page.tags["form"] = true;
			for (i = 0; i < frm.length; i++) {
				// init formChecker
				page.elements[page.elements.length] = frm[i];
				formChecker.add(frm[i], form_ruleSet);
				evt.add(frm[i], "submit", jax.form.submit);
			}
		} catch(ex) { xcp.warn(ex, 'initContent forms'); }
		
		return true;
	},
	
	init: function() {
		// runs only once at every page
		log.init("messages");
		xcp.init();
		
		var i; // integer iterator
		
		// init meta tags
		try {
			var metas = document.getElementsByTagName("meta");
			for (i = 0; i < metas.length; i++) {
				if (metas[i].name && metas[i].name == "img_url") {
					page.img_url = metas[i].content;
				}
			}
		} catch(ex) { xcp.err(ex, 'initContent tables'); }
		
		page.initContent();
		
		return true;
	},
	
	done: function() {
		evt.flush();
	}
}

// localization
formChecker.invalidMsgTitle = "Pozor, některá políčka nejsou správně vyplněna:";
form_ruleSet.email.err = "Políčko {label} musí obsahovat platnou e-mailovou adresu.";
form_ruleSet.required.err = "Políčko {label} nesmí být prázdné.";

evt.add(window, "load", page.init);
evt.add(window, "unload", page.done);


