﻿// Author: JcMorin for GenoPro.com - December 2007
// you can copy, modify, distribute if you like.

// Send Message 
var sendMsgToUser = 0;
function openSendMsg(recipientUserId, recipientDisplayName) {
  sendMsgToUser = recipientUserId;
  document.getElementById('sendMessageToUsername').innerHTML = recipientDisplayName;
  document.getElementById('sendMessageToFrom').innerHTML = currentUserName;
  $find(ctrlModalSendMessage).show(); 
  document.getElementById(ctrltxtSendMessageTitle).focus();
}

function sendMessage() 
{
   setGlobalMessage('Please Wait while sending message...', 1);
   var title = document.getElementById(ctrltxtSendMessageTitle).value;;
   var msg = document.getElementById(ctrltxtSendMessageText).value;
   Ws.SendMessage(sendMsgToUser, title, msg, sendMessageCallback);
}

function sendMessageCallback(result, eventArgs) {
  if (result.ReturnCode == 0 || result.ReturnCode == 1) {
    // success
    var successMessage = 'Message has been delivered';
    if (result.ReturnCode == 1) {
      // delivered with delay (greylisting)
      successMessage = 'Message has been sent and should be received within few minutes';
    } 
    
     setGlobalMessage(successMessage, 0);
    
    // clear the text field for next message
    document.getElementById(ctrltxtSendMessageTitle).value = '';
    document.getElementById(ctrltxtSendMessageText).value = '';
  } else {
    // error
    setGlobalMessage('Message cound not be delivered <br />' + result.ErrorMessage, 0);
  }
}

// backupfiles
function deleteBackup(idBackup, backupname) {
 if (confirm('Are you sure you want to delete the backup ' + backupname + ' ?')) {
    Ws.BackupDelete(idBackup);
    __doPostBack(ctrlPanelBackup, ''); 
  }
}
function deleteReceiveFile(idFile, backupname) {
 if (confirm('Are you sure you want to delete the file ' + backupname + ' ?')) {
    Ws.BackupDelete(idFile);
    __doPostBack(ctrlPanelReceiveFiles, ''); 
  }
}
// update publication
var publicationId = 0;
function openUpdatePublication(id, title, folder, folderlabel, isPublic, password) {
  publicationId = id;
  document.getElementById('txtEditTitle').value = title;
  var folderTextBox = document.getElementById('txtEditFolderName');
  folderTextBox.value = folder;
  if (folder == '') {
    folderTextBox.disable = false; 
  }
  document.getElementById('txtEditFolderLabel').value = folderlabel;
  
  // security
  if (isPublic) {
    document.getElementById('radPublic').checked = 'checked';
    document.getElementById('txtPassword').value = '';
  } else if (password == '') {
    document.getElementById('radHidden').checked = 'checked';
    document.getElementById('txtPassword').value = '';
  } else {
    document.getElementById('radPassword').checked = 'checked';
    document.getElementById('txtPassword').value = password;
  }
  
  // set the statistic link
  document.getElementById('lnkPublicationStats').href = 'http://familytrees.genopro.com/WebStats.aspx?id=' + publicationId
  
  $find(ctrlmodalUpdatePublication).show();
  document.getElementById('txtEditTitle').focus();
}

function onUpdatePublication() {
  var isPublic = true;
  var password = '';
  if (document.getElementById('radPublic').checked) {
    isPublic = true;
  } else if (document.getElementById('radHidden').checked) {
    isPublic = false;
  } else {
    isPublic = false;
    password = document.getElementById('txtPassword').value;
  }
  Ws.PublicationUpdate(publicationId, 
                       document.getElementById('txtEditTitle').value,
                       document.getElementById('txtEditFolderName').value,
                       document.getElementById('txtEditFolderLabel').value,
                       isPublic,
                       password,
                       onUpdatePublicationCallback);
}

function onUpdatePublicationCallback(result, eventArgs) {
  if (result) {
    __doPostBack(ctrlPanelPublications, '');                  
  } else {
    alert('Update failed');
  }
}

function deletePublication(id, title) {
  if (confirm('Are you sure you want to delete the entire publication ' + title + ' ?')) {
    Ws.PublicationDelete(id);
    __doPostBack(ctrlPanelPublications, ''); 
  }
}




// Add/Remove to friend
var friendUserId = 0;
var panelToUpdate;
function openAddFriend(recipientUserId, recipientDisplayName, panel) {
  friendUserId = recipientUserId;
  panelToUpdate = panel;
  addFriend();
  /* temporary remove the personal note,since it's never display anywhere.
  document.getElementById('lblAddFriendName').innerHTML = recipientDisplayName;
  $find(ctrlModalNewFriend).show(); 
  document.getElementById(ctrltxtAddFriendNote).focus();*/
}

function addFriend() 
{
  Ws.AddFriend(friendUserId, document.getElementById(ctrltxtAddFriendNote).value, addFriendCallback); 
}

function addFriendCallback(result, eventArgs) {
  if (result) {
    if (panelToUpdate === undefined) {
      __doPostBack(ctrlPanelFriend, '');
    } else {
      __doPostBack(panelToUpdate, '');
    }
  }
}

function removeFriend(recipientUserId, recipientDisplayName, panel) {
  friendUserId = recipientUserId;
  panelToUpdate = panel;
  if (confirm("Are you sure you wish to remove " + recipientDisplayName + " from your friend list?")) {
    Ws.RemoveFriend(friendUserId, addFriendCallback);     
  }
}

function addFriendByUsername() {
  Ws.AddFriendByUsername(document.getElementById(ctrltxtAddFriend).value, addFriendByUsernameCallback);
}

function addFriendByUsernameCallback(result, eventArgs) {
  if (result) {
    if (panelToUpdate === undefined) {
      __doPostBack(ctrlPanelFriend, '');
    } else {
      __doPostBack(panelToUpdate, '');
    }
    document.getElementById(ctrltxtAddFriend).value = '';
  } else {
    setGlobalMessage('Cannot find user');
  }
}



// set the primary email
var msgEmailDetail;
function onSetPrimaryEmail(email) {
  msgEmailDetail = email;
  Ws.SetPrimaryEmail(email, onSetPrimaryEmailSuccess);
}

function onSetPrimaryEmailSuccess(result, eventArgs)
{
  if (result) {
    emailMsg("Primary Email is now: " + msgEmailDetail);
    __doPostBack(ctrlPanelEmails, ''); // refresh panel
  } else {
    emailMsg("*Error* Primary Email not set");
  }
  
}

function onAddEmail() {
  var email = document.getElementById(ctrltxtAddEmail).value;
  msgEmailDetail = email;
  Ws.AddEmail(email, onAddEmailSuccess); 
}

function onAddEmailSuccess(result, eventArgs)
{
  if (result == 0) {
    emailMsg("Email " +  msgEmailDetail + " added");
    __doPostBack(ctrlPanelEmails, ''); // refresh panel
    document.getElementById(ctrltxtAddEmail).value = "";
  } else if (result == -1) {
    emailMsg("The email  " +  msgEmailDetail + " is invalid or the server do not exist");
  } else if (result == -2) {
    emailMsg("The email " +  msgEmailDetail + " is already used in another account");
  }
}

function onRemoveEmail(email) {
   msgEmailDetail = email;
   Ws.DeleteEmail(email, onRemoveEmailSuccess); 
}

function onRemoveEmailSuccess(result, eventArgs)
{
  if (result) {
    emailMsg("Email " +  msgEmailDetail + " removed");
    __doPostBack(ctrlPanelEmails, ''); // refresh panel
  } else {
    emailMsg("The email " +  msgEmailDetail + " could not be removed");
  }
}

function emailMsg(msg) {
   var msgBox = document.getElementById('lblEmailMsg');
   msgBox.innerHTML = msg;
   msgBox.style.display = 'block';
}

// registration key key

function deleteKey(registrationKey) {
  if (confirm('Are you sure you want remove key ' + registrationKey + '?')) {
    Ws.DeleteKey(registrationKey, onDeleteKeySuccess);
  }
}

function onDeleteKeySuccess(result, eventArgs) {
    __doPostBack(ctrlPanelKeys, ''); // refresh panel
}

// display the transfer key popup
function onTransferKey(registrationKey) {
  document.getElementById('lblTransferKey').innerHTML = registrationKey;
  $find('modalTransferKey').show(); 
  document.getElementById('txtTransferToEmail').focus();
}
function onTransferKeyConfirm() {
    alert('not implemented, sorry!');
   /* Ws.ChangeCollaboratorRank(idProject,
                             _collaboratorId,
                             document.getElementById('lstUserRank').value, 
                             onTransferKeySuccess);*/
}
function onTransferKeySuccess(result, eventArgs)
{
   //__doPostBack('panelCollaborators', '');
}


function showHiddenData(obj) {
  // get to the parent news-item
	var newsitem = obj;
  while (newsitem.className != 'news-item' ) {
		newsitem = newsitem.parentNode;
	}

  // check next sibling that are hidden
	var sibling = newsitem.nextSibling;
	while (sibling !== null) {
		if (sibling !== null && sibling.attributes && sibling.attributes['hidden']) {	
			sibling.style.display = 'block';
		}
    sibling = sibling.nextSibling;
	}
}
