/////////////
// drehen:

function getOrientation(file, callback) {
  var reader = new FileReader();
  reader.onload = function(e) {

    var view = new DataView(e.target.result);
    if (view.getUint16(0, false) != 0xFFD8) return callback(-2);
    var length = view.byteLength, offset = 2;
    while (offset < length) {
      var marker = view.getUint16(offset, false);
      offset += 2;
      if (marker == 0xFFE1) {
        if (view.getUint32(offset += 2, false) != 0x45786966) return callback(-1);
        var little = view.getUint16(offset += 6, false) == 0x4949;
        offset += view.getUint32(offset + 4, little);
        var tags = view.getUint16(offset, little);
        offset += 2;
        for (var i = 0; i < tags; i++)
          if (view.getUint16(offset + (i * 12), little) == 0x0112)
            return callback(view.getUint16(offset + (i * 12) + 8, little));
      }
      else if ((marker & 0xFF00) != 0xFF00) break;
      else offset += view.getUint16(offset, false);
    }
    return callback(-1);
  };
  reader.readAsArrayBuffer(file.slice(0, 64 * 1024));
}

////////////////////////////////////////
  function fileChange(e)
  {
  console.log("filechange");
     //open_malert('Einen Moment bitte, das Bild wird hochgeladen...<br><div style="width:100px;margin:auto;font-size:100px;"><i class="fa fa-spinner fa-spin fa-fw"></i></div>');
     document.getElementById('inp_img').value = '';

     var file = e.target.files[0];
     var quality="0.8";

     if (file.type == "image/jpeg" || file.type == "image/png")
     {

        var reader = new FileReader();
        reader.onload = function(readerEvent) {


           var image = new Image();
           image.onload = function(imageEvent) {
              var max_size = 1000;
              var w = image.width;
              var h = image.height;

              if (w > h) {  if (w > max_size) { h*=max_size/w; w=max_size; }
              } else     {  if (h > max_size) { w*=max_size/h; h=max_size; } }

              var canvas = document.createElement('canvas');
              //var canvas= document.getElementById('mycan');
              canvas.width = w;
              canvas.height = h;

              //canvas.getContext('2d').drawImage(image, 0, 0, w, h);
              ctx=canvas.getContext('2d');

///////////
// drehen:
getOrientation(file, function(orientation) {
//  alert('orientation: ' + orientation);

    switch(orientation){

        case 2:
            // horizontal flip
            ctx.translate(canvas.width, 0);
            ctx.scale(-1, 1);
            break;
        case 3:
            // 180° rotate left
            ctx.translate(canvas.width, canvas.height);
            ctx.rotate(Math.PI);
            break;
        case 4:
            // vertical flip
            ctx.translate(0, canvas.height);
            ctx.scale(1, -1);
            break;
        case 5:
            // vertical flip + 90 rotate right
            ctx.rotate(0.5 * Math.PI);
            ctx.scale(1, -1);
            break;
        case 6:
            // 90° rotate right
            canvas.width=h;
            canvas.height=w;
            ctx.rotate(0.5 * Math.PI);
            ctx.translate(0, -canvas.width);
            break;
        case 7:
            // horizontal flip + 90 rotate right
            ctx.rotate(0.5 * Math.PI);
            ctx.translate(canvas.width, -canvas.height);
            ctx.scale(-1, 1);
            break;
        case 8:
            // 90° rotate left
            ctx.rotate(-0.5 * Math.PI);
            ctx.translate(-canvas.width, 0);
            break;


    }


              // das war vorher weiter unten:
              ctx.drawImage(image, 0, 0, w, h);


              if (file.type == "image/jpeg") {
                 var dataURL = canvas.toDataURL("image/jpeg", quality);
              } else {
                 var dataURL = canvas.toDataURL("image/png");
              }

              //document.vorschaubild.src=dataURL;
              //document.vorschaubild.width="200";
              document.getElementById('inp_img').value = dataURL;
              document.getElementById('inp_file').value = '';
              document.getElementById('vorschaubild').src = dataURL;
              document.getElementById('vorschaubild').style.display='block';
              //
//              close_malert();
//              document.getElementById('submitbtn').click();
//alert("Dein Bild wurde hochgeladen!<br>Du kannst den Beitrag jetzt absenden oder noch etwas dazu schreiben!");
              //alert("Bild hochgeladen, Du kannst Deinen Beitrag jetzt absenden!");
              //document.getElementById('anhangbutton').style.display='none';
              //document.f.img.value=document.bildupload.img.value;
              //document.bildupload.img.value="";
              //document.f.submit();

              //


});



////////////////////////////


              // hier war es:
           }
           image.src = readerEvent.target.result;
        }




        reader.readAsDataURL(file);
//        alert("hier");
     } else {
        document.getElementById('inp_file').value = '';
        alert('Bitte waehlen Sie ein Bild im JPG- oder PNG-Format aus.');
     }
  }

if(document.getElementById('inp_file'))document.getElementById('inp_file').addEventListener('change', fileChange, false);
