/* JavaScript
-------------------------------------------------------------------------------------------
	Copyright (c) 2008 The AgenciaWX Development Team

Remove um Elemento da pagina, salvando num vetor, e depois remove do vetor exibe na pagina

Funcoes:

wxslide(obj, efeitos)
	(obj: objeto Jquery da div que ira ser oculta/exibita)
	(efeitos: Cria ou nao um efeito ao esconder (util para carregamento inicial))

wxslidecheck(chk,obj,efeito)
	De acordo com o status do checkbox exibe ou oculta a div
	(chk: obj jquery do checkbox)
	(obj: objeto Jquery da div que ira ser oculta/exibita)
	(efeitos: Cria ou nao um efeito ao esconder (util para carregamento inicial))

wxslide_oculta(obj, efeitos)
	Oculta a Div

wxslide_exibe(obj, efeitos)
	Exibe a Div
-------------------------------------------------------------------------------------------*/


var WXS_frame = new Array();

// Botao Checkbox
function wxslidecheck(chk, obj, efeitos, inverte){

	// Verificacao
	if (chk.size() == 0) throw 'ERRO: chk nao encontrado em wxslideckeck';
	if (obj.size() == 0) throw 'ERRO: obj nao encontrado em wxslideckeck';

	if (inverte == false)
		if ((chk.attr('checked')))
			wxslide_exibe(chk, obj, efeitos);
		else
			wxslide_oculta(chk, obj, efeitos);
	else
		if ((chk.attr('checked')))
			wxslide_oculta(chk, obj, efeitos);
		else
			wxslide_exibe(chk, obj, efeitos);
	


}

// Oculta Frame
function wxslide_oculta(chk, obj, efeitos){

	// Verificacao
	if (obj.size() == 0) throw 'ERRO: obj nao encontrado em wxslideckeck';

	if (!WXS_slide_get(obj))
		wxslide(chk, obj, efeitos);

}

// Mostra Frame
function wxslide_exibe(chk, obj, efeitos){

	// Verificacao
	if (obj.size() == 0) throw 'ERRO: obj nao encontrado em wxslideckeck';

	if (WXS_slide_get(obj))
		wxslide(chk, obj, efeitos);
}

// Returna se o objeto esta visivel ou oculto
function WXS_slide_get(obj){

	// Verificacao
	if (obj.size() == 0) throw 'ERRO: obj nao encontrado em wxslideckeck';

	var nome = obj.attr('id');

	var encontrado = false;

	// Procura por elemento no ARRAY
	for (x in WXS_frame)
		if (WXS_frame[x][0] == nome)
			encontrado = true;

	return encontrado;
}


// Executa o Slide
function wxslide(chk, obj, efeitos){

	chk.attr('disabled', 'disabled');

	// Verificacao
	if (obj.size() == 0) throw 'ERRO: obj nao encontrado em wxslideckeck';


	var nome = obj.attr('id');
	var html = obj.children();

	//document.getElementById('Grupo1').childNodes

	var encontrado = false;
	var tmp;

	// Procura por elemento no ARRAY
	for (x in WXS_frame){
		if (WXS_frame[x][0] == nome){
			encontrado = true;
			obj.append(WXS_frame[x][1]);
			if (efeitos)
				obj.slideDown("fast", function(){

					chk.attr('disabled', '');

				});
			// limpa este item
			WXS_frame.splice(x,1);

			return;
		}
	}

	// Se nao encontrado
	if (!encontrado){

		// cria um array com os elementos e salva no vetor
		tmp = Array(nome, html);

		WXS_frame.push(tmp);
		// Limpa elemento


 		if (efeitos){
			obj.slideUp("fast", function(){
				obj.empty();
				chk.attr('disabled', '');
			});
		}else{
			obj.empty();
			obj.hide();
			chk.attr('disabled', '');
		}

	}else
		chk.attr('disabled', '');

	return;
}

