// ====================================================
// FUNCIONS JAVASCRIPT
//
// Creat: 10/05/2006
// Ultima modificacio: 10/05/2006
//
// Conté les funcions globals de javascript
// ====================================================

function capa () {
	var _args = capa.arguments;

	for (i = 0; (i < _args.length); i += 2) {
		if (_args[i] == 'x') {
			document.getElementById(_args[i+1]).style.display = 'none';
		} else
		if (_args[i] == 'o') {
			document.getElementById(_args[i+1]).style.display = 'block';
		}
	}
}

function canvia (_select) {
	if (_select.id == 'interes') {
		var __lloguer_camp = document.getElementById('lloguer');
		if (_select.value == '0') {
			capa ('x','cLloguer','x', 'cTemps');
		} else {
			capa ('o','cLloguer');
			if (__lloguer_camp.value == '1') capa ('o', 'cTemps');
		}
	} else if (_select.id == 'lloguer') {
		if (_select.value == '0') {
			capa ('x', 'cTemps');
		} else {
			capa ('o', 'cTemps');
		}
	} else if (_select.id == 'reset') {
		capa ('x', 'cTemps','x', 'cLloguer');
	}
}

function canviaIMG (_img, _a) {
	document.getElementById('imgFoto').src = 'kreo_minis/'+_img;
	for (_x = 1; document.getElementById('foto'+_x) != null; _x++) { document.getElementById('foto'+_x).className = 'repos'; }
	document.getElementById(_a).className = 'seleccionat';
}

function enviarForm (_form, _argsstr) {
	var _args = String(_argsstr).split(';'), _enviar = true;

	var tipos = new Array ();
	tipos['@'] = new Array ();	tipos['@']['er'] = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;	tipos['@']['msg'] = 'Introduce una dirección de correo válida.';

	var omplit = /^[\.\s\w\W]*\w[\.\s\w\W]*$/;

	for (i = 0; ((i < _args.length) && (_enviar)); i += 2) {
		_str = String (_args[i+1]);
		_arr = _str.split(', ');
		_camp = eval ("_form." + _args[i]);

		for (x = 0; ((x < _arr.length) && _enviar); x++) {
			_x_ = _arr[x].split (' ');
			switch (_x_[0]) {
				// TIPOS
				case '@':
					if (omplit.test(_camp.value) && !tipos[_x_[0]]['er'].test(_camp.value)){
						_enviar=false;
						_camp.focus();
						alert (tipos[_x_[0]]['msg']);
					}
					break;
				// COMPROVACIONS
				case 'r':
					if (!omplit.test(_camp.value)){
						_enviar=false;
						_camp.focus();
						alert ('Te has dejado un campo en blanco.');
					}
					break;
			}
		}
	}
	if (_enviar) { _form.quies.value = "korekta"; _form.submit(); }
	return _enviar;
}

function voreAmagar (__f, __t) {
	for (x = 0; x < __t.length; x++) capa ('x','sm'+__t[x]);
	capa ('o',__f);
}

function accioform (_a, _d, _f) {
	var __f = document.getElementById('formcarpetes');
	__f.accio.value = _a;
	__f.dir.value = _d;
	__f.ficher.value = _f;
	__f.submit();
}

function carpeta (__d) {
	accioform ('', __d, '');
}

function br_nl (__txt) {
	return String (__txt).replace (/<br\/>/g, "\n");
}

function posarValue (__camp, __valor, __default) {
	var __cx = document.getElementById(__camp);
	__cx.value = __valor;
	if (__default) __cx.defaultValue = __valor;
}

function posarPermisos (_q, _qui, _per) {
	var __temp = String(_per).split(';');
	var __qui = document.getElementById('f'+_qui);
	var __que = document.getElementById('fpermis'+_qui);
	for (i = 0; i < __temp.length; i++) {
		var __valors = String(__temp[i]).split (',');
		if (__valors[1] < 7) {
			__qui.value = __valors[0];
			__que.value = __valors[1];
			modifProps (_q);
		}
	}
}

function omplirForm (__title, __descripcio, __ruta, __datac, __perg, __peru, __permisos) {
	posarValue ('ftitul', __title, true);
	posarValue ('fdescripcio', br_nl (__descripcio), true);
	posarValue ('fruta', __ruta, true);
	posarValue ('fdatac', __datac, true);
	posarValue ('fdefecte', __permisos, true);
	document.getElementById('fpermisos').options.length = 0;
	if (__perg != '') posarPermisos ('G', 'grup', __perg);
	if (__peru != '') posarPermisos ('U', 'usuari', __peru);
}

function editarDocument (__title, __descripcio, __ruta, __datac, __perg, __peru, __permisos) {
	omplirForm (__title, __descripcio, __ruta, __datac, __perg, __peru, __permisos);
	accio ('editardocument', __ruta);
}

function editarCarpeta (__title, __descripcio, __ruta, __datac, __perg, __peru, __permisos) {
	omplirForm (__title, __descripcio, __ruta, __datac, __perg, __peru, __permisos);
	accio ('editarcarpeta', __ruta);
}

function accio (__a, __c) {
	if (__a == 'home') {
		carpeta ('');
	} else
	if (__a == 'borrarcarpeta') {
		if (confirm ('¿Deseas borrar la carpeta y todo su contenido?') && confirm ('De seguir, borraras todas las carpetas y documentos que contiene. ¿Estás seguro?'))
			accioform (__a, '', __c);
	} else
	if (__a == 'infocarpeta') {
		capa ('o','tapafondo','o','capainfocarpeta');
	} else
	if (__a == 'borrardocument') {
		if (confirm ('¿Deseas borrar el documento?'))
			accioform (__a, '', __c);
	} else {
		var __fficher = document.getElementById ('dfficher');
		var __fctitul = document.getElementById ('fctitul');
		var __permispare = document.getElementById ('fpermispare').value;
		var __pergpare = document.getElementById ('fpergpare').value;
		var __perupare = document.getElementById ('fperupare').value;
		var __enviacamps = document.getElementById ('fenviacamps');
		document.getElementById ('faccio').value = __a;
		if (__a == 'noucarpeta') {
			__fctitul.innerHTML = 'Nueva carpeta';
			__fficher.style.display = 'none';
			__enviacamps.value = 'ftitul;T, r;fdescripcio;T, r;fdefecte;N, r';
			omplirForm ('', '', '', '', __pergpare, __perupare, __permispare);
		} else
		if (__a == 'noudocument') {
			__fctitul.innerHTML = 'Nuevo documento';
			__fficher.style.display = 'inline';
			__enviacamps.value = 'ftitul;T, r;fdescripcio;T, r;fdefecte;N, r;fficher;T, r';
			omplirForm ('', '', '', '', __pergpare, __perupare, __permispare);
		} else
		if (__a == 'editarcarpeta') {
			__fctitul.innerHTML = 'Modificar carpeta';
			__fficher.style.display = 'none';
			__enviacamps.value = 'ftitul;T, r;fdescripcio;T, r;fdefecte;N, r';
		} else
		if (__a == 'editardocument') {
			__fctitul.innerHTML = 'Modificar documento';
			__fficher.style.display = 'inline';
			__enviacamps.value = 'ftitul;T, r;fdescripcio;T, r;fdefecte;N, r';
		}
		capa ('o','tapafondo','o','capaformcreacio');
	}
}

function modifProps (_q) {
	function juntar (__str__, __valor__) { return String(__str__).toLowerCase() + '|||' + __str__ + '|||' + __valor__; }

	__qui = (_q == 'U') ? 'usuari' : 'grup';
	__llistat = document.getElementById('fpermisos');
	__prop = document.getElementById('fpermis' + __qui);
	__aqui = document.getElementById('f' + __qui);
	__perg = document.getElementById('fperg');
	__peru = document.getElementById('fperu');

	__busca = _q + ',' + __aqui.value;
	var regs = new Array ();
	for (var i = 0, j = 0; i < __llistat.options.length; i++) {
		if (String(__llistat.options[i].value).substr(0,String(__busca).length) != __busca) {
			regs[j] = juntar (__llistat.options[i].text, __llistat.options[i].value);
			j++;
		}
	}
	__llistat.options.length = 0;
	if (__prop.value != 'NO') {
		__str = '['+_q+'] ' + __prop.options[__prop.selectedIndex].text + ': ' + __aqui.options[__aqui.selectedIndex].text;
		__valor = _q + ',' + __aqui.value + ',' + __prop.value;
		regs[j] = juntar (__str, __valor);
	}

	__llistat.options.length = 0;
	__perg.value = '';
	__sepperg = '';
	__peru.value = '';
	__sepperu = '';
	regs.sort();
	for (var i = 0; i < regs.length; i++){
		var cols = new Array ();
		cols = regs[i].split('|||');
		__llistat.options[i] = new Option(cols[1],cols[2]);
		if (cols[2][0] == 'G') {
			__perg.value = __perg.value + __sepperg + String(cols[2]).substr(2);
			__sepperg = ';';
		} else {
			__peru.value = __peru.value + __sepperu + String(cols[2]).substr(2);
			__sepperu = ';';
		}
	}
}
