//////////////////////
//  PANELS
////////////////////////

var mediatypes = {1:"videos", 2:"audios", 3:"imagenes", 4:"playlists"};
var maxInnerH = 500;
function toggleContentPane(id,quick,forcechange){
	quick=true;
	var pane = dojo.byId('contents'+id);
	var medialist = dojo.byId('contents'+id+'medialist');
	var mediaheader = dojo.byId('contents'+id+'mediaheader');
	var inner = dojo.byId('contents'+id+'innercontent');
	var nH;
	if(inner){
		nH = medialist==null?inner.offsetHeight:medialist.offsetHeight+mediaheader.offsetHeight;
	}else{
		nH = maxInnerH;
	}
	nH = Math.min(maxInnerH,nH);
	var closing = forcechange!=null?!forcechange:(parseInt(pane.style.height)>0);
	if(inner){
		var opencpane = dojo.animateProperty({ node: 'contents'+id,
									  duration: quick?1:800,
									  properties: {	height: {end: closing?0:nH} }
									  });
		opencpane.play();
	}
	var toggler = dojo.byId('togglercontents'+id);
	if(toggler) toggler.className = toggler.className.replace(closing?'minimize':'maximize',closing?'maximize':'minimize');
}

var mediaPanelsViews = Array(true,true,true,true);
function toggleMediaPanelView(num,val){
	var mpanel = dojo.byId("mediapanel"+num);
	if(mpanel!=null){
		val = val==null?!mediaPanelsViews[num-1]:val;
		mediaPanelsViews[num-1] = val;
		mpanel.style.display = val?"block":"none";
		var chh = dojo.byId("mediaviewtoggler"+num);
		if(chh) chh.checked = val;
	}
}



function toggleMediaAdmin(val){
	mediaadmin=val;
	var toolselector = dojo.byId("toolsel");
	if(toolselector!=null){
		for(var j=0;j<toolselector.length;j++){
			toolselector.remove(j);
		}
		var ctools = mediaadmin?admintools:mdmtools;
		for(i in ctools){
			var tool = ctools[i];
			toolselector.options[i] = new Option(tool.title);
			toolselector.options[i].value = tool.id;
			if(tool.id == selectedTool)
				toolselector.selectedIndex = i;
		}
		if(selectedTool!=toolselector.value) loadTool(toolselector.value,true);
	}
	var inacbut = dojo.byId("inactivebut");
	if(inacbut!=null){
		inacbut.style.display=mediaadmin?'':'none';
	}
	refreshSearches();
}
function mediaChooseThumb(newval,fromwho){
	dojo.byId("mthumb").value = newval;
	if(fromwho.parentNode!=null){
		var thumbs = dojo.query(".thumboption",fromwho.parentNode);
	}else{
		var thumbs = dojo.query(".thumboption");
	}
	for(var i=0;i<thumbs.length;i++){
		while(thumbs[i].className.indexOf("active")!=-1)
			thumbs[i].className = thumbs[i].className.replace("active","");
	}
	fromwho.className += " active";
}
function showDiv(who,dispd){
	if(who!=null) who.style.display='none';
	dojo.byId(dispd).style.display='block';
}
function changeEditTab(which){
	var tabsbuts = dojo.query(".tab",dojo.byId("edittabs"));
	var tabs = dojo.query(".edittab",dojo.byId("tabsbody"));
	for(var i=0;i<tabsbuts.length;i++){
		var tb = tabsbuts[i];
		while(tb.className.indexOf("selected")!=-1)
			tb.className = tb.className.replace("selected","");
		tb.className += tb.className.indexOf(which)!=-1?" selected":"";
	}
	for(var i=0;i<tabs.length;i++){
		var tab = tabs[i];
		while(tab.className.indexOf("opened")!=-1)
			tab.className = tab.className.replace("opened","");
		tab.className += tab.className.indexOf(which)!=-1?" opened":"";
	}
}

//////////////////////
//  META DATA
////////////////////////
var metadatatypes = {client:"Cliente",product:"Producto",agency:"Agencia",producer:"Productora",version:"Versi&oacute;n",duration:"Duraci&oacute;n",art_director:"Director de arte",other:"Otro..."};
function addMetaInput(){
	var aval = dojo.byId("metaaddcount");
	var cant = aval!=null?aval.value:1;
	var where = dojo.byId("metadatalist");
	var typeoptions = "<option value=\"\"></option>";
	for(name in metadatatypes){
		typeoptions += "<option value=\""+name+"\">"+metadatatypes[name]+"</option>";
	}
	for(var i=0;i<cant;i++){
		do{
			var rndid = "mdata"+(Math.round(Math.random()*10000));
		}while(dojo.byId(rndid)!=null);
		var newOpt = document.createElement("div");
		newOpt.className = "metainput";
		newOpt.id = rndid;
		var optType = document.createElement("div");
		optType.className = "type";
		optType.id = "type"+rndid;
		var typehtml = "<select name=\"mdtype[]\" onchange=\"createMetaDataField('"+rndid+"',this);\">";
		typehtml += typeoptions;
		typehtml += "</select>";
		typehtml += "<input type=\"hidden\" name=\"mdrnd[]\" value=\""+rndid+"\" />";
		optType.innerHTML = typehtml;
		var optData = document.createElement("div");
		optData.className = "data";
		optData.id = "data"+rndid;
		var optPriv = document.createElement("div");
		optPriv.className = "privacy";
		optPriv.id = "priv"+rndid;
		var privHTML = "";
		if(ima || img) privHTML += "<label class=\"official\"><input type=\"radio\" value=\"official\" name=\"priv"+rndid+"\" /> </label> ";
		privHTML += "<label class=\"public\"><input type=\"radio\" value=\"public\" name=\"priv"+rndid+"\" /> </label> ";
        privHTML += "<label class=\"private\"><input type=\"radio\" value=\"private\" name=\"priv"+rndid+"\" checked=\"checked\" /> </label> ";
		optPriv.innerHTML = privHTML;
		var optUsr = document.createElement("div");
		optUsr.className = "userid "+globalusert;
		optUsr.innerHTML = globaluserid;
		var optDel = document.createElement("div");
		optDel.className = "delete";
		optDel.did = rndid;
		optDel.onclick = function(){deleteMetaDataField(this.did);};
		newOpt.appendChild(optType);
		newOpt.appendChild(optData);
		newOpt.appendChild(optDel);
		newOpt.appendChild(optUsr);
		newOpt.appendChild(optPriv);
		var wrapper = document.createElement("div");
		wrapper.style.clear = "both";
		newOpt.appendChild(wrapper);
		where.appendChild(newOpt);
	}
}
function createMetaDataField(id,typef){
	var optData = dojo.byId("data"+id);
	var optInput = dojo.byId("val"+id);
	var valu = optInput!=null?optInput.value:"";
	var dcontent = "";
	switch(typef.value){
		case "":
			break;
		case "other":
			dcontent += "<div style=\"width:30%;float:left;\">";
			dcontent += "Nombre<br /><input type=\"text\" name=\"name"+id+"\" style=\"width:100%;\" />";
			dcontent += "</div>";
			dcontent += "<div style=\"width:68%;float:left;margin-left:3px;\">";
			dcontent += "Valor <input type=\"text\" name=\"val"+id+"\" value=\""+valu+"\" id=\"val"+id+"\" style=\"width:100%;\" />";
			dcontent += "</div>";
			break;
		default:
			dcontent = "<input type=\"text\" name=\"val"+id+"\" value=\""+valu+"\" id=\"val"+id+"\" style=\"width:100%;\" />";
			break;
	}
	optData.innerHTML = dcontent;
}
function deleteMetaDataField(id){
	var optData = dojo.byId(id);
	console.log(id,optData);
	if(optData!=null){
		optData.parentNode.removeChild(optData);
	}
}

//////////////////////
//  LOADINGS
////////////////////////
function getLoadingMediaHTML(){
	var ret = "<div class=\"searching\"> <img src=\"mediamanager/_images/loadingsmall.gif\" /> Buscando...</div>";
	ret += "<div style=\"clear:both;\"></div>";
	return ret;
}
function getLoadingMediaErrorHTML(){
	var ret = "<div class=\"searching\"> <img src=\"mediamanager/_images/loadingerrorsmall.gif\" /></div>";
	ret += "<div style=\"clear:both;\"></div>";
	return ret;
}





/*//////////////
//	CHEKING ITEMS
////////////////*/
var mediaselcount=0;
var mediaData = Array();
var selectedMedia = Array();
function checkItem(type,num,val){
	if(savingPL) return false;
	var cb = dojo.byId("media"+type+"_"+num);
	if(cb!=null){
		var line = dojo.byId("line"+cb.value);
		if(val && selectedTool == "pl" && line.className.indexOf("allinactive")!=-1){
			var msgbox = dojo.byId("toolmsg");
			msgbox.style.display='block';
			msgbox.innerHTML = "S&oacute;lo puede agregar media activa";
			msgbox.className="error";
			checkItem(type,num,!val);
			return null;
		}else if(val && line.className.indexOf("playlist")!=-1){
			if(selectedTool == "pl" || selectedTool == "add" || selectedTool == "del"){
				var msgbox = dojo.byId("toolmsg");
				msgbox.style.display='block';
				var errmsg = "";
				switch(selectedTool){
					case "pl":
						errmsg = "No puedes seleccionar playlists para armar un nuevo playlist";
						break;
					case "add":
						errmsg = "No puedes seleccionar playlists para activar";
						break;
					case "del":
						errmsg = "No puedes seleccionar playlists para desactivar";
						break;
				}
				msgbox.innerHTML = errmsg
				msgbox.className="error";
				checkItem(type,num,!val);
				return null;
			}
		}
		cb.checked = val!=null?val:false;
		selectedMedia[cb.value]=cb.checked;
		if(cb.checked){
			if(true) setMediaData(cb.value,type,num);
			line.className+=" selected";
		}else{
			mediaData[cb.value]=null;
			while(line.className.indexOf("selected")!=-1)
				line.className = line.className.replace("selected","");
		}
		
		return true;
	}
	return false;
}
function setMediaData(value,type,num){
	if(selectedMedia[value] && mediaData[value]==null){
		var line = dojo.byId("line"+value);
		var cbfile = stripHTML(dojo.byId('fullname'+value).innerHTML).replace("\n","");
		var cbtitle = "";
		if(line.className.indexOf("playlist")!=-1){
			cbtitle = "Playlist";
		}else{
			cbtitle = stripHTML(dojo.byId('title'+value).innerHTML).replace("\n","");
		}
		
		var showdata = "Archivo: "+cbfile+"<br />";
		if(cbtitle != null && cbtitle!="") showdata += "T&iacute;tulo: "+cbtitle+"<br />"
		if(dojo.byId('sizes'+value)!=null ) showdata += "Tama&ntilde;o: "+stripHTML(dojo.byId('sizes'+value).innerHTML)+"<br />";
		if(dojo.byId('duration'+value)!=null ) showdata += "Duraci&oacute;n: "+stripHTML(dojo.byId('duration'+value).innerHTML)+"<br />";
		if(dojo.byId('date'+value)!=null ) showdata += "Fecha: "+stripHTML(dojo.byId('date'+value).innerHTML)+"<br />";
		showdata = showdata.replace("'","\\'");

		var mediashowtitle = cbfile+(cbtitle.length>1?" - "+cbtitle:"");
		mediaselcount++;
		mediaData[value] = {value:value,title:mediashowtitle,creator:globaluserid,notes:"",type:type,num:num,id:value,order:mediaselcount,showdata:showdata};
	}
}
function deleteItem(code){
	var data = mediaData[code];
	if(data.num!=null){
		checkItem(data.type,data.num!=null?data.num:null,false);
	}else{
		selectedMedia[code]=false;
		mediaData[code]=null;
		checkAllSelecteds();
	}
	updateTool();
}



/*//////////////
//	CHEKING SELECTEDS
////////////////*/
function checkSelecteds(type,skipupdate){
	var pane = dojo.byId('contents'+type+'innercontent');
	var cbs = dojo.query("input[type=checkbox]",pane);
	var lines = dojo.query(".inputdata",pane);
	if(cbs.length>0){
		for(var i=0;i<cbs.length;i++){
			checkItem(type,i,selectedMedia[cbs[i].value]);
		}
	}
	var ppc = dojo.byId("cont"+type+"count");
	if(ppc) ppc.innerHTML = "("+lines.length+")";
	//if(!skipupdate) updateTool();
}
function selectAll(type,value,skipupdate){
	if(savingPL) return null;
	var pane = dojo.byId('contents'+type);
	var cbs = dojo.query("input[type=checkbox]",pane);
	if(cbs.length>0){
		for(var i=0;i<cbs.length;i++){
			checkItem(type,i,value);
		}
	}
	if(!skipupdate) updateTool();
}
function updateTool(){
	switch(selectedTool){
		case "pl":
			updatePL();
			break;
		case "del":
			updateDeact();
			break;
		case "add":
			updateAct();
			break;
		case "rem":
			updateRem();
			break;
		case "rel":
			updateRel();
			break;
	}
}
function resetAllSelected(){
	selectedMedia = Array();
	mediaData = Array();
	mediaselcount=0;
	selectAll(1,false,true);
	selectAll(2,false,true);
	selectAll(3,false,true);
	updateTool();
}
function checkAllSelecteds(){
	for(var j=1;j<=4;j++){
		checkSelecteds(j,true);
	}
	updateTool();
}
function updateMediaForm(){
}
