var lastmessageSrcindex=-1;
var lastgroupSrcindex=-1;
//fetch images here, avoid resize of page during download
function preload(strImage){
	var img1=new Image();
	img1.src=strImage;
}

preload("i/t1.gif");
preload("i/t2.gif");
preload("i/t3.gif");
preload("i/t4.gif");
preload("i/t5.gif");
preload("i/t6.gif");
preload("i/t7.gif");
preload("i/t8.gif");
preload("i/m1.gif");
preload("i/m2.gif");
preload("i/m3.gif");
preload("i/m4.gif");
preload("i/s1.gif");
preload("i/s2.gif");
preload("i/s3.gif");
preload("i/a.gif");
preload("i/d.gif");
preload("i/e.gif");

//function for dynammically updating the counters in other frames
function updateCounter(intGroupID){
 if((is_affdyn) && (parent) && (parent.groups) && (parent.messages)){
  if ((parent.groups.document.all["rc"+intGroupID]) && (parent.messages.document.all["rc"+intGroupID])){
   parent.groups.document.all["rc"+intGroupID].innerText=parent.messages.document.all["rc"+intGroupID].innerText
  }
  if((parent.groups.document.all["uc"+intGroupID]) && (parent.messages.document.all["uc"+intGroupID])){
   parent.groups.document.all["uc"+intGroupID].innerText=parent.messages.document.all["uc"+intGroupID].innerText;
  }
 }
}

function AddToUnreadCount(intDiff)
{
 if(document.all["uc"+group])
 {
  document.all["uc"+group].innerText = parseInt(document.all["uc"+group].innerText)+intDiff
  updateCounter(group)
 }
}


//eventhandler for mouseover message line
function over(){
 for(var obj=event.srcElement; ((obj.tagName!="TR")&&(obj.parentNode)); obj=obj.parentNode);
 if(obj.tagName=="TR"){
  obj.className="mouseover"
 }
}

//eventhandler for mouseout for message line
function out(){
 for(var obj=event.srcElement; ((obj.tagName!="TR")&&(obj.parentNode)); obj=obj.parentNode);
 if(obj.tagName=="TR"){
  obj.className=''
 }
}

//eventhandler for mousedown for message line
//if element does not have an ID we assume the user ment to select the message
function down(){
 var obj=event.srcElement
 if(obj.id==""){
  for(; ((obj.tagName!="TR")&&(obj.parentNode)); obj=obj.parentNode);
  if(obj.tagName=="TR"){
   for(var i=obj.sourceIndex; (((v_id=document.all[i].id)!="m")&&(v_id!="c")&&(v_id!="u"));i+=1);
   if(parent){
    parent.fbody.location.href = document.all[i].href;
    subjectClick(i);
   }
  }
 }
}

// function that is called when the page is loaded
function myonload(){
 var i

 //attach eventhandler for mouseclick
 document.onclick=change;

 //attach eventhandlers to messagelines (mouseout/in)
 var tr = document.getElementsByTagName("TR")
 for (i=0 ; i < tr.length ; i++){
  if (tr[i].id){
   var id=tr[i].id.substring(0,3);
   if ((id=="mth") || (id=="mpl") || (id=="mst")){
    tr[i].onmouseout = out;
    tr[i].onmouseover = over;
    tr[i].onmousedown = down;
   }
  }
 } 

 //scroll selected message into view
 if (document.all["c"]){
  lastmessageSrcindex=document.all["c"].sourceIndex;
  document.all["c"].scrollIntoView(false)
 }

 //mark chosen message
 if (document.all["c"]){
  document.all["c"].className="choosen";
 }

 //show expand/collapse threads function
 var span = document.getElementsByTagName("SPAN")
 for (i=0 ; i < span.length ; i++){
  if (span[i].id){
   if (span[i].id=="expandcollapse"){
    span[i].className = "";
   }
  }
 }
 
 if(GetCookie("t")=="collapsed") collapseAllThreads(false);
}

function GetCookie(CookieName)
{
 var lf = "\n";
 var CookieString = document.cookie;
 var CookieSet = CookieString.split (';');
 var SetSize = CookieSet.length;
 var CookiePieces
 var ReturnValue = "";
 var x = 0;
 for (x = 0; ((x < SetSize) && (ReturnValue == "")); x++)
 {
  CookiePieces = CookieSet[x].split ('=');
  if (CookiePieces[0].substring (0,1) == ' ')
  {
   CookiePieces[0] = CookiePieces[0].substring (1, CookiePieces[0].length);
  }
  if (CookiePieces[0] == CookieName)
  {
   ReturnValue = CookiePieces[1];
  }
 }
 return ReturnValue
}

// function for expanding all threads
function expandAllThreads(){
  var tr = document.getElementsByTagName("TR")
  for (var i=0 ; i < tr.length ; i++){
   var id=tr[i].id
   if (id.substring(0,3)=="mst") ExpandThread(id)
  }
 document.cookie = "t=expanded;";
}
 
// function for collapsing all threads
function collapseAllThreads(blnCollapseChosen){
  var tr = document.getElementsByTagName("tr")
  for (var i=0 ; i < tr.length ; i++){
   if (tr[i].id){
    var id=tr[i].id;
	if (id.substring(0,3)=="mst") CollapseThread(id, blnCollapseChosen)
   }
  }
 document.cookie = "t=collapsed;";
}

//function for collapsing a single thread
function CollapseThread(id, blnCollapseChosen)
{
 //var j, i, subject, fw
 if((id.substring(0,3)=="mpl") || (id.substring(0,3)=="mth") || (id.substring(0,3)=="mst")) id = id.substring(3,id.length); //skip first 3 chars
 if(document.all["mth" + id])
 {
  var imgSrc = "i/t6.gif"; //change to plus
  var aChildren = eval("mth" + id);
  if(!aChildren.length)
  {
   for(j=document.all["mth" + id].sourceIndex; ((v_id=document.all[j].id)!="m")&&(v_id!="c")&&(v_id!="u");j++);
   //check if we need a red plus
   subject = document.all[j];
   if((subject.id=="m") || (subject.id=="c") || (subject.id=="u"))
   {
    if((!blnCollapseChosen) && (subject.className=="choosen"))
    {
     ExpandThread(id);
     return; //we cant fold the thread that contains the choosen message
    }
    fw = subject.style.fontWeight;
    if((fw!="normal" && v_id=="u") || (fw=="bold" && v_id!="u")) imgSrc = "i/t8.gif"; //change to red plus
   }
   document.all["mth" + id].className = "hidden";
  }
  else
  {
   for(i=0; i < aChildren.length; i++)
   {
    for(j=aChildren[i].sourceIndex; ((v_id=document.all[j].id)!="m")&&(v_id!="c")&&(v_id!="u");j++);
    //check if we need a red plus
    subject = document.all[j];
    if((subject.id=="m") || (subject.id=="c") || (subject.id=="u"))
    {
     if((!blnCollapseChosen) && (subject.className=="choosen"))
     {
      ExpandThread(id);
      return; //we cant fold the thread that contains the choosen message
     }
     fw = subject.style.fontWeight;
     if((fw!="normal" && v_id=="u") || (fw=="bold" && v_id!="u")) imgSrc = "i/t8.gif"; //change to red plus
    }
    aChildren[i].className = "hidden";
   }
  }
  document.all["mpl" + id].src = imgSrc; //change to plus
 }
}

//function for expanding a single thread
function ExpandThread(id)
{
 var j, i
 if((id.substring(0,3)=="mpl") || (id.substring(0,3)=="mth") || (id.substring(0,3)=="mst")) id = id.substring(3,id.length); //skip first 3 chars
 if(document.all["mth" + id])
 {
  var imgSrc = "i/t7.gif"; //change to minus
  var aChildren = eval("mth" + id);
  if(!aChildren.length)
  {
   document.all["mth" + id].className = "";
  }
  else
  {
   for(i=0; i < aChildren.length; i++)
   {
    aChildren[i].className = ""
   }
  }
  document.all["mpl" + id].src = imgSrc; //change to minus
 }
}

//function for subject clicks, takes the sourceIndex of the subject clicked as argument
function subjectClick(i){
 var lastSubjectSrcindex;
 var subject=document.all[i];
 var v_id = subject.id;
 if(v_id=="m" || v_id=="c" || v_id=="u"){
  lastSubjectSrcindex=lastmessageSrcindex;
  lastmessageSrcindex=i;
 }else{
  lastSubjectSrcindex=lastgroupSrcindex;
  lastgroupSrcindex=i;
 }
 if(lastSubjectSrcindex!=-1){
  document.all[lastSubjectSrcindex].className='';
 }
 subject.className="choosen";
 if((v_id=="m")||(v_id=="c")||(v_id=="u")){
  fw = subject.style.fontWeight;
  for(i=lastmessageSrcindex;((i>=0)&&(document.all[i].id!="p"));i--);
  if(i>0){
   src = document.all[i].src;
   src = src.substring(src.length-6,src.length); //get last 6 chars
   if(((fw!="normal") && v_id=="u") || (fw=="bold" && v_id!="u")){    
    //mark read
    AddToUnreadCount(-1); 
    subject.style.fontWeight='normal';
    if(src=="m1.gif") document.all[i].src="i/m2.gif"; // found m1.gif
    if(src=="m3.gif") document.all[i].src="i/m4.gif"; // found m3.gif
   }
  }
 }
}

//eventhandler for mouseclick
function change(){
 if(!document.all) return;
 var id=event.srcElement.id,srcIndex = event.srcElement.sourceIndex,i,v_id,subject,src,fw,newSrc,aImgs,aChildren,strTmp;

 //fold/unfold thread
 if(id.substring(0,3)=="mpl"){
  src = document.all[srcIndex].src;
  src = src.substring(src.length-6,src.length); //get last 6 chars
  if((src=="t6.gif")||(src=="t8.gif")) {
   ExpandThread(id);
  } else {
   CollapseThread(id, true);
  }
 }

 //selecting a message/group
 if(id=="x" || id=="y" || id=="g" || id=="cg" || id=="m" || id=="c"|| id=="u"){
  var step=1;
  if(id=="y") step=-1;
  for(i=srcIndex; ((v_id=document.all[i].id)!="z")&&(v_id!="g")&&(v_id!="cg")&&(v_id!="m")&&(v_id!="c")&&(v_id!="u");i+=step);
  subjectClick(i)
 }

 //marking messages read/unread
 if(id=="p"){
  for(i=srcIndex; ((v_id=document.all[i].id)!="m")&&(v_id!="c")&&(v_id!="u");i++);
  subject = document.all[i];
  fw = subject.style.fontWeight;
  src = document.all[srcIndex].src;
  src = src.substring(src.length-6,src.length); //get last 6 chars
  if(((fw!="normal") && v_id=="u") || (fw=="bold" && v_id!="u")){
   //mark read
   AddToUnreadCount(-1); 
   subject.style.fontWeight='normal';
   if(src=="m1.gif") document.all[srcIndex].src="i/m2.gif"; // found m1.gif
   if(src=="m3.gif") document.all[srcIndex].src="i/m4.gif"; // found m3.gif
  }else{
   //mark unread
   AddToUnreadCount(1); 
   subject.style.fontWeight='bold';
   if(src=="m2.gif") document.all[srcIndex].src="i/m1.gif"; // found m2.gif
   if(src=="m4.gif") document.all[srcIndex].src="i/m3.gif"; // found m4.gif
  }
 }

 //subscribing/unsubscribing
 if((id.substring(0,3)=="sth") || (id.substring(0,3)=="sgr")) {
  src = document.all[srcIndex].src;
  src = src.substring(src.length-6,src.length); //get last 5 chars
  if(id.substring(0,3)=="sth"){
   if(src=="s1.gif") {
    newSrc="i/s2.gif"; // found s1.gif
   } else {
    newSrc="i/s1.gif"; // found s2.gif
   }
   aImgs=eval(id);
   for(i=0; i < aImgs.length; i++) aImgs[i].src=newSrc;
  } else {
   if(src=="s3.gif") {
    newSrc="i/s2.gif"; // found s3.gif
   } else {
    newSrc="i/s3.gif"; // found s2.gif
   }
  }
  document.all[srcIndex].src=newSrc;
 }

 //thread readonly/not readonly
 if(id.substring(0,8)=="ROthread"){
  src = document.all[srcIndex].src;
  src = src.substring(src.length-7,src.length); //get last 7 chars
  if(src=="not.gif") {
   newSrc="i/threadreadonly.gif"; // found threadreadonlynot.gif
  } else {
   newSrc="i/threadreadonlynot.gif"; // found hidden.gif
  }
  document.all[srcIndex].src=newSrc;
  aImgs=eval(id);
  for(i=0; i < aImgs.length; i++) aImgs[i].src=newSrc;
 }

 //replylocking/unlocking
 if(id=="ReplyLock"){
  src = document.all[srcIndex].src;
  src = src.substring(src.length-7,src.length); //get last 7 chars
  if(src=="not.gif") {
   newSrc="i/lock.gif"; // found lockednot.gif
  } else {
   newSrc="i/locknot.gif"; // found locked.gif
  }
  document.all[srcIndex].src=newSrc;
 }

 //approving a message
 if(id=="approve"){
  src = document.all[srcIndex].style.display="none";
  //add one unread
  AddToUnreadCount(1); 
 }

}

if (is_affdyn){

 //attach event handlers for mouseover/out and scroll to selected message
 window.onload=myonload
 
 
}
