// JavaScript Document

window.onload = assign;
document.onmousemove = drag_drag;

var timeout_id = 0;
var drag_dragging;
var drag_target;
var drag_button;

function assign() {
	//set_background();	
	var divobj = document.getElementsByTagName("DIV");	
	for (var i=0;i<divobj.length;i++) {
		if (divobj[i].className == 'button') {
			//divobj[i].onmousedown = drag_start;
			//divobj[i].onmouseup = drag_end;
			//divobj[i].onmouseover = show_name;
			//divobj[i].onmouseout = hide_name;
			//divobj[i].onclick = show_content;
		}
		else if (divobj[i].className == 'jack') {
			divobj[i].onmouseover = show_name;
			divobj[i].onmouseout = hide_name;
			divobj[i].onmousedown = drag_start;
			divobj[i].onmouseup = drag_end;
			divobj[i].onclick = show_content;
		}
		else if (divobj[i].className == 'menu') {
			divobj[i].onclick = move_div;
		}
	}
	
	var imgobj = document.getElementsByTagName("IMG");	
	for (var j=0;j<imgobj.length;j++) {
		if (imgobj[j].className == 'thumbnail') {
			imgobj[j].onclick = view;
		}
	}
}

//set random background image
/*function set_background() {

								/*  //pre-load???	
									image1 = new Image();
									image1.src = "img/wallpaper/green.jpg";
									image2 = new Image();
									image2.src = "img/wallpaper/yellow.jpg";
									image3 = new Image();
									image3.src = "img/wallpaper/grey.jpg";
									image4 = new Image();
									image4.src = "img/wallpaper/red.jpg";*/
	
/*	background_image = new Array()
	background_image[0] = "img/wallpaper/green.jpg"
	background_image[1] = "img/wallpaper/yellow.jpg"
	background_image[2] = "img/wallpaper/grey.jpg"
	background_image[3] = "img/wallpaper/red.jpg"
	//background_image[4] = "img/wallpaper/burgundy.jpg"
	//background_image[5] = "img/wallpaper/gold.jpg"
	var number_images = 4;
	var random_number_long = (number_images - 1)*Math.random();
	var random_number = Math.round(random_number_long);
	document.body.background = background_image[random_number];
}*/

function get_target(e) {
	var clicked_targ;
	var targ;
	
	if (!e) var e = window.event;
	//for netscape and mozilla
	if (e.target) { clicked_targ = e.target; 
	e.stopPropagation();
	}
	//for internet explorer
	else if (e.srcElement) { clicked_targ = e.srcElement; 
	e.cancelBubble = true; 
	}
	// defeat Safari bug
	if (clicked_targ.nodeType == 3) clicked_targ = targ.parentNode;

	if (clicked_targ.tagName != 'BODY') {
			
			if (clicked_targ.tagName == 'DIV') {
				targ = clicked_targ;
			}
			else if (clicked_targ.tagName == 'IMG') {
				targ =  clicked_targ.parentNode;
			}
			else if (clicked_targ.tagName == 'A') {
				targ = clicked_targ;
			}
		else { clicked_targ = clicked_targ.parentNode; }
	}	
	return targ;
}

//*****DRAG, CONTENT and LABEL SCRIPTS*****

function get_x(e) {
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
		x = e.pageX;
		}
	else if (e.clientX || e.clientY) {
		x = e.clientX + document.body.scrollLeft;
		}
	return x;
}

function get_y(e) {
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
		y = e.pageY;
		}
	else if (e.clientX || e.clientY) {
		y = e.clientY + document.body.scrollTop;
		}
	return y;
}

//dragging
function drag_start(e) {
	drag_button = get_target(e).parentNode;
	drag_target = drag_button.id;
	drag_dragging = true;
	if (drag_button.className == 'button') {
		var divobj = document.getElementsByTagName("DIV");
		for (var i=0;i<divobj.length;i++) {
			divobj[i].style.zIndex = 0;
		}		
		document.getElementById(drag_target).style.zIndex = 10;
	}
	start_x = get_x(e);
	start_y = get_y(e);
	return false;
}

function drag_end(e) {
	drag_dragging = false;
	if (drag_button.className == 'button') {
		document.getElementById(drag_target).style.zIndex = 1;
	}
	end_x = get_x(e);
	end_y = get_y(e);
	return false;
}

function drag_drag(e) {
	var pos_x = get_x(e);
	var pos_y = get_y(e);
	if (drag_dragging) {
		if (drag_button.className == 'button') {
			document.getElementById(drag_target).style.left = pos_x - 15;
			document.getElementById(drag_target).style.top = pos_y - 15;
		}
	}
	return false;
}

//*****MOVING SCRIPT*****
//not sure hy i ever needed this script

/*function get_menu_item(e) {
	menu_item = get_target(e).id;
	return menu_item; 
}*/

function move_div(e) {
	selection = get_target(e).id;
	//alert(selection);
	if (selection >0) {	
		for (var i=0;i<floater.length;i++) {
			move_floater = floater[i][selection][0];
			content = move_floater + '_content';
			document.getElementById(content).style.visibility = "hidden";
			var top = floater[i][selection][1];
			var bottom = floater[i][selection][2];
			var left = floater[i][selection][3];
			var right = floater[i][selection][4];
			
			floater[i][selection][5] = Math.round(Math.random() * ((100*right) - (100*left)) + (100*left));
			floater[i][selection][6] = Math.round(Math.random() * ((50*bottom) - (50*top)) + (50*top));
			//alert(move_floater + ' ' + 'end_x:' + floater[i][selection].end_x + ' ' + 'end_y:' + floater[i][selection].end_y);
			
			moving(i);	
		}
	}
}

function moving(i) {
	var move_floater = floater[i][selection][0];
	var end_x = floater[i][selection][5];
	var end_y = floater[i][selection][6];
	var current_x = parseInt(document.getElementById(move_floater).style.left, 10);
	var current_y = parseInt(document.getElementById(move_floater).style.top, 10);
	var diff_x = end_x - current_x;
	var diff_y = end_y - current_y;
	document.getElementById(move_floater).style.left = current_x + (diff_x/3);
	document.getElementById(move_floater).style.top = current_y + (diff_y/3);	
	if ((Math.abs(diff_x) <= 3) && (Math.abs(diff_y) <= 3)) {
		clearTimeout(timeout_id);
	}
	else {
		timeout_id = setTimeout("moving('" + i + "');", 50);
		//timeout_id = setTimeout(moving, 20, obj);
	}		
}


//label rollover
function show_name(e) {
	var button_name = get_target(e).parentNode.id + '_label';
	//alert(button_name);
	if (document.getElementById(button_name)) {
	document.getElementById(button_name).style.visibility = "visible";
	}
}

function hide_name(e) {
	var button_name = get_target(e).parentNode.id + '_label';
	if (document.getElementById(button_name)) {
	document.getElementById(button_name).style.visibility = "hidden";
	}
}

//show content
function show_content(e) {
	var button = get_target(e).parentNode;
	var content = button.id + '_content';
	if ((start_x == end_x) && (start_y == end_y)) {
		if (button.className == 'button') {
			if (document.getElementById(content).style.visibility == "visible") {
				content_hidden = false;
			}
			else {
				content_hidden = true;
			}	
			if (content_hidden) {
				document.getElementById(content).style.visibility = "visible";
			}
			else {
				document.getElementById(content).style.visibility = "hidden";
			}
		}
	}
}


function view(e) {
var targ = get_target(e);
var img_tag = targ.innerHTML.toString();
var img_html = new Array();
	img_html = img_tag.split('src="')
var img_src = img_html[1];
var img_info = new Array();
	img_info = img_src.split('_s');
var	img_name = img_info[0];
var img_type = new Array();
	img_type = img_info[1].split('"');

var new_img = img_name + img_type[0];
//alert(new_img);

if (img_info[0] != undefined) {	
	document.getElementById('screen').style.zIndex = 0;  //using z-index of -10 caused Firefox t make the Div disappear, 0 works
	document.getElementById('screen_img').src = new_img;
	document.getElementById('screen_content').style.visibility = "visible";
	}
}