var gDutyIndex=-1;
gFieldIDs = new Array(); // Bis zu 3 Rg-IDs

for (var i = 1; i <= 3; i++)
{
if (document.getElementById('_hidden_field_info_' + i) )
  {
    gFieldIDs[i-1] = document.getElementById('_hidden_field_info_' + i).value;
  }
}

SetDuties();

function SetDuties()
{
  if (gDutyIndex < gFieldIDs.length-1)
  {
    gDutyIndex++;
    SetDuty();
  }
  else
  {
    gDutyIndex=-1;
    setTimeout('SetDuties()', 3000);
  }
}

function SetDuty() 
{
  var vURL;
  var myAjax;

  vURL = gURLAjaxInfo + '?_action=free_lawyers&_id=' + gFieldIDs[gDutyIndex] + "&nocache=" + Math.random();
  myAjax = new Ajax.Request(vURL, { method: 'get', onComplete: FreeLawyersAvailable });
}

function FreeLawyersAvailable(pRequest)
{

  var vTemp = document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML;
  var vFreeLawyers = pRequest.responseText;
         
  if (vFreeLawyers < 0) //Kein freier Anwalt bei -1
  {
    vURL = gURLAjaxInfo + '?_action=duty_field&_id=' + gFieldIDs[gDutyIndex] + '&nocache=' + Math.random();
    myAjax = new Ajax.Request(vURL, { method: 'get', onComplete: DutyLawyersAvailable });
  }
  else if (vFreeLawyers == 1 ) //Ein freier Anwalt 
  { 
    vTemp = clearInfo(vTemp);
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp  + gTextFreeLawyer; //Grün
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#00CD00";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
    SetDuties();
  }
  else if (vFreeLawyers > 1 ) 
  { 
    vTemp=document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML;
    
    vTemp = clearInfo(vTemp);
    var vDisplayText;
    vDisplayText = gTextFreeLawyers.replace("[NUMBER]", vFreeLawyers);
    
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp  + vDisplayText; //Grün
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#00CD00";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
    SetDuties();
  }
  else
  { 
    vTemp = clearInfo(vTemp);
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp + ""; //Grün
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#00CD00";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
    SetDuties();
  }
}

function DutyLawyersAvailable(pRequest)
{
  var vDutyLawyers = pRequest.responseText;
  var vTemp = document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML;
  
  if (vDutyLawyers == 1) // alle im Gespräch (kein Freier Anwalt aber Dienst existiert)
  {
    vTemp = clearInfo(vTemp);
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp + gTextAllTalking ; //orange
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#FFA500";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
  }
  else if (vDutyLawyers == "") // Nöchster Dienstzeit nicht bekannt
  {
    vTemp = clearInfo(vTemp);    
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  =  vTemp + gTextNoDuty ; //rot
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#ff0000";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
  }
  else if (vDutyLawyers == "ERROR")
  { 
    vTemp = clearInfo(vTemp);
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp + "";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#00CD00"; 
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
    SetDuties();
  }
  else
  {
    vTemp = clearInfo(vTemp);
    var vDisplayText;
    vDisplayText = gTextNextDuty.replace("[DUTY]", vDutyLawyers);
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML  = vTemp + vDisplayText ;  // Nächster Dienstzeit //rot
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.color = "#ff0000";
    document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).style.fontWeight = "bold";
  }

  SetDuties();
}
 
 if (document.getElementById('_pageType').value == "LAWYER_DETAIL" || document.getElementById('_pageType').value == "LAWYER_POPUP")
  {
    SetLawyerDuties();
  }

function SetLawyerDuties()
{
    SetLawyerDuty();
}

function SetLawyerDuty() 
{
  var vURL;
  var myAjax;

  vURL = gURLAjaxInfo + '?_action=duty_lawyer&_id=' + document.getElementById('_lawyer_id').value + "&nocache=" + Math.random();
  myAjax = new Ajax.Request(vURL, { method: 'get', onComplete: ShowLawyerDuty });
}

function ShowLawyerDuty(pRequest)
{
  var vDutyLawyer = pRequest.responseText;
  if (vDutyLawyer == 1) //Anwalt im Dienst und frei
  {
    document.getElementById('_lawyer_info').innerHTML  = gTextLawyerFree ; //grün
    document.getElementById('_lawyer_info').style.color = "#00CD00";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
  }
  else if (vDutyLawyer == -1) //Anwalt spricht gerade
  {
    document.getElementById('_lawyer_info').innerHTML  = gTextLawyerBusy ; //orange
    document.getElementById('_lawyer_info').style.color = "#FFA500";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
  }
  else if (vDutyLawyer == "") // Nöchster Dienstzeit nicht bekannt
  {
    document.getElementById('_lawyer_info').innerHTML  = gTextLawyerNoDuty ; //rot
    document.getElementById('_lawyer_info').style.color = "#ff0000";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
  }
  else if (vDutyLawyer == "ERROR")
  { 
    document.getElementById('_lawyer_info').innerHTML  = "";
    document.getElementById('_lawyer_info').style.color = "#00CD00";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
    SetLawyerDuties();
  }
  
  else if (vDutyLawyer == "<html><body>Internal Server Error. Please contact a server administrator.</body></html>")
  { 
    document.getElementById('_lawyer_info').innerHTML  = "Derzeit keine Auskunft möglich.";
    document.getElementById('_lawyer_info').style.color = "#00CD00";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
    SetLawyerDuties();
  }
  else
  {
    var vDisplayText;
    vDisplayText = gTextLawyerNextDuty.replace("[DUTY]", vDutyLawyer);
    document.getElementById('_lawyer_info').innerHTML  = vDisplayText ;  // Nächster Dienstzeit //rot
    document.getElementById('_lawyer_info').style.color = "#ff0000";
    document.getElementById('_lawyer_info').style.fontWeight = "bold";
  }

  setTimeout('SetLawyerDuties()', 3000);
}

function clearInfo(sTemp)
{
    //RG Angabe oder RG mit Doppelpunkt (vom letzten AJAX-Aktion) -> Linke Seite mir doppelpunkt soll erhalten bleiben.
    //<B>: IE <b>:FF
    if  (document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.indexOf("<b>") > -1 || document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.indexOf("<B>") > -1)
    {
    
      if (document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.indexOf(":") > -1)
      {
        sTemp = document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.substring(0, document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.indexOf(":") + 2);      
      }
      else
      {
        sTemp = document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML + ": "; 
      }
    }
    //Leere Zeile oder eine Aussage ohne RG (vom letzten AJAX-Aktion) mit PUNKT --> Soll geleert werden.
    else if (document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML == "&nbsp;")
    {
      sTemp = "";
    }
    else if (document.getElementById('_field_info_' + gFieldIDs[gDutyIndex]).innerHTML.indexOf(".") > -1)
    {
      sTemp = "";
    }
    return sTemp;
}
