

var mss_photos_drag = 0;
var mss_photos_drag_type = "";
var mss_photos_drag_start_mouse = {};
var mss_photos_drag_start_drag = {};
var mss_photos_friends = [];
var mss_photos_sel_users_debug = "";


function mss_photos_sel_users_initialize()
{
	var photo = objXYWH("bigphoto");
	if (photo.w>0 || photo.h>0 || photo.x>0 || photo.y>0)
	{
		mss_photos_sel_users_do_initialize();
	}
	else
	{
		setTimeout(function() { mss_photos_sel_users_initialize(); },500);
	}
}


function mss_photos_sel_users_do_initialize()
{
	var photo = objXYWH("bigphoto");

	var sel_users_tagging_div = document.getElementById("sel_users_tagging_div");
	if (sel_users_tagging_div != null)
	{
		sel_users_tagging_div.style.width = photo.w;
		sel_users_tagging_div.style.height= photo.h;
	}

	var ar = getElementsByClassName("sel_users_div");

	if (ar.length > 0)
	{
		for (var i in ar)
		{
			ar[i].style.left   = parseInt(photo.w*ar[i].getAttribute("data-objx")) + "px";
			ar[i].style.top    = parseInt(photo.h*ar[i].getAttribute("data-objy")) + "px";
			ar[i].style.width  = parseInt(photo.w*ar[i].getAttribute("data-objw")) + "px";
			ar[i].style.height = parseInt(photo.h*ar[i].getAttribute("data-objh")) + "px";
		}
	}
}


function mss_photos_sel_users_switch(id,state)
{
	var div = document.getElementById("sel_users_div_"+id);
	var inner_div = document.getElementById("sel_users_div_inner_"+id);
	var inner_semitransparent_div = document.getElementById("sel_users_div_inner_semitransparent_"+id);
	if (state == 1)
	{
		inner_div.style.display = "none";
		inner_semitransparent_div.style.display = "block";
	}
	else if (state == 2)
	{
		inner_div.style.display = "block";
		inner_semitransparent_div.style.display = "none";
	}
	else
	{
		inner_div.style.display = "none";
		inner_semitransparent_div.style.display = "none";
	}
}


function mss_photos_start_tagging()
{
	document.getElementById("sel_users_controls").style.display = "block";
	document.getElementById("sel_users_tagging_div").style.display = "block";
}


function mss_photos_finish_tagging()
{
	document.getElementById("sel_users_controls").style.display = "none";
	document.getElementById("sel_users_tagging_div").style.display = "none";
	document.getElementById("sel_users_drag_div").style.display = "none";
	document.getElementById("sel_users_select_user").style.display = "none";
	document.getElementById("sel_users_friend_name").value = "";
	document.getElementById("sel_users_friend_id").selectedIndex = 0;
}


function mss_photos_cancel_tagging()
{
	mss_photos_finish_tagging();
	mss_photos_friends = [];
}


function mss_photos_save_friend()
{
	var container = objXYWH("sel_users_tagging_div");
	var drag = objXYWH("sel_users_drag_div");
	var sel = document.getElementById("sel_users_friend_id");
	var txt = document.getElementById("sel_users_friend_name");
	mss_photos_friends[mss_photos_friends.length] = {friend_id:sel.options[sel.selectedIndex].value,friend_name:txt.value,x:(drag.x-container.x)/container.w,y:(drag.y-container.y)/container.h,w:drag.w/container.w,h:drag.h/container.h};
}


function mss_photos_next_friend()
{
	mss_photos_save_friend();
	mss_photos_finish_tagging();
	mss_photos_start_tagging();
}


function mss_photos_send_form()
{
	mss_photos_save_friend();
	var form = document.getElementById("sel_users_form");
	for (var i in mss_photos_friends)
	{
		for (var j in mss_photos_friends[i])
		{
			var obj = document.createElement("input");
			obj.name = "sel_users_friends["+i+"]["+j+"]";
			obj.value = mss_photos_friends[i][j];
			form.appendChild(obj);
		}
	}
	form.submit();
}


function mss_photos_start_drag(ev)
{                             
	document.getElementById("sel_users_select_user").style.display = "block";
	var drag_div = document.getElementById("sel_users_drag_div");
	drag_div.style.display = "block";
	var mouse = mouseXY(ev);
	var drag = objXYWH("sel_users_drag_div");

	if ((mouse.x <= drag.x + 10) && (mouse.x >= drag.x) && (mouse.y <= drag.y + 10) && (mouse.y >= drag.y))
	{
		mss_photos_drag_type = "tl";
	}
	else if ((mouse.x <= drag.x + drag.w) && (mouse.x >= drag.x + drag.w - 10) && (mouse.y <= drag.y + 10) && (mouse.y >= drag.y))
	{
		mss_photos_drag_type = "tr";
	}
	else if ((mouse.x <= drag.x + 10) && (mouse.x >= drag.x) && (mouse.y <= drag.y + drag.h) && (mouse.y >= drag.y + drag.h - 10))
	{
		mss_photos_drag_type = "bl";
	}
	else if ((mouse.x <= drag.x + drag.w) && (mouse.x >= drag.x + drag.w - 10) && (mouse.y <= drag.y + drag.h) && (mouse.y >= drag.y + drag.h - 10))
	{                                                                                                                       
		mss_photos_drag_type = "br";
	}
	else if ((mouse.x >= drag.x) && (mouse.x <= drag.x + drag.w) && (mouse.y >= drag.y) && (mouse.y <= drag.y + drag.h))
	{
		mss_photos_drag_type = "move";
	}
	else
	{
		var container = objXYWH("sel_users_tagging_div");
		var l = parseInt(mouse.x - parseInt(drag.w/2) - container.x);
		var t = parseInt(mouse.y - parseInt(drag.h/2) - container.y);
		drag_div.style.left = l + "px";
		drag_div.style.top = t + "px";
		mss_photos_drag_type = "move";
		drag = objXYWH("sel_users_drag_div");
	}

	mss_photos_drag_start_mouse = mouse;
	mss_photos_drag_start_drag = drag;
	mss_photos_drag = 1;
	mss_photos_do_drag(ev);
}


function mss_photos_finish_drag(ev)
{
	mss_photos_drag = 0;
	mss_photos_drag_type = "";
}


function mss_photos_do_drag(ev)
{
	if (mss_photos_drag == 0) return null;


	var mouse = mouseXY(ev);
	var container = objXYWH("sel_users_tagging_div");
	var drag = objXYWH("sel_users_drag_div");
	var new_coords = {};

	mouse.x -= mss_photos_drag_start_mouse.x;
	mouse.y -= mss_photos_drag_start_mouse.y;
	drag.x -= mss_photos_drag_start_drag.x;
	drag.y -= mss_photos_drag_start_drag.y;

	if (mss_photos_drag_type == "tl")
	{
		new_coords.x = mouse.x;
		new_coords.y = mouse.y;
		new_coords.w = mss_photos_drag_start_drag.w - mouse.x;
		new_coords.h = mss_photos_drag_start_drag.h - mouse.y;
	}
	else if (mss_photos_drag_type == "tr")
	{
		new_coords.x = drag.x;
		new_coords.y = mouse.y;
		new_coords.w = mss_photos_drag_start_drag.w + mouse.x;
		new_coords.h = mss_photos_drag_start_drag.h - mouse.y;
	}
	else if (mss_photos_drag_type == "bl")
	{
		new_coords.x = mouse.x;
		new_coords.y = drag.y;
		new_coords.w = mss_photos_drag_start_drag.w - mouse.x;
		new_coords.h = mss_photos_drag_start_drag.h + mouse.y;
	}
	else if (mss_photos_drag_type == "br")
	{
		new_coords.x = drag.x;
		new_coords.y = drag.y;
		new_coords.w = mss_photos_drag_start_drag.w + mouse.x;
		new_coords.h = mss_photos_drag_start_drag.h + mouse.y;
	}
	else
	{
		new_coords.x = mouse.x;
		new_coords.y = mouse.y;
		new_coords.w = drag.w;
		new_coords.h = drag.h;
	}

	new_coords.x += mss_photos_drag_start_drag.x - container.x;
	new_coords.y += mss_photos_drag_start_drag.y - container.y;


	if (new_coords.w > container.w) new_coords.w = container.w;
	if (new_coords.h > container.h) new_coords.h = container.h;
	if (new_coords.w < 30) new_coords.w = 30;
	if (new_coords.h < 30) new_coords.h = 30;
	if (new_coords.x < 0) new_coords.x = 0;
	if (new_coords.y < 0) new_coords.y = 0;
	if (new_coords.x + new_coords.w > container.w) new_coords.x = container.w - new_coords.w;
	if (new_coords.y + new_coords.h > container.h) new_coords.y = container.h - new_coords.h;


	var drag_div = document.getElementById("sel_users_drag_div");
	drag_div.style.left = new_coords.x + "px";
	drag_div.style.top = new_coords.y + "px";
	drag_div.style.width = new_coords.w + "px";
	drag_div.style.height = new_coords.h + "px";

	var inner_div = document.getElementById("sel_users_sel_div");
	var ww = parseInt(new_coords.w - 10);
	var hh = parseInt(new_coords.h - 10);
	inner_div.style.width = ww + "px";
	inner_div.style.height = hh + "px";
}


document.onmouseup = mss_photos_finish_drag;
//setInterval(function() { var div = document.getElementById("sel_users_sel_div"); if (div!=null) div.innerHTML = mss_photos_drag + " " + mss_photos_drag_type; },100);
            

function GetX(le)
{
	var x=0;
	while (le)
	{
		x += parseInt(le.offsetLeft);
		le = le.offsetParent;
	}
	return x;
}


function GetY(le)
{
	var y=0;
	while (le)
	{
		y += parseInt(le.offsetTop);
		le = le.offsetParent;
	}
	return y;
}


function objXYWH(div_name)
{
	if (typeof div_name != "object")
		div = document.getElementById(div_name);
	else
		div = div_name;

	if (div == null || typeof div == "undefined") return false;

	var x = GetX(div);
	var y = GetY(div);
	var w = div.clientWidth;
	var h = div.clientHeight;

//	mss_photos_sel_users_debug = "div_name=" + div_name + " div=" + div + " x=" + x + " y=" + y + " w=" + w + " h=" + h;

	return {x:x,y:y,w:w,h:h};
}

		
function mouseXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }

  return {"x":x, "y":y};
}


function getElementsByClassName(classname, node) { if (!node) { node = document.getElementsByTagName('body')[0]; } var a = [], re = new RegExp('\\b' + classname + '\\b'); els = node.getElementsByTagName('*'); for (var i = 0, j = els.length; i < j; i++) { if ( re.test(els[i].className) ) { a.push(els[i]); } } return a; }


