
YAHOO.namespace("machinegraphic");

function show(id) {
	var elt = YAHOO.util.Dom.get(id);
	YAHOO.util.Dom.removeClass(elt, "hide");	
	YAHOO.util.Dom.addClass(elt, "show");	
}

function hide(id) {
	var elt = YAHOO.util.Dom.get(id);
	YAHOO.util.Dom.removeClass(elt, "show");	
	YAHOO.util.Dom.addClass(elt, "hide");	
}

function onShow(e, params) {
	show(params.id);	
}

function onHide(e, params) {
	hide(params.id);	
}


function getCoord(o) {
	var coord = {x: o.offsetLeft, y: o.offsetTop};
	while (o = o.offsetParent) {
		coord.x += o.offsetLeft;
		coord.y += o.offsetTop;
	}
	return coord;
}

function toggleElement(parentId, elementTag, elementClass, id) {
	var elements = YAHOO.util.Dom.getElementsByClassName(elementClass, elementTag, parentId);
	var e;
	for(var i = 0; i < elements.length; i++) {
		e = elements[i];
		hide(e);
	}
	e = document.getElementById(id);
	if (e) {
		show(e);
	}
}

function toggleClass(id, className, parentId, elementTag) {
	var elements = YAHOO.util.Dom.get(parentId).getElementsByTagName(elementTag);
	var e;
	for(var i = 0; i < elements.length; i++) {
		e = elements[i];
		YAHOO.util.Dom.removeClass(e, className);	
	}
	e = document.getElementById(id);
	if (e) {
		YAHOO.util.Dom.addClass(e, className);	
	}
}

function expand(o, id) {
	var e = YAHOO.util.Dom.get(id);
	if (YAHOO.util.Dom.hasClass(e, "show")) {
		hide(e);
		YAHOO.util.Dom.addClass(o, "collapsed");
		YAHOO.util.Dom.removeClass(o, "expanded");	
	} else {
		show(e);
		YAHOO.util.Dom.addClass(o, "expanded");
		YAHOO.util.Dom.removeClass(o, "collapsed");	
	}
}

function onExpand(e, params) {
	var o = YAHOO.util.Event.getTarget(e);	
	expand(o, params.id);	
}

function toggleElements(e, params) {
	var id1 = params.id1;
	var id2 = params.id2;
	var e1 = YAHOO.util.Dom.get(id1);
	var e2 = YAHOO.util.Dom.get(id2);
	if (YAHOO.util.Dom.hasClass(e1, "show") || !YAHOO.util.Dom.hasClass(e1, "hide")) {
		hide(e1);
		show(e2);
	} else if (YAHOO.util.Dom.hasClass(e2, "show") || !YAHOO.util.Dom.hasClass(e2, "hide")) {
		hide(e2);
		show(e1);
	}
}

function mainMenuMouseHandler(e) {	
	var elTarget = YAHOO.util.Event.getTarget(e);	
	while (elTarget.id != "menu-main") {
		if(elTarget.nodeName.toUpperCase() == "LI") {
			toggleElement("submenu-main", "ul", "menu-item", "submenu-" + elTarget.id);
			break;
		} else {
			elTarget = elTarget.parentNode;
		}
	}
}

function initializeMainMenu() {
	YAHOO.util.Event.on("menu-main", "mouseover", mainMenuMouseHandler);
}

function getPixelValue(value) {
	var v = value;
	if (v.substring(v.length - 2) == 'px') {
		v = v.substring(0, v.length - 2);
	}
	return v;
}

function fade(id, delay) {
	setTimeout("new YAHOO.widget.Effects.Fade(YAHOO.util.Dom.get('" + id + "'))", delay * 1000);	
}

function submitForm(f) {
	YAHOO.util.Dom.get(f).submit();
}

function setImageSrc(id, url) {
	YAHOO.util.Dom.get(id).src = url;	
}

function setImage(id, url) {
	setTimeout(function(){setImageSrc(id, url)}, 100);	
}

function getURL(url, containerId) {
	YAHOO.util.Connect.asyncRequest('GET', url, {argument: {containerId: containerId}}, null);
}

var globaleval =  function(script){
	if(window.execScript){
		return window.execScript(script);
	} else if(navigator.userAgent.indexOf("KHTML") != -1){ //safari, konqueror..
		var s = document.createElement("script");
		s.type = "text/javascript";
		s.innerHTML = script;
		document.getElementsByTagName("head")[0].appendChild(s);
	} else {
		return window.eval(script);
	}
};

function executeScript(script) {
	setTimeout('var f = function(){' + script + '}; f();', 0);
}


var globalEvents = {
start:function(type, args){
	var result = args[1];
	var div = document.getElementById(result.containerId ? result.containerId : result);
	if (div) {
		div = div.getElementsByTagName('div')[0];
	}
	if (div) {
		div.innerHTML = '';
	}	
},
	
complete:function(type, args){
},
	
success:function(type, args){
	var result = args[0].argument;
	var div = document.getElementById(result.containerId ? result.containerId : result);
	var responseText = args[0].responseText;

	if (div && (responseText !== undefined)) {
		div.innerHTML = responseText;
		var scripts = div.getElementsByTagName("script");
		for(var i=0;i< scripts.length;i++){
			globaleval(scripts[i].text);
		}
	}
},
	
failure:function(type, args){
},
	
abort:function(type, args){
}
};

function initializeEventSystem(){
	YAHOO.util.Connect.startEvent.subscribe(globalEvents.start);
	YAHOO.util.Connect.completeEvent.subscribe(globalEvents.complete);
	YAHOO.util.Connect.successEvent.subscribe(globalEvents.success);
	YAHOO.util.Connect.failureEvent.subscribe(globalEvents.failure);
	YAHOO.util.Connect.abortEvent.subscribe(globalEvents.abort);
}
