function UpdateColor(myself){
 var select = myself.options[myself.selectedIndex];
 myself.style.backgroundColor = select.style.backgroundColor;
 myself.style.color = select.style.color;
 delete select;
}
function boxShow(id){
  for (var i=0; i<99; i++) if (!gEBId("box"+i)) break; else gEBId("box"+i).style.display="none";
  gEBId("box"+id).style.display="block";
}
function subBoxShow(code, id){
  for (var i=1; i<9999; i++) if (gEBId("box"+code+i)) gEBId("box"+code+i).style.display="none";
  gEBId("box"+code+id).style.display="block";
}

function urlEncodeCharacter (c)
{
  return '%' + c.charCodeAt(0).toString(16);
}
function urlEncode ( s )
{
  return encodeURIComponent( s ).replace( /\%20/g, '+' ).replace( /[!'()*~]/g, urlEncodeCharacter );
}

var CourseID;
var ExtraLink;
var MediaType;
var sendMediaRun=0;
var Files;
var UploadID;
var Media;
var MPart;
var reader = new FileReader();
reader.onload = loaded;
function DropMedia(e)
{
  if (e.preventDefault) e.preventDefault();
  if (sendMediaRun) {
    alert("Un envoi de fichier est déjà en cour.\nMerci de patientez.");
    return false;
  }
  if (e.dataTransfer.files) {
    Files = e.dataTransfer.files;
    UploadID = Media = MPart = 0;
    SendMedia();
  }
  return false;
}
function SendMedia()
{
  if (!UploadID) {
    sendMediaRun=1;
    UploadID = new Date();
    UploadID = UploadID.getTime();
    if (gEBId("load1")) gEBId("load1").style.width = 0+"%";
    if (gEBId("load2")) gEBId("load2").style.width = 0+"%";
    if (!Files[Media].getAsBinary) return reader.readAsBinaryString(Files[Media]);
  }
  loaded(0);
}
function loaded(evt)
{
  var SendIt = getXHR();
  SendIt.overrideMimeType('text/plain; charset=x-user-defined-binary');
  if (MPart >= ((Files[Media].size)?Files[Media].size:Files[Media].fileSize)) {
    SendIt.open("POST", "/PHP/upload.php?UploadID="+UploadID+"&Add"+"&Mime="+urlEncode((Files[Media].type)?Files[Media++].type:Files[Media++].mediaType)+"&CourseID="+CourseID+"&Extra="+ExtraLink, false);
    SendIt.send();
    if (SendIt.responseText != "\nAjout Accepté !") alert("Erreur reçu :\n\n"+SendIt.responseText);
    if (gEBId("load1")) gEBId("load1").style.width = "100%";
    if (gEBId("load2")) gEBId("load2").style.width = (100*Media/Files.length)+"%";
    if (Media >= Files.length) {
      if (MediaType == "course") loadTo("/PHP/Media.php?id="+CourseID+"&Extra="+ExtraLink, "Media");
      else {
	var Req = getXHR();
	Req.open("GET", "/PHP/Media.php?id="+CourseID+"&Extra="+ExtraLink, true);
	Req.onreadystatechange=function() {
	  if ((Req.readyState==4) & (Req.status!=404)) gEBId("Media"+ExtraLink).src= Req.responseText;
	}
	Req.send();
	delete Req;
      }
      return sendMediaRun=0;
    }
    MPart = 0;
    if (gEBId("load1")) gEBId("load1").style.width = "0%";
    UploadID = new Date();
    UploadID = UploadID.getTime();
    if (evt) reader.readAsBinaryString(Files[Media]);
    else SendMedia();
  } else {
  SendIt.open("POST", "/PHP/upload.php?UploadID="+UploadID, true);
  var size=1024*10;
  if ((MPart+size) > ((Files[Media].size)?Files[Media].size:Files[Media].fileSize)) size = ((Files[Media].size)?Files[Media].size:Files[Media].fileSize) - MPart;
  MPart += size;
  SendIt.onreadystatechange=function() {
    if ((SendIt.readyState==4) & (SendIt.status!=404)) {
      if (SendIt.responseText != "Ok") alert("Erreur reçu :\n\n"+SendIt.responseText);
      else {
	if (gEBId("load1")) gEBId("load1").style.width = (100*MPart/((Files[Media].size)?Files[Media].size:Files[Media].fileSize))+"%";
        if (evt) loaded(evt);
	else SendMedia();
      }
    }
  }
  if (evt) SendIt.sendAsBinary(evt.target.result.substr(MPart-size, size));
  else SendIt.sendAsBinary(Files[Media].getAsBinary().substr(MPart-size, size));
  }
  delete SendIt;
}
function SendTest(show)
{
 if ('draggable' in document.body) gEBId(show).style.display="block";
 else gEBId(show+"Old").style.display="block";
}
