function gebi(n) 
{
	if(!n) return false;
	if(!document.getElementById(n)) return false;
	return document.getElementById(n)
}

var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;
var current;
		
function jsddm_open()
{	
  jsddm_canceltimer();
	jsddm_close();
	jQuery('.selected').removeClass('selected');
	ddmenuitem = jQuery(this).find('ul').eq(0).css('visibility', 'visible');
	current = jQuery(this).children().eq(0);
	current.addClass('selected');
}
		
function jsddm_close()
{	
  if(ddmenuitem) 
  { 
		ddmenuitem.css('visibility', 'hidden');
		ddmenuitem.prev().eq(0).removeClass('selected');
  }
}

function jsddm_timer()
{ 
  closetimer = window.setTimeout(jsddm_close, timeout); 
}
		
function jsddm_canceltimer()
{	
  if(closetimer)
  {	
    window.clearTimeout(closetimer);
		closetimer = null;
  }
}



var toggle = {
	settings: {},
	init: function(_this, id, hash) { this.settings[id] = new this.fc(_this, id, hash); return this.settings[id]; },
	show: function(_this, id, hash) { if(gebi(id)) { this.init(_this, id, hash).show(); }	_this.blur();	return false;	},
	hide: function(_this, id, hash) {	if(gebi(id)) { this.init(_this, id, hash).hide(); }	_this.blur();	return false;	},
  execute: function(_this, id, hash) {if(gebi(id)) { this.init(_this, id, hash).execute(); } _this.blur(); return false; }
};

toggle.fc = function(_this, id, hash) {
	var cur = toggle.settings[id];
	if (cur && cur.opener != _this && cur.opener.className.indexOf('toggle-active') != -1) 
  {
		$(cur.opener).removeClass('toggle-active');
	}
	this.id = id;
	this.opener = _this;
	this.modal = 1;
	this.effect = 'slide';
	this.showtime = 0;
	try 
  {
		for (var i in hash) this[i] = hash[i];
	} 
  catch(e) 
  {
		alert(e);
	}
}

toggle.fc.prototype = {
	success: function() 
  {
		var self = this;
		$(this.opener).removeClass('toggle-active');
		//$(document).unbind('click', self.docevnt);
	},
	hide: function() 
  {
		var self = this;
		switch (this.effect) 
    {
			case 'fade':  $('#' + this.id).fadeOut('slow', function() {	self.success(); });	break;
			case 'slide':	$('#' + this.id).slideUp('slow', function() {	self.success();	});	break;
			case 'top': 	var $obj = $('#' + this.id); var h = $obj.height();	$obj.animate( { top:-h },	500, function() {	$obj.css({ display:'none' }); self.success(); }); break;
			default:     	$('#' + this.id).css({ display:'none' });	self.success();
		}
	},
	show: function() 
  {
		var self = this;
		switch (this.effect) 
    {
			case 'fade':  $('#' + this.id).fadeIn();	break;
			case 'slide':	$('#' + this.id).slideDown();	break;
			case 'top':		var $obj = $('#' + this.id); $obj.css({ display:'block' }); $obj.css({ top:-$obj.height() });	$obj.animate({ top:0 }, 500);	break;
			default:			$('#' + this.id).css({ display:'block' });
		}
		$(this.opener).addClass('toggle-active');
		if (this.showtime) 
    {
			this.showtime = setTimeout(function(){ toggle.hide(self.opener, self.id, { effect:self.effect }); }, this.showtime);
		}
		if (!this.modal) 
    {
			self.docevnt = function(e){
				var target = e.srcElement || e.target;
				if (!(self.opener == target || $(self.opener).has(target).length) && !$(gebi(self.id)).has(target).length) 
        {
					self.hide();
				}
			};
			//$(document).bind('click', self.docevnt);
		}
	},
	execute: function() 
  {
		var self = this;
		if ($('#' + this.id).css('display') == 'none') 
    {
			self.show();
		} 
    else 
    {
			self.hide();
		}
	}
};

var core = {};

jQuery(function($) 
{
    core.init = function() 
    {
    };
    
    $(document).ready(function() 
    { 
      core.init(); 

      $('#top-menu > li').bind('mouseover', jsddm_open);
      $('#top-menu > li').bind('mouseout',  jsddm_timer);
      $("a[rel='cboxElement']").colorbox(); 
    });
    document.onclick = jsddm_close;
}); 

