//<script src="http://code.jquery.com/jquery-latest.js"></script>
//animate the opening of the branch (span.grower jQueryElement)
function openBranch(jQueryElement, noAnimation) {
		jQueryElement.addClass('OPEN').removeClass('CLOSE');
		if(noAnimation)
			jQueryElement.parent().find('ul:first').show();
		else
			jQueryElement.parent().find('ul:first').slideDown();
}
//animate the closing of the branch (span.grower jQueryElement)
function closeBranch(jQueryElement, noAnimation) {
//if (event.target != g_ParentDiv) {  
  //      return; 
   // }
	jQueryElement.addClass('CLOSE').removeClass('OPEN');
	if(noAnimation)
	
		jQueryElement.parent().find('ul:first').hide();
	else
		jQueryElement.parent().find('ul:first').slideUp();
		
}

function expandBranch(jQueryElement, noAnimation) {
	  
	  jQueryElement.parent().find('ul:first').show();
	  jQueryElement.addClass('OPEN').removeClass('CLOSE');
	  jQueryElement.hover(
      function(){
	  jQueryElement.parent().find('ul:first').show();
	  jQueryElement.addClass('OPEN').removeClass('CLOSE');
	  },
      function(){jQueryElement.parent().find('ul:first').hide();
	  jQueryElement.addClass('CLOSE').removeClass('OPEN');
	  }
    );
}

function ipadBranch(jQueryElement, noAnimation) {
jQueryElement.live({
  touchend: function() {
    openBranch($(this));
  },
  mouseenter: function() {
      jQueryElement.parent().find('ul:first').show();
	  jQueryElement.addClass('OPEN').removeClass('CLOSE');
  },
  mouseleave: function() {
      jQueryElement.parent().find('ul:first').hide();
	  jQueryElement.addClass('CLOSE').removeClass('OPEN');
  }
});
}

function keepBranch(jQueryElement, noAnimation) {
		jQueryElement.hover(
      function(){jQueryElement.parent().find('ul:first').show();
	  jQueryElement.parent.addClass('OPEN').removeClass('CLOSE');
	  },
      function(){jQueryElement.parent().find('ul:first').hide();
	  jQueryElement.parent.addClass('CLOSE').removeClass('OPEN');
	  }
    );
}


//animate the closing or opening of the branch (ul jQueryElement)
function toggleBranch(jQueryElement, noAnimation) {
	if(jQueryElement.hasClass('OPEN'))
		closeBranch(jQueryElement, noAnimation);
	else
		openBranch(jQueryElement, noAnimation);
}
function closeMenu(jQueryElement, noAnimation)    {
  setTimeout(closeBranch(jQueryElement, noAnimation), 4000);

}

function preventbubble(e){
 if (e && e.stopPropagation) //if stopPropagation method supported
  e.stopPropagation()
 else
  event.cancelBubble=true
}

function eofel(e,el) //Event of Element?
{
	var src = (window.event) ? e.srcElement : e.target; // ie : moz
	if(src==el)
		return true;
}

//when the page is loaded...
$(document).ready(function () {
	//to do not execute this script as much as it's called...
	if(!$('ul.tree.dhtml').hasClass('dynamized'))
	{
		//add growers to each ul.tree elements
		$('ul.tree.dhtml ul').prev().before("<span class='grower OPEN'> </span>");
		
		//dynamically add the '.last' class on each last item of a branch
		$('ul.tree.dhtml ul li:last-child, ul.tree.dhtml li:last-child').addClass('last');
		
		//collapse every expanded branch
		$('ul.tree.dhtml span.grower.OPEN').addClass('CLOSE').removeClass('OPEN').parent().find('ul:first').hide();
		$('ul.tree.dhtml').show();
		
		//open the tree for the selected branch
		//	$('ul.tree.dhtml .selected').parents().each( function() {
		//		if ($(this).is('ul'))
		//			toggleBranch($(this).prev().prev(), true);
		//	});
		//	toggleBranch( $('ul.tree.dhtml .selected').prev(), true);
		
		//add a function on clicks on growers
		$('ul.tree.dhtml span.grower').click(function(){
			toggleBranch($(this));
		});
		
		//mark this 'ul.tree' elements as already 'dynamized'
		$('ul.tree.dhtml').addClass('dynamized');

		$('ul.tree.dhtml').removeClass('dhtml');
	}
});

