/////////////////////////////////////////////////////////////////////////////////
// Developing+Programming by aClass (www.aclass.de) i n f o @ a c l a s s . d e 
/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////
// VMenu configuration data
var vm_image_link='/img/arrow-link.gif';
var vm_image_open='/img/arrow-000000-open-row.gif';
var vm_image_close='/img/arrow-000000-close-row.gif';

/////////////////////////////////////////////////////////////////////////////////
// VMenu set OVER style
function vm_over(obj) {
	var nodes=obj.parentNode.childNodes;
	for(var col=0; col<nodes.length; col++) {
		var cn=nodes[col].className;
		if(cn=='item') {
			cn='item-hover';
		} else if(cn=='parent') {
			cn='parent-hover';
		} else if(cn=='openclose') {
			cn='openclose-hover';
		} else if(cn=='child') {
			cn='child-hover';
		} else if(cn=='childitem') {
			cn='childitem-hover';
		} else if(cn=='link') {
			cn='link-hover';
		}
		nodes[col].className=cn;
	}
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu set OUT style
function vm_out(obj) {
	var nodes=obj.parentNode.childNodes;
	for(var col=0; col<nodes.length; col++) {
		var cn=nodes[col].className;
		if(cn=='item-hover') {
			cn='item';
		} else if(cn=='parent-hover') {
			cn='parent';
		} else if(cn=='openclose-hover') {
			cn='openclose';
		} else if(cn=='child-hover') {
			cn='child';
		} else if(cn=='childitem-hover') {
			cn='childitem';
		} else if(cn=='link-hover') {
			cn='link';
		}
		nodes[col].className=cn;
	}
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu Init
function vm_i(name) {
	var table=findObject(name);
	for(var row=0; row<table.rows.length; row++) {
		var nodes=table.rows[row].childNodes;
		for(var col=0; col<nodes.length; col++) {
			if(nodes[col].tagName=='TD') {
				c="vm_over(this);"
		  	if(nodes[col].onmouseover) {
		  		var b=new String(nodes[col].onmouseover);
		  		b=b.substring(b.indexOf('{')+1,b.lastIndexOf('}')-1);
		  		nodes[col].onmouseover=new Function(c+b);
		    } else {
				  nodes[col].onmouseover=new Function(c);
				}			
				c="vm_out(this);"
		  	if(nodes[col].onmouseout) {
		  		var b=new String(nodes[col].onmouseout);
		  		b=b.substring(b.indexOf('{')+1,b.lastIndexOf('}')-1);
		  		nodes[col].onmouseout=new Function(c+b);
		    } else {
				  nodes[col].onmouseout=new Function(c);
				}			
			}
		}
	}
	for(var row=0; row<table.rows.length; row++) {
		if(table.rows[row].firstChild.className=='child'||table.rows[row].firstChild.className=='childitem') {
			table.rows[row].style.display='none';	
		}
	}
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu Get Table
function vm_gt(obj) {
	if(obj.tagName=='TABLE') return obj;
	return vm_gt(obj.parentNode);
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu Get Open/Close Icon
function vm_goci(row) {
	if(row.tagName!='TR') return null;
	var nodes=row.childNodes;
	for(var col=0; col<nodes.length; col++) {
		if(nodes[col].className=='openclose') {
			var n=nodes[col].childNodes;
			for(var e=0; e<n.length; e++) {
				if(n[e].tagName=='IMG') {
					return n[e];
				}
			}
		}
	}
	return null;
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu Switch Row
function vm_sr(obj,id) {
	var table=vm_gt(obj);
	if(!id||id==null) return;
 	for(var row=0; row<table.rows.length; row++) {
 		// loop on each row
 		if(!table.rows[row].id) {
			var img=vm_goci(table.rows[row]);
			if(img!=null) {
				img.src=vm_image_open;
			}
 			continue;
 		}
 		if(table.rows[row].id==id) {
 			if(table.rows[row].style.display=='none') {
 				table.rows[row].style.display='';
 				obj.src=vm_image_close;
 			} else {
 				table.rows[row].style.display='none';
 				obj.src=vm_image_open;
 			}
 		} else {
 			var nodes=table.rows[row].childNodes;
			var cn=nodes[0].className;
			if(cn=='child'||cn=='childitem') {
 				table.rows[row].style.display='none';
			}
 		}
	}  
}

/////////////////////////////////////////////////////////////////////////////////
// VMenu Close All
function vm_ca(obj) {
	var table=vm_gt(obj);
 	for(var row=0; row<table.rows.length; row++) {
 		// loop on each row
		var img=vm_goci(table.rows[row]);
		if(img!=null) {
			img.src=vm_image_open;
		}
 		if(!table.rows[row].id) continue;
		var nodes=table.rows[row].childNodes;
		var cn=nodes[0].className;
		if(cn=='child'||cn=='childitem') {
			table.rows[row].style.display='none';
		}
	}  
}

