// JavaScript Document

if(typeof $_ === 'function') {}else{
		// Creo la función
		function $_(selector){
			if( typeof document.querySelector( selector ) === "undefined" ){
					//alert('Error: el selector no ha sido definido');
					return false;
			}
			return document.querySelector(selector);
		}
	}
	
(function(){
	

	var wye_mTimer;
	var r;
	var wye_ElementoSel = '';
	//var wye_ElementoSel = new Array();
	//var $i=0;
			
	function XHRO() {
				if (window.XMLHttpRequest) {
					return new XMLHttpRequest();
				} else if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} else {
					//document.getElementById('p_status').innerHTML = 'No se puede crear objeto XmlHttpRequest.';
				}
	}
	
	function objetus() {
		var xmlhttp=false;
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
			   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
	
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}
	
	function idcarpeta( $carpeta ){
			var chars={ "á":"", "é":"", "í":"", "ó":"", "ú":"",
							"à":"", "è":"", "ì":"", "ò":"", "ù":"", "ñ":"",
							"Á":"", "É":"", "Í":"", "Ó":"", "Ú":"",
							"À":"", "È":"", "Ì":"", "Ò":"", "Ù":"", "Ñ":"",
							" ":"", ",":"", ".":"", "-":"", "@":""
						}
			var expr=/[áàéèíìóòúùñ ,.-@]/ig;
			var id_carpeta = $carpeta.replace(expr,function(e){return chars[e]});
			
			return id_carpeta;
	}
	
	yGestorArchivos = {
			abrir_archivo : function( $dir_actual, $localdir, $id ){
				// cargar load
				$_( '#cCarp_' + $id ).innerHTML = '<span class="load-xs"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></span>';
				/* muestro ruta de la carpeta */				
					this.barra_navegacion( $localdir );
				/* expando carpeta */
					$_( '#mm_' + $id ).className = 'fa fa-minus-square-o';
					$_( '#mmc_' + $id ).className = 'ico-yga-carpeta-o';
				/* Listo sub-carpetas */
					$ajax({
							metodo: 'GET',
							data: 'a=abrir_carpeta&dir_actual=' + $dir_actual + '&ldir=' + $localdir + '&basedir=' + dir + '&vista=' + vista,
							url: 'lib/ye.php',
							selector: '#cCarp_' + $id
						});
			},
			
			abrir_explorar_archivo : function( $carpeta, $localdir, $id ){
				/* abro carperta */
					this.abrir_archivo( $carpeta, $localdir, $id )
				/* exploro carpeta */
					this.explorar_archivo( $carpeta, $localdir );
			},
			
			/* Cargo ruta en la barra de navegacion */
			barra_navegacion : function( $ldir ){
				$barra = $_( '#location' );
				$ldir = ( typeof $ldir != 'undefined' ) ? $ldir : '';
				
				//$locationdir = locationdir + '/' + $dir;
				$barra.value = $ldir;
			},
			
			/* funcion principal que carga el sistema
			 * gestor de archivos
			 *
			 * ej.
			 * var homedir = "home/mi_host/public_html";
			 * yGestorArchivos.cargar();
			 *
			 */
			cargar : function(){
				// cargo ruta en la barra de navegacion
				this.barra_navegacion();
				// Cargo el panel de navegacion y explorador de archivos
				this.panel_navegacion( '#panelNav' );
				this.explorar_archivo( '', '' );
			},
			
			
			dirnav : function(){
				this.explorar_archivo( '', $barra.value );
			},
			
			expandir_contraer : function( $carpeta, $locationdir, $id ){
				if( $_( '#mm_' + $id ).className === 'fa fa-plus-square-o' ){
					$_( '#mm_' + $id ).className = 'fa fa-minus-square-o';
					$_( '#mmc_' + $id ).className = 'ico-yga-carpeta-o';
					this.abrir_archivo( $carpeta, $locationdir, $id );
				}else{
					$_( '#mm_' + $id ).className = 'fa fa-plus-square-o';
					$_( '#mmc_' + $id ).className = 'ico-yga-carpeta';
					$_( '#cCarp_' + $id ).innerHTML = '';
				}
			},
			
			/* funcion para cargar explorador de archivos */
			explorar_archivo : function( $dir_actual, $localdir ){
				//$localdir  = ( typeof $localdir  != 'undefined' ) ? $localdir  : '';
				// imprimo load
				$_( '#palexplorador' ).innerHTML = '<span class="load-xs"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></span>';
				/* muestro ruta de la carpeta */				
					this.barra_navegacion( $localdir );
				/* Listo sub-carpetas */
					$ajax({
							metodo: 'GET',
							data: 'a=explorar_carpeta&dir_actual=' + $dir_actual + '&ldir=' + $localdir + '&basedir=' + dir + '&vista=' + vista + '&insImg=' + insimg,
							url: 'lib/ye.php',
							selector: '#palexplorador'
						});
						
				habilitar_acc();
			},
			
			/* funcion para cargar panel de navegacion */
			panel_navegacion : function( $palnav ){
				// Llamo funcion YGA para cargar panel de navegacion
				$ajax({
							metodo: 'GET',
							data: 'a=panelNav&basedir=' + dir,
							url: 'lib/ye.php',
							selector: $palnav
						});
			},
			
			oSel: function(){
					$arraydir = '';
						for( i = 0; i < document.getElementsByName('chka').length; i++ ){
								$dir = '#chka_' + i;
								if( $_($dir).checked ){ $arraydir += dir.substring(1) + $_($dir).value + ';'; }
						}
						//return $arraydir.join('; ');
						if( $arraydir != '' ) return $arraydir.substring(0, $arraydir.length - 1);
						return null;
			}
	}
	
	ygaModal = {
		iniciar : function( cHTML ){
										
							var $body = document.getElementsByTagName("body")[0];
							var $overlay = document.createElement('div');
								$overlay.setAttribute('id','yga_modal');
								//$overlay.onfocus = function(){ WebyModal.cerrar(); };
								$overlay.innerHTML = '<input type="radio" id="yga_modal_btn_cerrar" name="modal" onClick="ygaModal.cerrar()" /><label for="yga_modal_btn_cerrar">X</label>';
								$body.appendChild($overlay);
							
							var $overcont = document.createElement('div');
								$overcont.setAttribute('id','yga_modal_contenedor');
								$overcont.innerHTML = cHTML;
								$overlay.appendChild($overcont);
			},
			
		abrir : function( cntHTML ){
			if( document.getElementById('yga_modal_contenedor') ){
				document.getElementById('yga_modal_contenedor').innerHTML = cntHTML;
			}else{
				this.iniciar( cntHTML );
			}
			document.getElementById('yga_modal').style.top = '0';
			document.body.style.overflowY = 'hidden';
		},
								
		cerrar : function(){
				document.getElementById('yga_modal').style.top = '-200vh';
				//wymdl.innerHTML = '';
				document.body.style.overflowY = 'auto';
			}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	function progressHandler(event){
		$_("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total;
		var percent = (event.loaded / event.total) * 100;
		$_("progressBar").value = Math.round(percent);
		$_("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
	}
	function completeHandler(event){
		$_("#explorador_archivos").innerHTML = event.target.responseText;
		//_("progressBar").value = 0;
	}
	function errorHandler(event){
		$_("status").innerHTML = "Upload Failed";
	}
	function abortHandler(event){
		$_("status").innerHTML = "Upload Aborted";
	}



	
	$ajax = function(ajustes){
			
			var wye_Request = XHRO();
			//var Data = new FormData(form); 'application/x-www-form-urlencoded'
			 var url = (ajustes.metodo == 'GET') ? ajustes.url + '?' + ajustes.data : ajustes.url;
			
			if (wye_Request.readyState == 4 || wye_Request.readyState == 0) {
					wye_Request.open(ajustes.metodo, url, true);
					if(ajustes.contenidoTipo != 'undefined') wye_Request.setRequestHeader('Content-Type',ajustes.contenidoTipo);
					wye_Request.onreadystatechange = function(){
															if (wye_Request.readyState == 4 && wye_Request.status == 200) {
																//$_(ajustes.selector).innerHTML = wye_Request.responseText;
																if( typeof ajustes.selector != 'undefined' ){
																	$_(ajustes.selector).innerHTML = wye_Request.responseText;
																}else{
																	ajustes.suceso(wye_Request.responseText);
																}
															}
														};
														
					if(ajustes.metodo === 'GET') {
						wye_Request.send(null);
					}else{
						wye_Request.send(ajustes.data); //alert('post')
					}
			}
		}
	
	// ** Funcion para extraer path de URL
	function wye_obtPath( path_local ) {
		var loc = window.location;
		var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
		return ( path_local == true ) ? pathName : loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
	}
		
})();