/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var uploadingNum = 0;
var uploadRange=2; // first box is one
var filename='';
var filesize='';
var uploadErr='';
var empty=0;
var clicked=false;
var catname='';
// var uploadedFiles declared in initUpload();

// LST - MY new functions
// single upload function
// NON SI TRATTA DI AJAX, l'upload non si può fare
function ajupload(cl){
    //startUpload();
    frm = document.getElementById('post');
    d = ''; //d = document.getElementById('folder').value; // solo modulo per lst_ newsletter
    //alert("d:"+d);
    //alert(!d);
    //if(d != ''){ d='&d='+encodeURIComponent(d)+""; }
    //alert('aaaaaaaaaaaaaaaaaaaaaaaaa '+d+"");
    // submit file form...
    filename=document.getElementById("loadfile_"+cl).value; // get filename to upload
    allow_extensions = "jpg|jpeg|png|gif"; // i pdf per ora no
    if(filename == ''){
        alert("Nessun file selezionato per il l'upload !");
        return false;
    }else if(!!filename.toLowerCase().match(allow_extensions.replace(/,/g,'|'))){
        // ok
    }else{
        alert("Upload tipo di file NON permesso !");
        return false;
    }
    //alert(filename);
    //tinyMCE.get("mce_"+cl).focus()
    //tinyMCE.execInstanceCommand("mce_"+cl, "mceFocus");
    // proseguo con l'upload
    // source Ã¨ la seconda parte dell'id dell'elemento di destinazione
    link = "aj_upload.php?fn="+encodeURIComponent(filename)+"&source="+encodeURIComponent(cl)+d+"";
    //alert("link: "+link);
    oldaction = frm.action;
    oldtarget = frm.target;
    frm.action = link;
    frm.target = 'if_loadfile_'+cl;
    // visualizza loading...
    startUpload(cl);
    frm.submit();
    
    frm.action = oldaction;
    frm.target = oldtarget;
    //lst_what = 1; // azione da eseguire
    // NO AJAX request displayAjax( link );       
}


/*

function caret(el) {
	el=document.getElementById(el);
    if (el.selectionStart) {
		return el.selectionStart;
	} else if (document.selection) {
			el.focus();
		var r = document.selection.createRange();
		if (r == null) {
			return 0;      
		}       
		var re = el.createTextRange(),
				rc = re.duplicate();
		re.moveToBookmark(r.getBookmark());
		rc.setEndPoint('EndToStart', re);
		return rc.text.length;
    }     
	return 0;
} 
*/

/**
 *  TROVA LA POSIZIONE DEL CURSORE NELLA TEXTAREA
 *
*/

function caret(elem) {
  el=document.getElementById(elem);
  if (el.selectionStart) {
    return el.selectionStart;
  } else if (document.selection) {
    el.focus();
 
    var r = document.selection.createRange();
    if (r == null) {
      return 0;
    }
 
    var re = el.createTextRange(),
        rc = re.duplicate();
    re.moveToBookmark(r.getBookmark());
    rc.setEndPoint('EndToStart', re);
 
    return rc.text.length;
  } 
  return 0;
}





/**
 * INSERISCE IL TESTO ALLA POSIZIONE DEL CURSORE
 *
*/
function textinsert(caretpos, fname, id){
    //
    var ot = document.getElementById(id);
    t = ot.value;
    //alert();
    //alert('da: '+t.substr(0,caretpos));
    //alert('resto: '+t.substr(caretpos));
    ot.value = t.substr(0,caretpos) + '[img]'+fname+'[/img]'+t.substr(caretpos);
}







function setMonthOptions(year){
    // NO ! if(year == 0)return;
    // se anno == 0, deve cancellare la option
    // loading gif
    span = document.getElementById('spanloadingannomese')
    span.style.background=("url(../../lst_js/images/loading.gif) 0 no-repeat");
    span.style.padding="0px 3px 0 0";
    link = "aj_monthoptions.php?y="+year;
    lst_what = 1; // azione da eseguire
    lst_meteo_displayAjax( link );
}


// function to get joomla JText is in php file before this JS include

// function to initialize upload
function initUpload(){
    if(!canUpload())return false;
    uploadedFiles=0;
    setCategorySendValue(); // data for images upload
    pf = document.getElementById('lst_uploader_content'); // container element
    for(var i=1;i<uploadRange;i++){
        if(document.getElementById('pictureform' + i).elements.myfile.value==''){
            pf.removeChild(document.getElementById("div_pictureform" + (i)));
            empty++;
        }
    }
    uploadRange= uploadRange-empty;
    multiUpload(); // start automatic upload
}

function visitGallery(galleryId){
    document.getElementById("startUploadForm").action="index.php?option=com_phocagallery&view=category&id="+galleryId;
    document.getElementById("startUploadForm").submit();
    clicked=false;
}

function multiUpload(){
    // upload starts: disable button and last empty input if it exists
    document.getElementById('startUpload').disabled=true;
    uploadingNum++; // set next file upload
    if(uploadingNum == (uploadRange)){
        // get the uploaded category
        var usedCat=document.getElementById('selectCat').value;
        usedCat = usedCat.split(':');
        // hide upload files panel
        document.getElementById('lst_UploaderMain').innerHTML="";
        if(uploadedFiles==0){
            document.getElementById("lst_uploadFinalResult").innerHTML=getLangJtext("no pictures uploaded");
        }else{
            var sx1=getLangJtext("pictures loaded a");
            var sx2=getLangJtext("pictures loaded b");
            document.getElementById("lst_uploadFinalResult").innerHTML="<b>"+uploadedFiles+sx1+catname+sx2;
        }
        // modify button in "new Upload"
        oldObject = document.getElementById('startUpload');
        newObject = document.createElement("input");
        newObject.type = "submit";
        newObject.value ='New upload';
        newObject.onclick ='';
        oldObject.parentNode.replaceChild(newObject,oldObject);

        // here I add a link to the uploaded category
        frm=document.getElementById('startUploadForm');
        vg=document.createElement("input");
        vg.type="submit";
        vg.value="Visit gallery";
        vg.onclick=function(){visitGallery(usedCat[0]);}
        frm.appendChild(vg);
        return; // upload ended
    }
    // call function
    startUpload();
    // submit file form...
    document.getElementById('pictureform'+uploadingNum).submit();
}

function hideUploadBox(){
    // now do nothing
    return;
}

// controls if there is almost one file to upload
// controls if categorySendValue is != ''
function canUpload(){
    $csv = document.getElementById('categorySendValue').value;
    if( $csv == '' || $csv == 'select'){
        var err =document.getElementById("error");
        err.innerHTML="You have to select a category<br><br>";
        iCan=0;return false;
    }else{
        catname = document.getElementById('selectCat').options[document.getElementById('selectCat').selectedIndex].text;
    }
    for(var i=1; i<uploadRange; i++){
        if(document.getElementById('pictureform' + i).elements.myfile.value!=''){iCan=1;return true;}
    }
    // print message and return false
    var err =document.getElementById("error");
    err.innerHTML="You have to select almost one file to upload<br><br>";
    iCan=0; return false;
}

// New uploader functions.
function startUpload(classe){
      document.getElementById('upload_process_'+classe).style.visibility = 'visible';
      return true;
}

function stopUpload(classe){
      document.getElementById('upload_process_'+classe).style.visibility = 'hidden';
      return true;
}



/*
function stopUpload(success, fileid, fn, fs){
      var result = '';
      filename=fn; filesize=fs;
      if (success == 1){
          result = getResult(success); //'<span class="msg">The file '+fn+' ('+fs+') '+'was uploaded successfully!<\/span><br/>';
      }
      else {
         result = getResult(success);//'<span class="emsg">There was an error during file upload!' + success + '<\/span><br/><br/>';
      }

      document.getElementById('f1_upload_process'+uploadingNum).style.visibility = 'hidden';
      // should remove loading image
      pf = document.getElementById('pictureform'+uploadingNum);
      pf.removeChild(document.getElementById('f1_upload_process'+uploadingNum));
      pf.removeChild(document.getElementById('f1_upload_form'+uploadingNum));
      pf.innerHTML = result;
      multiUpload();
	  return true;
}
*/
function getResult(ok){
  if(ok==1){
      var result ='<div id="lst_uploadresult" style="border:1px solid #ccc; margin:5px; background-color:#fbfbfb">';
      uploadedFiles=uploadedFiles+1;
      result+='<table border="0">';
      result+='<tr><td>&nbsp;</td><td style="color:green"><b>File upload success</b></td></tr>';
      result+='<tr><td><b>'+getLangJtext('Name')+'</b></td><td>'+filename+'</td></tr>';
      result+='<tr><td><b>'+getLangJtext('Size')+'</b></td><td>'+formatSize(filesize)+'</td></tr>';
      result+='</table>';
  }else{
      var result ='<div id="lst_uploadresult" style="border:1px solid #ccc; margin:5px; background-color:#fbfbfb">';
      result+='<table border="0">';
      result+='<tr><td>&nbsp;</td><td style="color:red"><b>File upload error: </b>'+ok+'</td></tr>';
      result+='<tr><td><b>'+getLangJtext('Name')+'</b></td><td>'+filename+'</td></tr>';
      result+='</table>';  
  }
  return result;
}

function formatSize(size){
		if(size >= 1000000){
			return (size/1000000)+" MB <br />";
		}else if(size >= 1000){
			return (size/1000)+" KB <br />";
		}else{
			return size+" Bytes <br />";
		} 
}

// End new uploader functions

function setQueryString(){
  var queryString="";
  var frm = document.forms[0];
  var numberElements = frm.elements.length;
  for(var i=0; i<numberElements; i++){
    if(i<numberElements-1){
      queryString+= frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
    }else{
      queryString+= frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
    }
  }
  return queryString;
}
var myRequest = false;
var sent=false;

function displayAjax(myURL) {
     // Clear myRequest
     myRequest = false;
     // For browsers: Safari, Firefox, etc. use one XML model
     if (window.XMLHttpRequest) {
          myRequest = new XMLHttpRequest();
          if (myRequest.overrideMimeType) {
               myRequest.overrideMimeType("text/xml");
          }
     } else if (window.ActiveXObject) {
          // For browsers: IE, version 6 and before, use another model
          try {
               myRequest = new
                    ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
               try {
                    myRequest = new
                         ActiveXObject("Microsoft.XMLHTTP");
               } catch (e) {}
          }
     }
     // Make sure the request object is valid
     if (!myRequest) {
          alert("Error: Cannot create XMLHTTP object");
          return false;
     }

     // Link to display function activated when result returned
     myRequest.onreadystatechange = displayReturn;
     // Open the URL request
     myRequest.open("POST", myURL, true);
     myRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
     // Send request
myRequest.send(null);
                        //if(!sent){
                          /*
                          var frm = document.getElementById('upload'); // the form
                          frm.action="undex.php?option=com_lst_uploader&task=upload";
                          frm.submit(); // submit
                          frm = null;
                          */
                        //}
}

function displayReturn() {
     // Check to make sure result came through, 4=complete
     if (myRequest.readyState == 4) {
          // Check HTTP status code
          if (myRequest.status == 200) {
               // Display the responseText
                        //window.document.getElementById("upload").innerHTML=myRequest.responseText;
                            // PROVO ADESSO AD INVIARE IN POST
                        if(lst_what == 1){
                            alert(myRequest.responseText);
                        }
          } else {
               alert("There was a problem with the request.");
          }
     }
}

/*
 * Funzioni per l'upload
 */


//var upload_maxnum ={$cfg_numfiles};
// Add one upload slot
function addUploadSlot(num){
                  if(checkDuplicateFileCount()){return true;}
                  if(checkAllowFileExtensions()){return true;}
                  if(uploadRange <= upload_maxnum){
			var up = document.getElementById("lst_uploader_content");
			var dv = document.createElement("div");
            dv.id = "div_pictureform"+uploadRange;
			
      dv.innerHTML = '<form id="pictureform'+(uploadRange)+'" style="visibility:visible" name="pictureform'+(uploadRange)+'" action="index.php?option=com_lst_uploader&task=ajaxUploader" method="post" enctype="multipart/form-data" target="upload_target" >'+
     '<span style="visibility:hidden" id="f1_upload_process'+(uploadRange)+'">Loading...<img src="components/com_lst_uploader/icons/loading.gif" /></span>'+
     '<span id="f1_upload_form'+(uploadRange)+'" align="center">'+
         '<label> Add file: '+
              '<input id="myfile" name="myfile" type="file" size="30" onchange="addUploadSlot(1);" />'+
              '<input id="categorySendValue" name="folder" type="hidden">'+
              '<input style="visibility:hidden" type="submit" value="submit">'+
         '</label>'+
     '</span>'+
'</form>';
      //<input class="ubrUploadSlot" type="file" name="file' + uploadRange + '" size="60" onChange="addUploadSlot('+(uploadRange + 1)+')">';
			up.appendChild(dv);
			uploadRange++;
			up = null;
			dv = null;
                  }else{
                     document.getElementById("error").innerHTML="You can upload max "+upload_maxnum+" files !<br><br>";
                  }
}

// Check for legal file extentions
// LST - allow_extensions declared via php
function checkAllowFileExtensions(){
	//if(!check_allow_extensions_on_client){ return false; }

	for(var i = 1; i < uploadRange; i++){
		
                if(document.getElementById('pictureform'+i).elements['myfile'].value != ""){
                    // LST - file to lowercase
                    var string = document.getElementById('pictureform'+i).elements['myfile'].value;
                        
                       	if(!string.toLowerCase().match(allow_extensions.replace(/,/g,'|'))){
				//var string = document.getElementById('pictureform'+i).elements['myfile'].value;
				var num_of_last_slash = string.lastIndexOf("\\");

				if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

				var file_name = string.slice(num_of_last_slash + 1, string.length);
				var file_extension = file_name.slice(file_name.indexOf(".")).toLowerCase();

				alert('Sorry, uploading a file with the extension "' + file_extension + '" is not allowed.');
				return true;
			}
		}
	}
	return false;
}

function checkDuplicateFileCount(){
	//if(!check_duplicate_file_count){ return false; }
	var duplicate_flag = false;
	var file_count = 0;
	var duplicate_msg = "Duplicate Upload Files Detected.\n\n";
	var file_name_array = new Array();

	for(var i = 1; i < uploadRange; i++){
		if(document.getElementById('pictureform' + i).elements.myfile.value != ""){
			var string = document.getElementById('pictureform' + i).elements.myfile.value;
			var num_of_last_slash = string.lastIndexOf("\\");

			if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

			var file_name = string.slice(num_of_last_slash + 1, string.length);

			file_name_array[i] = file_name;
		}
	}
	var num_files = file_name_array.length;

	for(var i = 0; i < num_files; i++){
		for(var j = 0; j < num_files; j++){
			if(file_name_array[i] == file_name_array[j] && file_name_array[i] != null){ file_count++; }
		}
		if(file_count > 1){
			duplicate_msg += 'Duplicate file "' + file_name_array[i] + '" detected in slot ' + (i) + ".\n";
			duplicate_flag = true;
		}
		file_count = 0;
	}

	if(duplicate_flag){
		alert(duplicate_msg);
		return true;
	}
	else{ return false; }
}

function setCategorySendValue(){
    	for(var i = 1; i <uploadRange; i++){
            document.getElementById('pictureform' + i).elements.categorySendValue.value = document.getElementById('selectCat').value;
            //document.getElementById('pictureform' + i).elements.categorySendValue.value);
        }
}

  //</script>

