// INTERNAL VARIABLES
var dd_menuTally = 0;
var dd_itemTally=0;
var dd_menus = new Array;
var dd_defaultTextColor = "#2f2f2a";
var dd_defaultBackgroundColor = "#fafafa";
var dd_defaultAltBackgroundColor = "#efecea";
var dd_defaultSelectBackgroundColor = "#dfddd6";
var dd_defaultSelectTextColor = "#5a5f4f";
var dd_defaultSeparatorColor = "#cfcfca";
var dd_defaultFontFamily = "verdana,sans-serif";
var dd_defaultFontSize = "10px";
var dd_defaultTextWeight = "normal";
var dd_tempBackgroundColor = dd_defaultBackgroundColor;
var dd_currentMenu = 0;
var dd_ignoreBodyClick = false;

// INTERNAL FUNCTIONS

function dd_nextMenuId () {
	dd_menuTally++ ;
	return dd_menuTally;
}

function dd_nextItemId () {
	dd_itemTally++ ;
	return dd_itemTally;
}

// METHOD FUNCTIONS: MENU OBJECT //

function dd_addItem (name, title, sepType) {
	var item = new dd_menuItem();
	item.name = name;
	item.title = title;
	item.separatorType = sepType;
	this.items[this.items.length] = item;
	return item.id;
}

function dd_getItem (menu, name) {
	for (var i=0;i < menu.items.length ; i++ ) {
		if (menu.items[i].itemName==name) {
			return menu.items[i];
		}
	}
}

// OBJECT CLASSES

function dd_menu (name, title) {
	this.id = dd_nextMenuId();
	this.menuName = name;
	this.parentId = 0;
	this.title = title;
	this.showAltRow = false;
	this.items = new Array;
	this.itemBackgroundColor = dd_defaultBackgroundColor;
	this.itemAltBackgroundColor = dd_defaultAltBackgroundColor;
	this.itemTextColor = dd_defaultTextColor;
	this.separatorColor = dd_defaultSeparatorColor;
	this.getItem = function (name) {return dd_getItem(this, name)};
	this.visible = false;
}

function dd_menuItem (name, title, sepType) {
	this.id = dd_nextItemId();
	this.itemName = name;
	this.title = title;
	this.separatorType = sepType;
	this.backgroundColor = dd_defaultBackgroundColor;
	this.textColor = dd_defaultTextColor;
}

// PUBLIC FUNCTIONS

function dd_createMenu (name,title) {
	var menu = new dd_menu(name,title);
	dd_menus[dd_menus.length] = menu;
	return menu;
}

function dd_addMenuItem (menuName, itemName, itemTitle, itemSepType) {
	for (var i=0;i < dd_menus.length ; i++ ) {
		if (dd_menus[i].menuName==menuName) {
			var item = new dd_menuItem(itemName,itemTitle, itemSepType);
			dd_menus[i].items[dd_menus[i].items.length] = item;
			return item;
		}
	}
}

function dd_getMenu (name) {
	for (var i=0;i < dd_menus.length ; i++ ) {
		if (dd_menus[i].menuName==name) {
			return dd_menus[i];
		}
	}
}

function dd_initMenuByName (name, useUniqueStyleName) {
	var menu = dd_getMenu (name);
	dd_initMenuByRef (menu, useUniqueStyleName);
}

function dd_initMenuByRef (menu, useUniqueStyleName) {
	var longest_row = 0;
	var div = document.createElement("DIV");	// create menu container div
	if (useUniqueStyleName==true){
		div.className = "dd_menu_container_" + menu.menuName;
	} else {
		div.className = "dd_menu_container";
	}
	div.id = "dd_" + menu.id;
	div.style.padding = "2px";
	div.style.margin = "2px";
	div.style.width = "250px";
	div.style.backgroundColor = "#dfdfdf";
	div.style.border = "1px solid #ffffff";
	div.style.borderBottom = "1px solid #888888";
	div.style.borderRight = "1px solid #888888";
	div.style.position = "absolute";
	div.style.display = "none";
	var items = menu.items;
	var row = 0;
	for (var i = 0;i < items.length ; i++ ) {
		var row_color = menu.itemBackgroundColor;
		row++ ;
		if ((row==2) && (menu.showAltRow==true) ) {
			row = 0;
			row_color = menu.itemAltBackgroundColor;
		}
		var rowdiv = document.createElement("DIV");	
		rowdiv.style.color = menu.itemTextColor;
		rowdiv.style.backgroundColor = row_color;
		rowdiv.style.fontFamily = "verdana,sans-serif";
		rowdiv.style.fontSize = "11px";
		rowdiv.style.borderTop = "1px solid " + row_color;
		rowdiv.style.padding = "3px 6px 3px 18px";
		rowdiv.innerHTML = items[i].title;
		rowdiv.style.cursor = "pointer";
		if (items[i].separatorType==1)	{
			var seprow_wrapper = document.createElement("DIV");
			seprow_wrapper.style.backgroundColor = menu.itemBackgroundColor;
			seprow_wrapper.style.height = "6px";
			seprow_wrapper.style.overflow = "hidden";
			var seprow = document.createElement("DIV");
			seprow.style.height = "3px";
			seprow.style.overflow = "hidden";
			seprow.style.backgroundColor = menu.itemBackgroundColor;
			seprow_wrapper.appendChild(seprow);
			seprow = document.createElement("DIV");
			seprow.style.height = "2px";
			seprow.style.overflow = "hidden";
			seprow.style.borderTop = "1px dashed " + menu.separatorColor;
			seprow.style.backgroundColor = menu.itemBackgroundColor;
			seprow_wrapper.appendChild(seprow);
			div.appendChild(seprow_wrapper);
		}
		if (rowdiv.width > longest_row){
			longest_row = rowdiv.width;
		}
		rowdiv.dd_itemIndex = i;
		rowdiv.dd_menuId = menu.id;
		rowdiv.onmouseover = function(){dd_tempBackgroundColor = this.style.backgroundColor; this.style.backgroundColor = dd_defaultSelectBackgroundColor; this.style.color = dd_defaultSelectTextColor; };
		rowdiv.onmouseout = function(){this.style.backgroundColor = dd_tempBackgroundColor; this.style.color = "#222222";};
		rowdiv.onmouseup = function(){dd_doAction(this);};
		rowdiv.onmousedown = function(){dd_ignoreBodyClick = true;};
		div.appendChild(rowdiv);
	}
	seprow = document.createElement("DIV");
	seprow.style.height = "2px";
	seprow.style.overflow = "hidden";
	seprow.style.backgroundColor = menu.itemBackgroundColor;
	div.appendChild(seprow);
	document.getElementById('dropdown').appendChild(div);
}

function dd_showMenuById (id, anchorObj) {
	var div = document.getElementById("dd_" + id);
	var rec = getRectByRef(anchorObj);
	div.style.left = rec.left + "px";
	div.style.top = rec.bottom + "px";
	div.style.width = rec.right - rec.left + 60;
	div.style.display = "block";
	dd_menus[id - 1].visible = true;
	dd_currentMenu = id;
}

function dd_showMenuByName (name, anchorObj) {
	var menu = dd_getMenu (name);
	dd_showMenuById(menu.id, anchorObj);
}

function dd_hideMenuByName (name) {
	var menu = dd_getMenu (name);
	var div = document.getElementById("dd_" + menu.id);
	div.style.display = "none";
	menu.visible = false;
	dd_currentMenu = 0;
}

function dd_hideCurrentMenu () {
	if ((dd_ignoreBodyClick==false) && (dd_currentMenu != 0)) {
		var menu = dd_menus[dd_currentMenu - 1]
		var div = document.getElementById("dd_" + menu.id);
		div.style.display = "none";
		menu.visible = false;
		dd_currentMenu = 0;
		if (menu.button){
			menu.button.className = weyou + "dropdown";
		}
	} else {
		dd_ignoreBodyClick = false;
	}
}

function dd_toggleMenu (name, anchorObj) {
	var menu = dd_getMenu (name);
	if (menu.id==dd_currentMenu) {
		dd_hideCurrentMenu();
	} 
	else {
		dd_showMenuById (menu.id, anchorObj);
		dd_ignoreBodyClick = true;
	}
}

function dd_itemClick (menuId, itemIndex) {
	dd_ignoreBodyClick = true;
}


// Spotted functions

function dd_doAction (rowdiv) {
	var menu = dd_menus[rowdiv.dd_menuId - 1];
	var item = menu.items[rowdiv.dd_itemIndex];
	if (menu.menuName == 'galleries') {
		jumpToGallery(item.itemName);
	}
	if (menu.menuName == 'scrapbooks') {
		var key = item.itemName;
		var items =  key.split("_");
		var sbid = new Number (items[1]);
		if (sbid > 0){
			addToScrapbook (currentPhotoId, currentGalleryId, currentUserId, items[1]);
		} else {	
				location.href = "/user/member_scrapbooks.php";
		}
	}
}

function jumpToGallery (key) {
	var items =  key.split("_");
	location.href = "gallery.php?gallery=" + items[1];
}

function addToScrapbook (pid,gid,uid,sid) {
	var src = "add_to_scrapbook.php?photo_id=" + pid + "&gallery_id=" + gid + "&user_id=" + uid + "&scrapbook_id=" + sid;
	location.href = src;
}

function dd_bodyClick () {
	dd_hideCurrentMenu();
}