﻿// JScript File

// Para controlar el Selector
function parsear(tr){
	a = tr.id.split("_");
	tr.control = a[0];
	tr.idSel = a[2];
}

function buscaChk(tr){
	if(tr == null) return null;
	return document.getElementById(tr.control+"_chk"+tr.idSel);
}

function buscaDiv(tr){
	if(tr == null) return null;
	return document.getElementById(tr.control+"_div"+tr.idSel);
}

function fijarClase(tr){
	if(buscaChk(tr).checked)
		tr.className = "CatBasicoMarcado";
	else tr.className = "CatBasicoNormal";
}

function clickTR(tr){
	chk = buscaChk(tr);
	if(tr.solo && chk.checked){
		Desmarcar(tr);
		return;
	}
	if(!tr.solo && tr == tr.parentElement.trActiva){ //clic dos veces desmarca
		Desmarcar(tr);
		return;
	}
	Activar(tr);
}
function Activar(tr)
{   
	chk = buscaChk(tr);
	chk.checked = true;	//activa el checkbox
	oldDiv = buscaDiv(tr.parentElement.trActiva);
	if (oldDiv != null){
		oldDiv.style.display="none";
		fijarClase(tr.parentElement.trActiva);
		//tr.parentElement.trActiva.className = tr.className = tr.myClass = "CatBasicoMarcado";
	}
	
	if(tr.solo){
		fijarClase(tr);
	}
	else{
		tr.className = "CatBasicoActivo";
		div = buscaDiv(tr);
		tr.parentElement.trActiva = tr;
		div.style.display="block";
	}
	//TopPos(tr);
}

function Desmarcar(tr)
{
	buscaDiv(tr).style.display="none";
	buscaChk(tr).checked = false;
	
	if (tr.parentElement.trActiva == tr){				//desmarco el actual seleccionado
		tr.parentElement.trActiva = null;		// no hay actual
	}
	fijarClase(tr);
	//tr.className = tr.myClass = "CatBasicoNormal";
}

function ClickCheck(chkbox) {
	//marcaron un checkbox
	if(chkbox.checked)
		Activar(chkbox.parentElement.parentElement);	//ojo manda el tr (fila)
	else
		Desmarcar(chkbox.parentElement.parentElement);	//desactiva si esta seleccionado
}

function ClickTD( td ){
	//pincharon un nombre
	tr = td.parentElement;
	clickTR(tr);	// marca el checkbox si no lo está
}

function initTR(tr, solo){
	parsear(tr);	//le pone al tr los atributos control, idSel
	tr.solo = solo;
	fijarClase(tr);
}

function validarSelectores(){
//TODO:
//   sacar todos los chkbox
	inps = document.getElementsByTagName("input");
	for(i=0; i<inps.length; i++){
		if(inps[i].type != "checkbox") continue;
		chk = inps[i];
		if(!chk.checked) continue;	//  si no chekeado continue
		// verificar si tiene el edit de cantidad
		editName = chk.id.replace("_chk","_C");
		a = document.getElementsByName(editName);
		if(a.length != 1) continue;
		ed = a[0];
		// comprobar que tenga un numero válido
		if(ed.value != parseInt(ed.value)){
			// numero no valido
			// llamar a ClickTD para seleccionarlo
			Activar(chk.parentElement.parentElement);
			ed.focus();
			alert("Introduzca una cantidad válida")
			return false; //aqui mismo paro
		}
	}
	return true; //Todo valido
}
/* //TODO: quitar
function CambiarCSS(tr, css)
{
   	tr.myClass = tr.className;
   	tr.className = css;
}
function RestoreCSS(tr)
{
	tr.className = tr.myClass;
}
*/
function ClickSelector(dv)
{
    dv = document.getElementById(dv);
    if (dv.className == 'visible')
        dv.className = 'oculta';
     else
     dv.className = 'visible';   
}
function PosicionarHelp()
{
	if (!activo) return;
	
	var dv = document.getElementById(activo+"dvHelp"); 
  var Puntero = document.getElementById(activo+"Puntero");
  img = document.getElementById(activo);
  Puntero.style.left = LeftPos(img) - Puntero.offsetWidth-5+'px';   
  dv.style.left = parseInt(Puntero.style.left) - dv.offsetWidth+'px';     
}
