
var providers        = new Object();
//~ var contacts         = new Object();
//~ contacts.mail        = new ContactType("mail", "email");
//~ contacts.nwrk        = new ContactType("nwrk", "social_network");
//~ contacts.size        = 0;
//~ contacts.oldHeight   = 0;

var rafIsActive      = false;
var rafRequestedType = false;
var personalMsgValid = true;
var personalMsg      = "";
var str_raf_myname   = "";

function ContactType(name,fullname) {
  this.name = name;
  this.fullname = fullname;
  this.list = new Object();
  this.size = 0;
  this.oldHeight = 0;
  this.checked = 0;
}

function Contact(name, email) {
	this.name = name;
	this.email = email;
}

var contacts = new Array();

function Provider(type, name, uid, pwd) {
  this.type = type;
  this.name = name;
  this.uid  = uid;
  this.pwd  = pwd;
}

function getTypeName(type) {
  if (contacts[type] == undefined)
    for (var t in contacts)
      if (type == contacts[t].fullname)
        type = contacts[t].name;
  if (contacts[type] == undefined)
    return false;
  else
    return type;
}

function addContact() {
  rafButtonControl(true);

  var name = $("#raf_add_name").val();
  var email = $("#raf_add_mail").val();

  if (verifyEmail(email)) {
		var row = "<tr>";
		row += "<td width=\"178\">" + name + "</td>";
		row += "<td>" + email + "</td>"
		row += "<td width=\"13\" align=\"right\"><img src=\"img/raf/trashcan.gif\" onClick=\"removeContact($(this), '" + email + "')\" width=\"12\" height=\"13\" style=\"cursor:pointer;\"></td>"
		row += "</tr>";

		$("#raf_invitations").append(row);
		$("#raf_add_name").val("<"+ str_raf_fullname +">");
		$("#raf_add_mail").val("<"+ str_raf_mail +">");

		contacts.push(new Contact(name, email));
	}
	else
		alert(str_raf_could_not_add+" "+name+" ("+contact+"). "+str_raf_contact_not_verified);

  rafButtonControl(false);
}

function removeContact(a, email) {
	var i = 0;
	var found = false;
	for ( ; i < contacts.length; i++) {
		if (contacts[i].email == email) {
			found = true;
			break;
		}
	}

	if (found)
		contacts.splice(i, 1);

	a.closest('tr').remove();
}


function startRAF() {
  lightboxInit();
  rafIsActive = true;
  showContent(["","closebutton","notitle"], "<table width=435><tr><td align=center><img src=\"img/ajax_loader.gif\" alt=\"Loading\" width=\"16\" height=\"16\"></td></tr></table>");
  rafGetTemplates("start");
}

function endRAF() {
	contacts = new Array();
  rafIsActive = false;
}

function rafAjaxResponse(readyState, response, responseParameter) {
  if (readyState == 4 && rafIsActive) {
    eval(response);
    if (typeof rafTemplates == "object") {
      raf_str_contactsdiv = "contactsdiv";
      raf_str_messagediv = "messagediv";
      rafTitle        = doTheReplace(rafTemplates["raftitle"]);
      rafMailWin      = doTheReplace(rafTemplates["rafmailwindow"]);
      rafNwrkWin      = doTheReplace(rafTemplates["rafnwrkwindow"]);
      rafMailGet      = doTheReplace(rafTemplates["rafmailget"]);
      rafMailList     = doTheReplace(rafTemplates["rafmaillist"]);
      rafNwrkGet      = doTheReplace(rafTemplates["rafnwrkget"]);
      rafNwrkList     = doTheReplace(rafTemplates["rafnwrklist"]);
      rafBody         = doTheReplace(rafTemplates["rafbody"]);
      rafTitlePreview = doTheReplace(rafTemplates["raftitlepreview"]);
      rafBodyPreview  = doTheReplace(rafTemplates["rafbodypreview"]);
      rafBodyEnd      = doTheReplace(rafTemplates["rafbodyend"]);
      rafDefMsg      = doTheReplace(rafTemplates["rafdefmsg"]);
      showContentMain();
    }
    else {
      alert(str_raf_error_retr_form);
    }
  }
}

function rafAjaxResponseContacts(readyState, response, responseParameter) {
  if (readyState == 4 && rafIsActive) {
    if (document.getElementById("ajax_loader_"+rafRequestedType))
      document.getElementById("ajax_loader_"+rafRequestedType).style.display = 'none';
    if(response == -1) { // error
      alert(str_raf_login_failed);
    }
    else {
      eval(response);
      if (rafRequestedType != false)
        showContentList(rafRequestedType);
    }
    rafButtonControl(false);
    rafRequestedType = false;
  }
}

function rafAjaxResponseSubmit(readyState, response, responseParameter) {
  if (readyState == 4 && rafIsActive) {
    showContentEnd();
    rafButtonControl(false);
  }
}

function showContent(title, body, closeaction) {
  if (rafIsActive) {
    lightboxShow(450, [title, "lefttitle"], body, "", "", "", "", "endRAF();" );
    lightboxSetPosY(90);
  }
}

function rafButtonControl(busy) {
  if (busy == true) {
    disableButton("rafSendBtn");
    disableButton("rafReturnBtn");
    disableButton("rafPreviewBtn");
    disableButton("rafContactBtn");
    disableButton("rafMailBtn");
    disableButton("rafNwrkBtn");
    disableButton("rafGetMailBtn");
    disableButton("rafGetNwrkBtn");
    disableButton("rafBackMailBtn");
    disableButton("rafBackNwrkBtn");
  }
  else if (busy == false) {
    if (personalMsgValid)
      reenableButton("rafSendBtn");
    else
      disableButton("rafSendBtn");
    reenableButton("rafReturnBtn");
    reenableButton("rafPreviewBtn");
    reenableButton("rafContactBtn");
    reenableButton("rafMailBtn");
    reenableButton("rafNwrkBtn");
    reenableButton("rafGetMailBtn");
    reenableButton("rafGetNwrkBtn");
    reenableButton("rafBackMailBtn");
    reenableButton("rafBackNwrkBtn");
  }
}

function showContentMain() {

  if (objHide = document.getElementById('preview_overlay') )
    objHide.style.display = "none";

  showContent([rafTitle,"closebutton"], rafBody);

  rafButtonControl(false);
  divsShowOnly('raf_contacts', 'raf_contacts');
  divsShowOnly('raf_message', 'raf_message');

  if (str_raf_myname != "")
    document.getElementById("rafaMyName").value = str_raf_myname;

  if(personalMsg.length == 0)
    document.getElementById("raf_message_txt").value = rafDefMsg.replace(/<br>/g, "\n");
  else
    document.getElementById("raf_message_txt").value = personalMsg;
  checkPersonalMsg(500,'rafMsgCnt',str_raf_msg_cnt);
}

function showContentList(type) {
  type = getTypeName(type);
  if (type == "mail")
    layer_write("raf_mail_top",rafMailList);
  else if (type == "nwrk")
    layer_write("raf_nwrk_top",rafNwrkList);
  var status = new Array('joined', false, 'invited');
  showContacts(type, status, "raf_"+type);
  showContacts("all", true, "raf_contact");
}

function showContentPreview() {
  var cnt = 0;
  for (var type in contacts) {
    if (typeof contacts[type] == "object")
      cnt = cnt + contacts[type].checked;
  }
  if (cnt > 0) {
    alert(str_raf_error_active_selections);
    reenableButton("rafPreviewBtn");
    return;
  }

  for (var type in contacts)
    if (typeof contacts[type] == "object")
      contacts[type].checked = 0;

  personalMsg = document.getElementById("raf_message_txt").value;
  str_raf_myname  = document.getElementById("rafaMyName").value;

  var personalMsgTmp = personalMsgValidate();
  showContent([rafTitlePreview,"notitle"], doTheReplace(rafBodyPreview) );
  if (personalMsgTmp != "" && personalMsgTmp.length >= 4) {
    layer_write("personal_msg", ""+personalMsgTmp+"<br><br>/"+str_raf_myname);
  }
  var objHide = document.getElementById('preview_overlay');
  objHide.style.top = 0;
  objHide.style.left = 0;
  objHide.style.width = 600;
  objHide.style.height = document.getElementById('lightbox').offsetHeight - 50;
  objHide.style.display = "block";

  rafButtonControl(false);
}

function showContentEnd() {
  showContent(["","closebutton"], doTheReplace(rafBodyEnd) );
}

function backToGet(type) {
  setTimeout("__backToGet('"+type+"')", 100);
}

function __backToGet(type) {
  removeAllContacts(type, false);
  type = getTypeName(type);
  if (type == "mail") {
    contacts[type].checked = 0;
    if (rafMailBody != rafMailWin)
      rafMailBody = rafMailWin;
    layer_write("maildiv",rafMailBody);
    layer_write("raf_mail_top",rafMailGet);
    divsShowOnly('raf_import_mail', 'raf_import');
  }
  else if (type == "nwrk") {
    contacts[type].checked = 0;
    if (rafNwrkBody != rafNwrkWin)
      rafNwrkBody = rafNwrkWin;
    layer_write("nwrkdiv",rafNwrkBody);
    layer_write("raf_nwrk_top",rafNwrkGet);
    divsShowOnly('raf_import_nwrk', 'raf_import');
  }
  rafButtonControl(false);
}

function rafSelectAll(type, status) {
  var cboxs = document.getElementsByTagName("INPUT");

  var inputs = document.getElementsByTagName("INPUT");
  for(i = 0; i < inputs.length; i++) {
    input = inputs[i];
    str = input.id;
    if (input.type == "checkbox") {
      if (str.substr(0, type.length+1) == type+"&") {
        if (input.checked != status) {
          input.checked = status;
          trackChecked(input,true);
        }
        else
          input.checked = status;
      }
    }
  }

}

function rafAjaxAddFriend(userId, divId) {
  ajaxCall('ajax_com/raf.php', 'val=RAFAddFriend&sport='+ajaxSport+'&uid='+userId, 'writeLayer', divId);
}

function rafGetTemplates(templateId) {
  ajaxCall('ajax_com/raf.php','val=getRAFTemplate&sport='+ajaxSport+'&template='+templateId, 'rafAjaxResponse', '');
}

function getRAFContacts(type) {
  rafButtonControl(true);
  var uid = document.getElementById("raf_get"+type+"uid").value.replace(/<.*>/g,"invalid");
  var pwd = document.getElementById("raf_get"+type+"pwd").value.replace(/<.*>/g,"invalid");
  rafContactsRequest(type,uid,pwd);
}

function rafContactsRequest(type,uid,pwd) {
  if (rafRequestedType == false)
    rafRequestedType = type;
  if (document.getElementById("raf_get"+type+"provider")) {
    var pid = document.getElementById("raf_get"+type+"provider").value;
    if (!providers[pid])
      providers[pid] = new Provider(type, pid, uid, pwd);
  }
  else
    var pid = contacts[type].fullname;

  if (document.getElementById("ajax_loader_"+type)) {
    document.getElementById("ajax_loader_"+type).style.display = 'block';
  }
  pwd = escape(pwd);
  ajaxCall('ajax_com/raf.php','val=getRAFContactsRequest&sport='+ajaxSport+'&type='+contacts[type].fullname+'&provider='+pid+'&uid='+uid+'&pwd='+pwd, 'rafAjaxResponseContacts', '');
}


function rafContactsSubmit() {
	var name = $("#raf_add_name").val();
	var email = $("#raf_add_mail").val();

	if (verifyEmail(email)) {
		contacts.push(new Contact(name, email));
	}
	
	rafButtonControl(true);
	if(document.getElementById("rafaMyName"))
		str_raf_myname = document.getElementById("rafaMyName").value;
	if (str_raf_myname.indexOf("<") >= 0)
		str_raf_myname = "";
	if(document.getElementById("raf_message_txt"))
		personalMsg = document.getElementById("raf_message_txt").value;
	
	var personalMsgTmp = personalMsgValidate();
	var str_contacts = "";

	for (var i = 0; i < contacts.length; i++) {
		if (str_contacts != "")
			str_contacts += "::";
		str_contacts += contacts[i].name + "," + contacts[i].email;
	}
	
	if (document.getElementById("ajax_loader_send"))
		document.getElementById("ajax_loader_send").style.display = 'block';
	
	ajaxCall('ajax_com/raf.php','val=submitRAFContacts&sport='+ajaxSport+'&myname='+str_raf_myname+'&contacts='+escape(str_contacts)+'&message='+escape(personalMsg), 'rafAjaxResponseSubmit', '');
}


function personalMsgValidate() {
  personalMsg = personalMsg.replace(/<.*>/g,"").replace(/^[\s]+/,'').replace(/[\s]+$/,'');
  var personalMsgTmp = personalMsg.replace(/[\n]/g,"<br>");
  return personalMsgTmp.replace(/[\s]{2,}/g," ");
}

function checkPersonalMsg(maxlength, outid, text) {
  if (document.getElementById("raf_message_txt")) {
    var obj = document.getElementById("raf_message_txt");
    personalMsgValid = showTextCnt(obj, maxlength, outid, text);
  }
  if (personalMsgValid)
    reenableButton("rafSendBtn");
  else
    disableButton("rafSendBtn");

}


