/**
 * main
 * @package macem page
*/

events.addHandler(document, 'ready', init);

// attach global event FIXME here because IE cannot read from initEdit function
events.global.container = [];

/*var $m = function (el) {
	if ( window == this || !this.init )
		return new $m(el);
 //return this.init(el);
}

$m.fn = $m.prototype = {
	init: function(el) {
		this.el = document.getElementById(el);
		return this;
	},
	appendTo: function (node) {
		node.appendChild (this.el);
		return this;
	},
	create: function(tag) {
		this.el = document.createElement(tag);
		return this;
	},
	text: function (text) {
	  this.el.appendChild(document.createTextNode(text));
		return this;
	}
	
}

function ddd() {
	$m('')
		.create('a')
			.text('test')
				.appendTo(dom.byId('header'));
	$m('').create('a').text('testit').appendTo(dom.byId('header'));
}

events.addHandler(window, 'load', ddd);

window.onunload = function () {
	delete Q;
} */

/**
 * function init js on load
*/
function init() {

  browser.fixBackgroundImage();

	var container = dom.byId('container');
	if (container) {

		var navigation = dom.byId ('navigation');
		if (navigation) {
			var lis = navigation.getElementsByTagName('li');
			for (var j = 0; j < lis.length; j++) {
				if (lis[j].getElementsByTagName("ul").length >= 1) {

					lis[j].onmouseover = function(evt) {
	          var ul = this.getElementsByTagName("ul")[0];
						if (!dom.hasClass(ul, 'current')) {
							if (dom.hasClass(this, 'closed') || ul.offsetLeft) dom.addClass(ul, 'current'); // level which should be opened
              if (browser.ie) {
                browser.iframe.menu(ul);
              }
	          }
	        }

	    		lis[j].onmouseout = function(evt) {
	    		  var ul = this.getElementsByTagName("ul")[0];
						if (dom.hasClass(ul, 'current')) {
							dom.removeClass(ul, 'current');
		          if (browser.ie) {
							 	var iframes = this.getElementsByTagName('iframe');
                if (iframes[0]) { html.remove (iframes[0]); }
		          }
		        }
					}

        }
			}
		} //navigation

    events.addGlobalHandler (container, 'click', events.global.container);

    // print full article
    events.global.container.push({
      tag: 'a',
      parent_class: 'printable',
      prevent: true,
      handler: function(self) {
	      var node = dom.byId ('print');
				if (!node) node = html.create ('iframe', d.body);
	      node.id = 'print';
	      node.style.height = 0;
	      node.style.border = 0;
				node.src = self.href;
      }
    });

		// pane
		widget.pane.init (container, events.global.container);

		// form validate
		var forms = container.getElementsByTagName('form');
		for (var i = 0; i < forms.length; i++) {
      events.addHandler (forms[i], "submit", function(e) {
        var error = false;
        var required = dom.byClassName (e.target, 'required', 'dl');
        for (var j = 0; j < required.length; j++) {
           var input = dom.byTagName(required[j], 'input')[0];
           var textarea = dom.byTagName(required[j], 'textarea')[0];
           var select = dom.byTagName(required[j], 'select')[0];
           if ((input && input.value == "") ||
               (textarea && textarea.value == "") ||
               (select && select.options[select.selectedIndex].value == "")) {
             dom.addClass (required[j], 'error');
             if (!dom.byClassFirst (required[j], 'notice').firstChild)
               html.text (dom.byClassFirst (required[j], 'notice'), "This field is required!."); // L18N
             error = true;
           } else {
             dom.removeClass (required[j], 'error');
					 }
				}
				error ? events.prevent(e) : null;
			});
		}

  } // content
}