var last_progress;
var max_nonprogress_count=60;
var nonprogress_count=0;
var ajax_response;
var up_filename;
var data = new Array();
var control;

function process_upload(data){


  data1 = data.split(" ");

  //////////////////////////
  //check for upload errors
  //////////////////////////
  if (data['error']==true){

    alert('error: ' + data['error_code']);

    return;
  }

  /////////////////////////////////
  //check for progress bar updates
  /////////////////////////////////
  if (data['progress']==true){

    if (data['progress_percent']!="100"){

      return;

    }

  }

  if (data1.length == 4){

   $('file_id').value=data1[3];
 
    url = "/a/media_album/dp/get_item/imageonly/" + data1[2];
   
   if($('uploadform_bulletin')){
         var R = new Ajax.Updater('thumbnail_container',url,

          {method:'post',asynchronous:true,parameters: "imageSize=MEDIA"}

          )
   }else{
		var R = new Ajax.Updater('thumbnail_container',url,

          {method:'post',asynchronous:true,parameters: "imageSize=AVATAR"}

          )
   }
  

  }

}

function uploadControl(data){


  //////////////////////////
  //check for upload errors
  //////////////////////////
  if (data['error']==true){

    alert('error: ' + data['error_code']);

    return;
  }

  /////////////////////////////////
  //check for progress bar updates
  /////////////////////////////////
  if (data['progress']==true){

    if (data['progress_percent']!="100"){

      return;

    }

  }


  
  url = "/a/media_album/dp/get_item/imageonly/" + data["mid"];

  var R = new Ajax.Updater('thumbnail_container',url,

          {method:'post',asynchronous:true}

          )
  

}

function getResponseText(ajax_object){

        ajax_response=ajax_object.responseText;

        if (ajax_response == null){

          ajax_response = "";

        }

 }


function startUpload(fileName,formName,controlFunc, alertTxt)
{
       var obj_date = new Date();

       control = controlFunc;

       upload_id = obj_date.getTime();

       $(formName).sid.value = upload_id;

        if (  $(fileName).value.length > 0 )
        {
            getUploadStatus(upload_id);

            $(formName).submit();

            $('thumbnail_container').innerHTML ='<img ' +

               'src="http://www.moli.com/i/indicators/moli_progress.gif"' +

               'width="48px"' +

               'height="48px" />' ;

            return true;
        }

        alert ( unescape( alertTxt ) ) ; 

        return false;
}



function getUploadStatus(filename){

  up_filename=filename;

  rcount=randomnumber=Math.floor(Math.random()*50000);

  var url="/a/media_album/dp/get_upload_status/" + filename + "/" + rcount;

  var myAjaxII = new Ajax.Request(

        url,
        {
                method: 'get',

                parameters: "filename=" + filename,

                onComplete: getResponseText,

                asynchronous: false

        });


  /////////////////////////////
  // Check the response length
  /////////////////////////////
  if (ajax_response.split(" ").length < 2){

        p=0;

  }else{

        data=ajax_response.split(" ");

        p=parseInt(data[1]);

        /////////////////////////////
        // Check for failed downloads
        //////////////////////////////
        if (data[2]=="false"){

                ////////////////////////////////
                // Display the failed notice
                /////////////////////////////////
                data["error"] = true;

                data["error_code"] = data[3];

                uploadControl(data);

                return;

        };

  }

  ///////////////////////////////////////////////
  // compare the last progress value
  // to this progress value.  If they are
  // the same, increment max_nonprogress_count;
  ///////////////////////////////////////////////
  if (p==last_progress)

        nonprogress_count++;

  else

        nonprogress_count=0;

  ///////////////////////////////////////////////
  // update the last_progress with the
  // newly created progress
  ////////////////////////////////////////////////
  last_progress=p;


  ////////////////////////////////////
  // see if the upload has completed
  ////////////////////////////////////

  if (ajax_response.indexOf("100%")>0){

          data['progress'] = true;

          data['progress_percent'] = p;

        // check to see if there is a valid IDP
        if(ajax_response.indexOf("invalid-type")>0){

          data["error"] = true;

          data["error_code"] = "invalid-type";

          uploadControl(data);

        }else if(ajax_response.indexOf("not-available")>0){

          if(nonprogress_count<max_nonprogress_count){

            setTimeout("getUploadStatus('" + up_filename + "')", 3000);

          }else{

            data["error"] = true;

            data["error_code"] = "stalled upload";

            uploadControl(data);

          }

        }else{

          //////////////////////////////////
          // successful upload
          //////////////////////////////////
          temp = ajax_response.split(" ");

          eval(control + "('" + ajax_response + "')" );
          //eval(control + "('" + data[1] + "','" + data[2] + "')" );

        }

  }else{

        ///////////////////////////////////////////////
        // Check to see if the upload has stalled
        ///////////////////////////////////////////////
        if (nonprogress_count<=max_nonprogress_count){

          data['progress'] = true;

          data['progress_percent'] = p;

          uploadControl(data);

          setTimeout("getUploadStatus('" + filename + "')", 4000);

        }else{

          //////////////////////////////////////
          // Display the upload more button
          //////////////////////////////////////
          data["error"] = true;

          data["error_code"] = "no_progress";

          uploadControl(data);

        }
}

}

/*////////////////////////////////////////////////////////////////////////////////////
// showAlbumsOverlay (url, params)
// Anthony Carcelli 10.1.2007
//
// url is ajax request url
// params should be a querystring that will be passed to url for parsing html
////////////////////////////////////////////////////////////////////////////////////*/

function showAlbumsOverlay (url,params) {

		createScreen();
    
    var overlay = $('DESC_POPUP');
    // get the scrolling off sets
    MA=getScrollXY();
    
    flyoutWidth = 660;
    parentWidth = $('content_column').offsetWidth;
    posX = $('content_column').offsetLeft;

    overlay.style.background = 'none';
    overlay.style.left = posX + (parentWidth-flyoutWidth)/2 + MA [0] + 'px';
    overlay.style.top = 10+MA[1]+'px';
    overlay.style.width = flyoutWidth + 'px';
   /* overlay.style.left = posX + MA [0] + 'px';
    overlay.style.top = posY + MA[1] + 'px';
    overlay.style.width = parentWidth + 'px';*/

    overlay.innerHTML = '<div id="store_product_wait_nav" align="center">'+getSpinnerHTML()+'</div>';
    overlay.style.display = 'none';

   appear();
    var myAjax = new Ajax.Updater("DESC_POPUP", url, { method: 'post', onSuccess: 'appear', postBody: params, evalScripts:true });
}



function uploadAlbums (url,params) {

		createScreen();
    
    var overlay = $('DESC_POPUP');
    // get the scrolling off sets
    MA=getScrollXY();
    
    flyoutWidth = 660;
    parentWidth = $('content_column').offsetWidth;
    posX = $('content_column').offsetLeft;

    overlay.style.background = 'none';
    overlay.style.left = posX + (parentWidth-flyoutWidth)/2 + MA [0] + 'px';
    overlay.style.top = 10+MA[1]+'px';
    overlay.style.width = flyoutWidth + 'px';
   /* overlay.style.left = posX + MA [0] + 'px';
    overlay.style.top = posY + MA[1] + 'px';
    overlay.style.width = parentWidth + 'px';*/

    overlay.innerHTML = '<div id="upload_media" align="center">'+getSpinnerHTML()+'</div>';
    overlay.style.display = 'none';

   appear();
    var myAjax = new Ajax.Updater("DESC_POPUP", url, { method: 'post', onSuccess: 'appear', postBody: params, evalScripts:true });
}