var popupWidget;
var startTime;

/****************************
*
*   Page init
*
*****************************/

function init()
{
	//popupWidget = new Spry.Widget.HTMLPanel("popupPanel");
}

/****************************
*
*   Show add friend box
*
*****************************/

function addFriend(friendid)
{
	document.getElementById('overlay_black').style.display = '';
	document.getElementById('popup_box').style.display = '';
	
	//popupWidget.addObserver();
	popupWidget.loadContent('/boxes/addfriendbox.php?p2='+friendid, {id: "popupPanel", evalScripts:true });
}

/****************************
*
*   Handles editable labels
*
*****************************/


function clickEditableLabel(fieldid)
{
	document.getElementById('label_'+fieldid).style.display = 'none';
	document.getElementById('field_'+fieldid).style.display = '';
	//document.getElementById('field_'+fieldid).value = '';
	document.getElementById('field_'+fieldid).focus();
}

function closeEditableLabel(fieldid)
{
	document.getElementById('label_'+fieldid).style.display = '';
	document.getElementById('field_'+fieldid).style.display = 'none';
}

function keyDownLabelField(event, fieldid, fieldname, source)
{
	var code = -1;
	if (event.which == null)
	{
		code = event.keyCode;    // IE
	}
	else if (event.which > 0)
	{
		code = event.which;	  // All others
	}
	else
	{
		 // special key
	}

	if (code == 13)
	{
		// Enter key
		trace("Enter key");
		updateLabelField(fieldname,fieldid, source);
	}
	else if (code == 27)
	{
		// Esc key
		closeEditableLabel(fieldid);
	}
}

function updateLabelField(fieldname,fieldid, source)
{
	var fieldValue = document.getElementById('field_'+fieldid).value;
	
	// Spry
	var formData = "fieldname="+encodeURIComponent(fieldname)+"&value="+encodeURIComponent(fieldValue)+"&time="+unix_time();

	if (source == 'person' || source == undefined)
	{
		var url = '/json/updatefield.php';
		//Spry.Debug.trace(formData);
		Spry.Utils.loadURL('POST', url, true, updateLabelFieldAnswer, {postData: formData, headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}});
	}
	else if (source == 'event')
	{
		formData += "&id="+eventid;
		var url = '/apps/events/updateeventfield.php';
		//Spry.Debug.trace(formData);
		Spry.Utils.loadURL('POST', url, true, updateLabelFieldAnswer, {postData: formData, headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}});
	}
	else if (source == 'catalog')
	{
		formData += "&id="+catalogid;
		var url = '/apps/catalog/updatefield.php';
		//Spry.Debug.trace(formData);
		Spry.Utils.loadURL('POST', url, true, updateLabelFieldAnswer, {postData: formData, headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}});
	}
	
	// Close field
	closeEditableLabel(fieldid);
	
	// Update element
	updateElementContent('label_'+fieldid, fieldValue);
}

function updateLabelFieldAnswer(request) 
{
	var text = request.xhRequest.responseText;
	if (myid == 9 || myid == 322)
	{
		//Spry.Debug.trace(text);
	}
}


/**********************************
*
*   Creates a link from given name + domain
*
***********************************/

function mailLink(name,domain)
{
	var link = '<a href="mailto:'+name+'@'+domain+'">'+name+'@'+domain+'</a>';
	return link;
}


/**********************************
*
*   Updates content of an element
*
***********************************/

function updateElementContent(elementid,content)
{
	writeText(elementid, content);
}



/****************************
*
*   Debug functions
*
*****************************/

function trace(str)
{
	var secs = msTime() - startTime;
	//Spry.Debug.trace(secs+" ms. - "+str);
}

function unix_time()
{
	var now = new Date();
	return parseInt(now.getTime().toString().substring(0,10));
}

function msTime()
{
	var now = new Date();
	return now.getTime();
}

startTime = msTime();
trace("Page start");
