// this wasn't working for some reason:
function nudge_others (opts,g,obj,dir) {
	opts.each(function(o) {
		if (o.id != obj.id) {
			$("dc").set("text",$("dc").get("text") + "\nNO MATCH: ["+o.id+"] != ["+obj.id+"]");
			var fx = new Fx.Morph(o, {duration: 100, link: 'cancel'});
			switch (dir) {
				case "out":
					fx.start({ 'marginLeft': -10 });
					break;
				case "in":
					fx.start({ 'marginLeft': 0 });
					break;
			}
		} else {
			$("dc").set("text",$("dc").get("text") + "\nmatched id ["+o.id+"]");
		}
	});
}

function move_to_pos(el,att,pos,delay) {
	if (delay > 0) {
		setTimeout(function() { move_to_pos(el,att,pos); }, delay);
	} else {
		el.set('tween', { duration: 'long' });
		el.get('tween', { property: att }).start(pos);
	}
}

function show_panel_ie(obj) {
	var r = JSON.decode(obj.get("rel"));
	$$("div.submenu ul li").each(function(o) { o.removeClass("li_hl"); });
	obj.getParent().addClass("li_hl");
	//return false;

	cur_pointer = obj;

	if (r.b != cur_panel) {
		clearTimeout(my_timer);
		if ($("p_"+r.b)) {
			if (cur_panel != "") {
				var el = $("p_"+cur_panel);
				var fx = new Fx.Morph(el, {duration: 300, transition: Fx.Transitions.Sine.easeOut, onComplete: function() { el.setStyles({display:'none',marginTop:20,opacity:0}); } });
				fx.start({ 'opacity': 0, 'marginTop': 100 });


				var h_el = $("h_"+cur_panel);
				if ($(h_el.id + "_float")) { $(h_el.id + "_float").destroy(); }
				var el_p = h_el.getPosition();

				var placeholder = h_el.clone(false,false);
				placeholder.id = 'h_place';
				placeholder.set("html","&nbsp;");
				placeholder.setStyles({ width: 400, height: 59 }); // hard-coding height @ 59 because IE sux

				var floater = h_el.clone();
				var temp_h = h_el.clone(true,true);
				floater.id = h_el.id + "_float";
				floater.setStyles({ position: 'absolute', zIndex: 1200 });
				
				placeholder.replaces(h_el);
				temp_h.setStyle("display","none");
				temp_h.inject(placeholder,'after');
				
				$$("body").grab(floater);
				floater.setPosition(el_p);

				var fx2 = new Fx.Morph(floater, {duration: 300, transition: Fx.Transitions.Sine.easeOut, onComplete: function() { floater.destroy(); } });
				fx2.start({ opacity: 0, marginLeft: -800 });

				cur_panel = "";
				my_timer = setTimeout(function () { show_panel_ie(obj); }, 500);

			} else {
				cur_panel = r.b;
				var el2 = $("p_"+cur_panel);
				el2.setStyle("opacity",0);
				el2.setStyle("display","block");
				el2.set('tween', { duration: 1000 });
				el2.get('tween', { property: 'opacity' }).start(1);

				var h_el = $("h_"+cur_panel);
				if ($(h_el.id + "_float")) { $(h_el.id + "_float").destroy(); }
				var el_p = $("h_place").getPosition();
				var floater = h_el.clone();
				floater.id = h_el.id + "_float";
				floater.setStyles({position:'absolute', zIndex: 1201, display: 'block', opacity: 0});
				$$("body").grab(floater);
				floater.setPosition(el_p);
				
				var fx2 = new Fx.Morph(floater, {duration: 300, transition: Fx.Transitions.Sine.easeOut, onComplete: function() { floater.destroy(); $('h_place').destroy(); $("h_"+cur_panel).setStyle('display', 'block'); show_in_process = false; } });
				fx2.start({ opacity: 1 });

			}
		}
	}
}


function show_panel(obj) {
	var r = JSON.decode(obj.get("rel"));
	$$("div.submenu ul li").each(function(o) { o.removeClass("li_hl"); });
	obj.getParent().addClass("li_hl");
	//return false;

	cur_pointer = obj;

	if (r.b != cur_panel) {
		clearTimeout(my_timer);
		if ($("p_"+r.b)) {
			if (cur_panel != "") {
				var el = $("p_"+cur_panel);
				var fx = new Fx.Morph(el, {duration: 300, transition: Fx.Transitions.Sine.easeOut, onComplete: function() { el.setStyles({display:'none',marginTop:20,opacity:0}); } });
				fx.start({ 'opacity': 0, 'marginTop': 100 });

				var h_el = $("h_"+cur_panel);
				var fx2 = new Fx.Morph(h_el, {duration: 300, transition: Fx.Transitions.Sine.easeOut, onComplete: function() { h_el.setStyles({display:'none'}); } });
				fx2.start({ 'opacity': 0, 'marginLeft': -800 });

				cur_panel = "";
				my_timer = setTimeout(function () { show_panel(obj); }, 500);
			} else {
				cur_panel = r.b;
				var el2 = $("p_"+cur_panel);
				el2.setStyle("opacity",0);
				el2.setStyle("display","block");
				el2.set('tween', { duration: 1000 });
				el2.get('tween', { property: 'opacity' }).start(1);

				var h_el = $("h_"+cur_panel);
				h_el.setStyles({display:'block',marginLeft:1600});
				var fx2 = new Fx.Morph(h_el, {duration: 300, transition: Fx.Transitions.Sine.easeOut });
				fx2.start({ 'opacity': 1, 'marginLeft': 0 });
			}
		}
	}
}

function set_submenu() {
	if (!submenu_set) {
		var sbm = $$("div.submenu").shift();
		var sbm_p = sbm.getPosition();
		sbm.setStyle("position","absolute");
		sbm.setPosition(sbm_p);
		submenu_set = true;
	}
}

function set_email_links(cl) {
	$$("span."+cl).each( function(em) {
		var addr = em.get("text");
		addr = addr.replace(" _AT_ ","@");
		var el = new Element("a", {
			'href' : 'mailto:' + addr,
			'text' : addr
		});
		el.replaces(em);
	});
}

var cur_panel = "";
var cur_pointer = "";
var my_timer;
var subpage = false;
var submenu_set = false;
var floater_id;
var show_in_process;

window.addEvent('domready', function() {
	
	/* homepage */
	var cur_time_interval = time_interval = 100;
	$$("div.home_menu ul li").each(function(o) {
		var my_id = "li"+cur_time_interval;
		o = $(o);
		o.set("id",my_id);

		var a = o.getChildren("a").shift();
		var r = JSON.decode(a.get("rel"));
		a.setStyles({
			background: "transparent url('gfx/b_"+r.b+".png') no-repeat top left",
			width: r.w
		});

		var fx = new Fx.Morph(a, {duration: 100, link: 'cancel'});

		a.addEvents({
			'mouseenter': function() {
				this.setStyle("backgroundPosition","bottom left");
				fx.start({ 'marginRight': 10 });
			},
			'mouseleave': function() {
				this.setStyle("backgroundPosition","top left");
				fx.start({ 'marginRight': 0 });
			}
		});
		
		// check for IE, if IE, no move.... because they suck
		if (!Browser.Engine.trident) { move_to_pos(o,"marginLeft",0,cur_time_interval); }
		cur_time_interval += time_interval;

	});

	var cur_time_interval = time_interval = 100;

	/* sub pages */
	if ($$("div.submenu ul li").length > 0) {
		$$("div.submenu ul li").each(function(o) {
			subpage = true;
			var my_id = "sbli"+cur_time_interval;
			o = $(o);
			o.set("id",my_id);
	
			var a = o.getChildren("a").shift();
			var r = JSON.decode(a.get("rel"));
			a.setStyles({
				background: "transparent url('gfx/sb_"+r.b+".png') no-repeat top left",
				width: r.w
			});
	
			a.addEvents({
				'mouseenter': function() {
					this.setStyle("backgroundPosition","bottom left");
				},
				'mouseleave': function() {
					this.setStyle("backgroundPosition","top left");
				},
				'click': function(e) {
					var e = new Event(e);
					e.stop();
					set_submenu();
					if (Browser.Engine.trident) {
						if (!show_in_process) {
							show_in_process = true;
							show_panel_ie(this);
						}
					} else {
						show_panel(this);
					}
				}
			});
	
			move_to_pos(o,"marginLeft",0,cur_time_interval);
			cur_time_interval += time_interval;
	
		});
		var te = JSON.decode($$("div.submenu ul li").shift().getChildren("a").shift().get("rel"));
		cur_panel = te.b;
	}
	
	var cur_time_interval = time_interval = 100;
	var zi = 101;

	$$("div.itb").each(function(o) {
		var my_id = "itb"+cur_time_interval;
		o = $(o);
		o.set("id",my_id);

		var r = JSON.decode(o.get("rel"));
		var a = o.getChildren("a").shift();
		a.setStyles({
			background: "transparent url('submenu_gfx/b_"+r.b+".png') no-repeat top left",
			width: r.w
		});
		
		if (Browser.Engine.trident && r.tie) {
			o.setStyles({
				zIndex: zi,
				top: r.tie,
				left: r.lie
			});
		} else {
			o.setStyles({
				zIndex: zi,
				top: r.t,
				left: r.l
			});
		}
		
		zi++;

		a.addEvents({
			'mouseenter': function() {
				this.setStyle("backgroundPosition","bottom left");
			},
			'mouseleave': function() {
				this.setStyle("backgroundPosition","top left");
			}
		});

		cur_time_interval += time_interval;

	});
	
	set_email_links("liame");
	
});
