var NR_OF_ELEMENTS = 7;
var ELEMENT_ID = "pbar";
var LAST_ELEMENT = null;
var ELEMENT_POINTER = 1;
var FACTOR = 1;

var finished_ = false;
var started_ = false;
var stopped_ = false;
var gallery_success_ = false;

function uploadError(e_message)
{
    stopProcess();
    document.getElementById("upload_progress_status").innerHTML = "<span style='color: red; font-weight: bold'>"+e_message+"</span>";
    document.getElementById("status_label").innerHTML = "Fehler: ";  
    document.getElementById("upload_progress_pic1").src = "var/images/icons/progress_red.png";
    document.getElementById("upload_progress_pic2").src = "var/images/icons/progress_red.png";
    document.getElementById("upload_progress_pic3").src = "var/images/icons/progress_red.png";
    document.getElementById("upload_progress_pic4").src = "var/images/icons/progress_red.png";
}

function fillBars(color)
{
  var i;
  for(i = 1; i <= NR_OF_ELEMENTS; i++)
  {
    document.getElementById(ELEMENT_ID+i).style.backgroundColor = color;
  }
}

function stopProcess()
{
    stopped_ = true;
    document.getElementById("upload_progress_arrow1").style.display = "none";
    document.getElementById("upload_progress_arrow2").style.display = "none";
    document.getElementById("upload_progress_arrow3").style.display = "none";
    document.getElementById("upload_progress_arrow4").style.display = "none";          
}

function startProcess(limit, interval)
{
  if(stopped_)
  {
      fillBars("#CCCCDD");
      ELEMENT_POINTER = 1;
      LAST_ELEMENT = null;
      finished_ = false;
      started_ = false;
      FACTOR = 1;
      return;
  }
  if(limit == 0 || finished_)
  {
    fillBars("#77CCEE");
    return;
  }
  if(ELEMENT_POINTER < 1)
  {
    ELEMENT_POINTER = 2;
    FACTOR = 1;
  }
  if(ELEMENT_POINTER > NR_OF_ELEMENTS)
  {
    ELEMENT_POINTER = 6;
    FACTOR = -1;
  }
  var last = document.getElementById(ELEMENT_ID+LAST_ELEMENT);
  if(last)
    last.style.backgroundColor = "#CCCCDD";
  var actual = document.getElementById(ELEMENT_ID+ELEMENT_POINTER);
  if(actual)
    actual.style.backgroundColor = "#77CCEE";
  LAST_ELEMENT = ELEMENT_POINTER;
  ELEMENT_POINTER += FACTOR;
  limit--;
  window.setTimeout("startProcess("+limit+", "+interval+")", interval);
}
function sleep()
{
  var x = 0;
}

function initProcess(limit, interval)
{
  if(gallery_success_)
      return;
  stopped_ = false;
  startProcess(limit, interval);
  document.getElementById("upload_progress_status").innerHTML = "<span style='color: black; font-weight: bold'>Zip-Datei hochladen</span>";
  document.getElementById("status_label").innerHTML = "Status: "; 
  document.getElementById("upload_progress_arrow1").style.display = "inline";
}
function resetProgress()
{
  started = false;
  ELEMENT_POINTER = 1;
  LAST_ELEMENT = null;
  FACTOR = 1;
  fillBars("#CCCCDD");
  finished_ = false;
}

function finishProcess()
{
  finished_ = true;
}

function uploadStepUnzip()
{
    finishProcess();
    document.getElementById("upload_progress_pic1").src = "var/images/icons/progress_green.png";
    document.getElementById("upload_progress_status").innerHTML = "Dateien entpacken";
    document.getElementById("upload_progress_arrow1").style.display = "none";
    document.getElementById("upload_progress_arrow2").style.display = "inline";    
    resetProgress();
    startProcess(-1, 250);
    
    var ajax = JSW_ClassFactory_.getInstance("JSW_AJAX");
    var requestObject = ajax.getHTTPRequestObject();
    var postData = "action=unzip_images&gallery_id="+gallery_id_;
    requestObject.onreadystatechange = function() { return(handleUploadStepUnzip(requestObject)); }
    requestObject.open('POST', "AJAX.php", true);
    requestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
    requestObject.setRequestHeader("Connection", "close");
    requestObject.setRequestHeader("Content-length", postData.length);
    requestObject.send(postData); 
}   
function handleUploadStepUnzip(request_object)
{
    if(request_object.readyState == 4)
    {
        eval(request_object.responseText);
        if(upload_status_ == false)
        {
            uploadError(error_message_);
            return;
        }
        finishProcess();
        document.getElementById("upload_progress_pic2").src = "var/images/icons/progress_green.png";
        document.getElementById("upload_progress_status").innerHTML = "Bilder erzeugen";
        document.getElementById("upload_progress_arrow2").style.display = "none";
        document.getElementById("upload_progress_arrow3").style.display = "inline";        
        resetProgress();
        startProcess(-1, 250);
        
        var ajax = JSW_ClassFactory_.getInstance("JSW_AJAX");
        var requestObject = ajax.getHTTPRequestObject();
        var postData = "action=create_images&gallery_id="+gallery_id_;
        requestObject.onreadystatechange = function() { return(handleUploadStepCreateImages(requestObject)); }
        requestObject.open('POST', "AJAX.php", true);
        requestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
        requestObject.setRequestHeader("Connection", "close");
        requestObject.setRequestHeader("Content-length", postData.length);
        requestObject.send(postData);         
    }
}
function handleUploadStepCreateImages(request_object)
{
    if(request_object.readyState == 4)
    {
        eval(request_object.responseText);
        if(upload_status_ == false)
        {
            uploadError(error_message_);
            return;
        }    
        finishProcess();
        document.getElementById("upload_progress_pic3").src = "var/images/icons/progress_green.png";
        document.getElementById("upload_progress_status").innerHTML = "Thumbnails erzeugen";
        document.getElementById("upload_progress_arrow3").style.display = "none";
        document.getElementById("upload_progress_arrow4").style.display = "inline";        
        resetProgress();
        startProcess(-1, 250);
        
        var ajax = JSW_ClassFactory_.getInstance("JSW_AJAX");
        var requestObject = ajax.getHTTPRequestObject();
        var postData = "action=create_thumbs&gallery_id="+gallery_id_;
        requestObject.onreadystatechange = function() { return(handleUploadStepCreateThumbs(requestObject)); }
        requestObject.open('POST', "AJAX.php", true);
        requestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
        requestObject.setRequestHeader("Connection", "close");
        requestObject.setRequestHeader("Content-length", postData.length);
        requestObject.send(postData);         
    }
}
function handleUploadStepCreateThumbs(request_object)
{
    if(request_object.readyState == 4)
    {
        eval(request_object.responseText);
        if(upload_status_ == false)
        {
            uploadError(error_message_);
            return;
        }        
        finishProcess();
        gallery_success_ = true;
        document.getElementById("upload_progress_pic4").src = "var/images/icons/progress_green.png";
        document.getElementById("upload_progress_status").innerHTML = "<span style='font-weight: bold'>Gallerie erfolgreich erzeugt</span>";
        document.getElementById("gallery_submit_button").style.display = "none";
        document.getElementById("gallery_link").style.display = "inline";
    }
}

