function addScript(src, cb){
    if(!isScriptLoadedInDocument(src)){
        var s = document.createElement("script");
        if(s.addEventListener){
            Event.observe(s, "load", cb);
        } else {
            s.onreadystatechange = function(){
                if(this.readyState == "complete"){
                    cb();
                }
            }
        }
        s.setAttribute("src", src);
        s.setAttribute("type", "text/javascript");
        document.body.appendChild(s);
    } else {
        cb();
    }
}

function isScriptLoadedInDocument(src){
    var scripts = document.getElementsByTagName("script");
    for(var i=0;i<scripts.length;i++){
        if(scripts[i].getAttribute("src") == src){
            return true;
        }
    }
    return false;
}

function message_update(timestamp, from, message, network){
  var el = $("message_status");
  var img = el.getElementsByTagName("img")[0];
  var spans  = el.getElementsByTagName("span");
  if(from == "admin"){
    if(message.match(/unavailable/)){
      img.src =  "/images/chat_declined.jpg";
      spans[0].innerHTML = "UNAVAILABLE";
      spans[1].innerHTML = "Your chat request was not accepted"
    } else {
      img.src = "/images/chat_accepted.jpg";
      spans[0].innerHTML = "ACCEPTED";
      spans[1].innerHTML = "You are now chatting"
    }
  }
  var ifr = $("chat_messages");
  var nid = timestamp.getTime().toString();
  addMessage(nid, from, message, ifr);
  highlight_message(ifr, nid);
}

function addMessage(id, from, message, frame){
  var d = frame.contentWindow.document.createElement("div");
  d.setAttribute("id", id);
  d.innerHTML = "<span class='message from'>"+from+":</span>"+
                  "<span class='message body'>"+message+"</span>";
  frame.contentWindow.document.body.appendChild(d);    
  return d;
}

function highlight_message(frame, id){
  new frame.contentWindow.Effect.Highlight(id);
  new frame.contentWindow.Effect.ScrollTo(id);
}

function clear_form(){
  var msg = $("message")
  var msgtext = msg.value;
  msg.value = "";
  var ifr = $("chat_messages");
  var nid = new Date().getTime().toString();
  addMessage(nid, "Me", msgtext, ifr);
  highlight_message(ifr, nid);
  return true;    
}

function submit_form(){
  var form = $("chatform");
  new Ajax.Request('/chats/0/send_message', {
      asynchronous:true, 
      evalScripts:true, 
      parameters:Form.serialize(form)
  }); 
  clear_form();
  return false;
}

function selectContents(){
    var ifr = $("chat_messages");
    if(ifr.contentWindow.getSelection){
        var sel = ifr.contentWindow.getSelection();
        var r = ifr.contentDocument.createRange();
        r.selectNodeContents(ifr.contentDocument.body);
        sel.addRange(r);
        ifr.contentWindow.focus();
    } else {
        var rng = ifr.contentWindow.document.body.createTextRange();
        rng.moveToElementText(ifr.contentWindow.document.body)
        rng.select();
        ifr.contentWindow.document.body.focus();
    }
    
    
}

function addTagToList(list, tag){
  if(!list || list == ""){
    return tag;
  } else {
    return list+","+tag;
  }
}
