/*************************************************************************
FUNCIONES UTILIZADAS EN LA CARGA DE ARCHIVOS A TRAVÉS DEL MÓDULO FLASH
Y EL POPUP VISUALIZADOR DE IMÁGENES DEL SERVIDOR
*************************************************************************/

//**** FUNCIONES VISUALIZADOR DE IMÁGENES DEL SERVIDOR ****//

var fileTypeFilesSelected = "";
var maxWidthFilesView = 630;
var limitFilesView = 32;
var maxWidthFilesSelected = 210;
var limitFilesSelected = 10;
var allowMultipleSelection = true;
var filterView = "1";

function flashupload_loadFileSelectorData(pag){
	$(document).ready(function(){
		var limit = limitFilesView;
		var maxwidth = maxWidthFilesView;
		var multipleSelection = allowMultipleSelection;
		var filterview = filterView;
		loadURL('admin.php?aE=x&ac=loadAllFiles&FILETYPE='+fileTypeFilesSelected+'&PAG='+pag+'&LIMIT='+limit+'&maxwidth='+maxwidth+'&multipleSelection='+multipleSelection+'&filterview='+filterview,"popup-fileselector-data",true);
	});
}

function flashupload_removeItemFromSelection(fileID){
	
	if(!allowMultipleSelection){
		document.getElementById("popup-fileselector-dataSelectedItems").value = "";
		return;
	}
	
	var ids = document.getElementById("popup-fileselector-dataSelectedItems").value;
	var newIds = "";
	var arr = ids.split("|");
	for(var i = 0;i<arr.length;i++){
		if(arr[i] != fileID){
			if(newIds != "") newIds += "|";
			newIds += arr[i];
		}
	}
	
	document.getElementById("popup-fileselector-dataSelectedItems").value = newIds;
	flashupload_updateItemsSelected(0,newIds);
	
}

function flashupload_goPagItemsSelected(pag){
	var ids = document.getElementById("popup-fileselector-dataSelectedItems").value;
	flashupload_updateItemsSelected(pag,ids);
}

function flashupload_updateItemsSelected(pag,val){
	
	if(val == ""){
		$(document).ready(function(){
			$(document.getElementById("popup-fileselector-dataSelected")).html('<div id="fileInsertDraggable" style="width:210px;height:442px;"></div><script>$(document).ready(function(){ $("#fileInsertDraggable").droppable({	accept:".fileDraggable", tolerance:"pointer", drop:function(event, ui){ var part = ui.draggable.attr("id").split("divID"); var fileID = part[1]; flashupload_pushItemToSelection(fileID); flashupload_markSelectItem(fileID,false); } }); });</script>');
		});
		return;
	}
	
	$(document).ready(function(){
		var limit = limitFilesSelected;
		var maxwidth = maxWidthFilesSelected;
		var multipleSelection = allowMultipleSelection;
		var filterview = filterView;
		loadURL('admin.php?aE=x&ac=loadAllFiles&FILETYPE='+fileTypeFilesSelected+'&PAG='+pag+'&LIMIT='+limit+'&maxwidth='+maxwidth+'&IDS='+val+'&multipleSelection='+multipleSelection+'&filterview='+filterview,"popup-fileselector-dataSelected",true);
	});
	
}

function flashupload_pushItemToSelection(fileID){	
	
	var val = document.getElementById("popup-fileselector-dataSelectedItems").value;
	
	var exist = false;
	
	var arr = val.split("|");
	for(var i = 0;i<arr.length;i++){
		if(arr[i] == fileID){
			exist = true;
			break;
		}
	}
	
	if(exist) return;
	
	if(val != "") val += "|"+fileID;
	else val = fileID;
	
	if(!allowMultipleSelection){
		document.getElementById("popup-fileselector-dataSelectedItems").value = fileID;
	}else{
		document.getElementById("popup-fileselector-dataSelectedItems").value = val;
		flashupload_updateItemsSelected(0,val);
	}
	
}

function flashupload_evalImagesListSelection(listIDS){
	
	if(listIDS == "") return;
		
	var ids = document.getElementById("popup-fileselector-dataSelectedItems").value;
	var arr = ids.split("|");
	
	var arrListIds = listIDS.split("|");
	for(var z = 0;z<arrListIds.length;z++){
	
		var selected = false;
	
		for(var i = 0;i<arr.length;i++){
			if(arr[i] == arrListIds[z]){
				selected = true;
				break;
			}
		}
	
		if(selected){
			flashupload_markSelectItem(arrListIds[z],false);
		}
		
	}
	
}

function flashupload_markSelectItem(fileID,unmark){
	
	if(unmark == null) unmark = false;
	
	var mc = document.getElementById("CHECK_"+fileID);
	if(mc == null) return;
	
	mc.checked = (!unmark);
	var color = (!unmark) ? "#FF0000" : "#333333";
	var opacity = (!unmark) ? 0.5 : 1;
	
	document.getElementById(("tdID"+fileID)).style.opacity=opacity;
	document.getElementById(("tdID"+fileID)).style.MozOpacity=opacity;
		
	document.getElementById(("tdID"+fileID)).style.borderColor = color;
		
}

function flashupload_evalCheckSelected(mc,fileID){

	if(!allowMultipleSelection){
		var id = document.getElementById("popup-fileselector-dataSelectedItems").value;
		if(id != "") flashupload_markSelectItem(id,true);
	}
	
	if(mc.checked){
		flashupload_pushItemToSelection(fileID);
		flashupload_markSelectItem(fileID,false);
	}else{
		flashupload_removeItemFromSelection(fileID);
		flashupload_markSelectItem(fileID,true);
	}
	
}

function flashupload_addSelectFilesToForm(){
	
	var ids = document.getElementById("popup-fileselector-dataSelectedItems").value;
	
	if(ids == ""){
		alert("NO HAY NINGÚN ARCHIVO SELECCIONADO.");
		return;
	}
	
	var name = document.getElementById("popup-fileselector-name").value;
	var table = document.getElementById("popup-fileselector-table").value;
	var multiple = document.getElementById("popup-fileselector-multiple").value;
	
	document.getElementById(name).value = ids;
	
	flashupload_updateFilesView(name,table,multiple);
	popupCssHide();
	
}

function flashupload_openPopupServerFiles(name,table,multiple,typeFiles,filterView){
	
	var ids = document.getElementById(name).value;	
	popupCssShow('admin.php?aE=x&ac=fileSelect&popup_name='+name+'&popup_table='+table+'&popup_multiple='+multiple+'&popup_fileType='+typeFiles+'&popup_ids='+ids+'&popup_filterView='+filterView, 907,565);
	
}

function flashupload_saveFileTxtSuccess(serverResponse,nombreObj,table,multiple){
	if(serverResponse == 0){
		alert("Se ha producido un error y no se ha podido grabar en la base de datos.");
	}else if(serverResponse == "VIMEO_CODE_ERROR"){
		alert("El código introducido no es un código válido de Vimeo.");
	}else if(serverResponse == "YOUTUBE_CODE_ERROR"){
		alert("El código introducido no es un código válido de Youtube.");
	}else{
		document.getElementById((nombreObj+"_VALUE")).value = "";
		flashupload_uploadComplete(nombreObj,serverResponse,multiple,table);
		return;
	}
	flashupload_updateFilesView(nombreObj,table,multiple);
}

function flashupload_saveFileTxt(nombreObj,filter,table,multiple){
		
	var divFileViewer = nombreObj+"_FILEVIEWER";
	
	$(document).ready(function(){
		var value = (document.getElementById((nombreObj+"_VALUE")).value);
		if(value == ""){
			alert("El campo está vacío");
			return;
		}
		value = encodeURI(value.split('"').join("'").split('&').join("|"));
		loadURLResponse('admin.php?aE=x&ac=saveFlashUploadFile&archivo_ID='+value+'&filter='+filter,divFileViewer,null,flashupload_saveFileTxtSuccess,new Array(nombreObj,table,multiple));
	});
	
}

function flashupload_popupInit(){
	
	var fileType = document.getElementById("popup-fileselector-fileType").value;
	fileTypeFilesSelected = fileType;
	
	filterView = document.getElementById("popup-fileselector-filterView").value;
	
	var multiple = document.getElementById("popup-fileselector-multiple").value;
	
	if(multiple == "1" || multiple == "true"){
		
		allowMultipleSelection = true;
		maxWidthFilesView = 630;
		limitFilesView = 24;
		maxWidthFilesSelected = 210;
		limitFilesSelected = 8;
		
	}else{
		
		allowMultipleSelection = false;
		maxWidthFilesView = 840;
		limitFilesView = 32;
		
	}
	
	flashupload_loadFileSelectorData(0);
	
	if(allowMultipleSelection) flashupload_goPagItemsSelected(0);
	
}

//**** FUNCIONES UPLOADER ARCHIVOS FLASH ****//

function flashupload_resizeDiv(nombreObj,num){
	var divID = document.getElementById("DIV_"+nombreObj);
	divID.style.height = num+"px";
}

function flashupload_updateSizeFileViewer(nombreObj){
	$(document).ready(function(){
		var divFileViewer = nombreObj+"_FILEVIEWER";
		$("#"+divFileViewer).slideDown("slow");
	});
}

function flashupload_updateOrderFiles(nombreObj){	
	flashupload_makeupOrderFields(nombreObj);
}

function flashupload_makeupOrderFields(nombreObj){
	
	var ni = document.getElementById("LIST_TABLE_"+nombreObj).getElementsByTagName('tbody')[0].getElementsByTagName('tr');
	for(var i = 0;i<ni.length;i++){
		var item = ni[i];
		var color = ((i+1)%2) ? "f2f2f2" : "dedede";
		item.style.backgroundColor = "#"+color;
		var input = item.getElementsByTagName('input')[0];
		$(document.getElementById("order"+input.value)).html((i+1));
	}
	
}

function flashupload_getItemPosition(nombreObj,itemToGetPos){
	
	var pos = 0;
	
	var ni = document.getElementById("LIST_TABLE_"+nombreObj).getElementsByTagName('tbody')[0].getElementsByTagName('tr');
	for(var i = 0;i<ni.length;i++){
		var item = ni[i];
		if(item == itemToGetPos){
			pos = i;
			break;
		}
	}
	
	return pos;
	
}

function flashupload_deleteFiles(nombreObj,trObj){
	
	var tr = document.getElementById(trObj);
	var trValue = tr.getElementsByTagName('input')[0].value;
	
	var ni = document.getElementById("LIST_TABLE_"+nombreObj).getElementsByTagName('tbody')[0];
	ni.removeChild(tr);
	
	var ids = document.getElementById(nombreObj).value;
	var newIds = "";
	var arr = ids.split("|");
	for(var i = 0;i<arr.length;i++){
		if(arr[i] != trValue){
			if(newIds != "") newIds += "|";
			newIds += arr[i];
		}
	}
	document.getElementById(nombreObj).value = newIds;
	
	flashupload_makeupOrderFields(nombreObj);
	
}

function flashupload_updateFilesView(nombreObj,table,multiple){
	
	var divFileViewer = nombreObj+"_FILEVIEWER";
	var divFilterView = nombreObj+"_FILTERVIEW";
	var divFilterView = nombreObj+"_FILTERVIEW";
	var filterview = document.getElementById(divFilterView).value;
	
	var listfilterview = document.getElementById(nombreObj+"_FILTERIMAGEMODIFY").value;
	
	var templateajax = document.getElementById(nombreObj+"_TEMPLATEAJAX").value;
	var foreign_fieldname = document.getElementById(nombreObj+"_FOREIGN_FIELDNAME").value;
	var foreign_fieldvalue = document.getElementById(nombreObj+"_FOREIGN_FIELDVALUE").value;
	
	var ids = document.getElementById(nombreObj).value;
	
	$(document).ready(function(){
		loadURL('admin.php?aE=x&ac=loadFlashFiles&tableObj='+table+'&multiObj='+multiple+'&ids='+ids+'&nombreObj='+nombreObj+'&filterview='+filterview+'&listfilterview='+listfilterview+'&templateajax='+templateajax+'&foreign_fieldname='+foreign_fieldname+'&foreign_fieldvalue='+foreign_fieldvalue,divFileViewer,null,flashupload_updateSizeFileViewer,new Array(nombreObj));
	});
}

function flashupload_uploadComplete(name,id,multiple,table){
	if(multiple == "0" || multiple == "false"){
		document.getElementById(name).value = id;
	}else{
		var val = document.getElementById(name).value;
		if(val != "") document.getElementById(name).value = val+"|"+id;
		else document.getElementById(name).value = id;
	}
	flashupload_updateFilesView(name,table,multiple);
}

function flashupload_showDatabaseValues(name,ids,multiple,table){
	
	document.getElementById(name).value = ids;
	flashupload_updateFilesView(name,table,multiple);
	
}

function flashupload_uploadError(name,typeError,errorStr){
	
	if(errorStr != ""){
		alert(errorStr);
	}else{
		alert("EL ARCHIVO "+name+" NO HA PODIDO SER SUBIDO AL SERVIDOR. HA OCURRIDO EL SIGUIENTE ERROR ('"+typeError+"') CUANDO SE ESTABA PROCESANDO.");
	}
	
}

function createFlashUploadFile(URL,nombreObj,filtro,type,extension,multiple,act,dbTableObj){
		
	var so = new SWFObject("skins/admin/swf/fileUpload.swf",nombreObj+"_fileUpload","430","100%","9");
	so.addParam("quality","high");
	so.addParam("wmode","transparent");
	so.addParam("allowScriptAccess","always");
	so.addParam("allowNetworking","true");
	so.addVariable("filter",filtro);
	so.addVariable("type",type);
	so.addVariable("extension",extension);
	so.addVariable("multiple",multiple);
	
	so.addVariable("URL",URL);
	
	so.addVariable("titulo","Imagen - TITULO");
	so.addVariable("descripcion","Imagen - DESCRIPCION");
	so.addVariable("categoria","1");
	so.addVariable("idioma","1");
	so.addVariable("actual","");
	so.addVariable("fromRoot","");
	
	so.addVariable("nombre",nombreObj);
	so.addVariable("dbTable",dbTableObj);
	so.addVariable("act",act);
	
	so.write("DIV_"+nombreObj);
		
}