// init 1.1mKavalier
// requirs dom 3.3, functions 1.3, form 2.0


var page = {
	img_url: null, // absolute URL of images directory
	
	initContent: function(block) {
		// runs on each block loaded to page (including page itself)
		
		var i, j; // integer iterator

		// init forms

		// init order form persister

		var field = elm.get(orderPersister.fields.company.id);
		if (field != null) {
			var orderForm = field.form;
			orderPersister.init(orderForm);
		}
		
		// init formChecker
		try {
			var frm = block.getElementsByTagName("form");
			for (i = 0; i < frm.length; i++) {
				formChecker.add(frm[i], form_ruleSet);
			}
		} catch(ex) { xcp.err(ex, 'initContent forms'); }
		
		// init selects
		try {
			var divs = block.getElementsByTagName("div");
			for (i = 0; i < divs.length; i++) {
				elm.all[elm.all.length] = divs[i];
				if (cls.has(divs[i], "product_select")) {
					var pstemp = divs[i].getElementsByTagName("select");
					for (j = 0; j < pstemp.length; j++) {
						evt.add(pstemp[j], "change", function(e) {
							try {
								var obj = evt.getTarget(e);
								if (obj.form) {
									obj.form.submit();
								}
							} catch(ex) { xcp.err(ex, "product_select changed"); }
						});
					}
				}
			}
		} catch(ex) { xcp.err(ex, "error initializing product_select"); }
		
		return true;
	},
	
	init: function() {
		// runs only once at every page
		xcp.init();
		elm.all = new Array(); // all elements processed by JS automaton
		
		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'); }
		
		// init menu
		var menuL1 = elm.get("menuL1");
		if (browser.ie) { // MSIE
			try {
				var uls = elm.getByTag("ul");
				if (uls) {
					for(i = 0; i < uls.length; i++) {
						if (uls[i].parentNode && uls[i].parentNode.id && (uls[i].parentNode.id == "menuL1")) {	// main menu list
							listMagic.addCursor(uls[i], "hover");
							evt.add(uls[i], "mouseover", function() {cls.add(document.body, "hideSelects"); return true;});
							evt.add(uls[i], "mouseout", function() {cls.remove(document.body, "hideSelects"); return true;});
						}
					}
				}
//				if(document.recalc) document.recalc();	// IE recover after document manipulations
			} catch(ex) { xcp.warn(ex, "page.init menu"); }
		}
		
		page.initContent(document);
		return true;
	},
	
	done: function() {
		evt.flush();
	}
}

evt.add(window, "load", page.init);
evt.add(window, "unload", page.done);

