/* COMMON FUNCTIONS */

function getRadioValue(radioElement) {
	for (var i= 0; i < radioElement.length; i++) {
		if (radioElement[i].checked == true) { return radioElement[i].value; }
	}
	return 0;
}

function isEmpty(value) {
	if (value==null || value.length==0) return true;
	else return false;
}

function isInteger(value) {
	return value.match(/^\d+$/);
}

function isArray(obj) {
	return obj.constructor.toString().indexOf("Array") != -1;
}

function cleanText(object, text) {
	if(object.value == text) {
		object.value = '';
	}
}

function reloadOriginalText(object, text) {
	if(object.value == '') {
		object.value = text;
	}
}

function loadIframe(iFrameId, url){
	var iframe = document.getElementById(iFrameId);
	if (isEmpty(iframe.src)) { iframe.src = url;}
}

function initLoadDateIframe(iframeId){
	var iframe = frames.calendarFrame;
	if(iframe.cal != null){
		iframe.getFieldDate();
		iframe.cal.load(true, true);
		iframe.loadLinksMonths();
		iframe.loadTitle();
	}
}

function closePopUp() {
	var ventana = window.self;
	ventana.opener = window.self;
	parent.close();
}

function isValidEmail(email) {
  var idx_at = email.value.indexOf('@');
  if (idx_at == -1 || idx_at == 0) return false;
  var idx_dot = email.value.indexOf('.', (idx_at + 2));
  if (idx_dot == -1 ) return false;
  return true;
}

function Browser() {

	var ua, s, i;

	this.isIE = false;
	this.isNS = false;
	this.version = null;

	ua = navigator.userAgent;

	s = "MSIE";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	s = "Netscape6/";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	// Treat any other "Gecko" browser as NS 6.1.

	s = "Gecko";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	}
}

var browser = new Browser();

function getX(event) {
	if (browser.isIE) {
		x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
	} else 	if (browser.isNS) {
		x = event.clientX + window.scrollX;
	}
	return x;
}

function getY(event) {
	if (browser.isIE) {
		y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	} else 	if (browser.isNS) {
		y = event.clientY + window.scrollY;
	}
	return y;
}

function checkHeaderLogin(f, alertMessage, searchMessage) {
	if ((f.ssousername.value=="")||(f.password.value=="")) {
		alert(alertMessage);
	} else {
		setLoadingStyle(f, searchMessage);
	}
}

function setLoadingStyle(f, searchMessage) {
	if (f.searchButton.className == "processing") { return false; }
        f.searchButton.className = "processing";
        f.searchButton.value = searchMessage;
		f.submit();
}

/*
	Validacion exaustiva del email.
	Usada en clientpage y tradepage.
*/
function isValidEmailPro(correo){
//mail = T1@T2.T3
	partes = correo.split("@");
	if(partes.length != 2) return false;
//T1
	t1 = partes[0];
	if(t1.indexOf('..') > -1) return false;
	cad = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.!#$%&''*+-/=?^_`{|}~";
	for(i=0; i < t1.length; i++)
		if(cad.indexOf(t1.charAt(i)) == -1) return false;
	cad = ".!#$%&''*+-/=?^_`{|}~";
	if((cad.indexOf(t1.charAt(0)) > -1) || ((cad.indexOf(t1.charAt(t1.length-1)) > -1))) return false;

//T3
	t2t3 = partes[1];
	ultimoPto = t2t3.lastIndexOf(".");
	t3 = t2t3.substring(ultimoPto+1);
	if(t3.length > 3) return false;
	cad = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for(i=0; i < t3.length; i++)
		if(cad.indexOf(t3.charAt(i)) == -1) return false;
		
//T2	
	t2 = t2t3.substring(0, ultimoPto);
	cad = "._-";
	if((cad.indexOf(t2.charAt(0)) > -1) || ((cad.indexOf(t2.charAt(t2.length-1)) > -1))) return false;
	if(t2.indexOf(".") != t2.lastIndexOf(".")) return false;
	cad = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-";
	for(i=0; i < t2.length; i++)
		if(cad.indexOf(t2.charAt(i)) == -1) return false;
		
	return true;
}

/*
 * Verifica si el CIF es correcto.
*/
function isValidCif(cif){
/* CIF == T1 T2 T3 (sin espacios) = 9 caracteres.
 * T1 :: Primer caracter. Es una letra
 * T2 :: Siguientes 7 caracteres (posiciones 2 a 8). Numeros
 * T3 :: Ultimo caracter (pos. 9): Letra o numero
 */
// Incidencia 0003264, eliminar reglas para el CIF. Una versión mas exhaustiva de esta función este disponible en el CVS.

	return true;
}
/*
 * Obtiene la letra del NIF a partir del numero. OJO, sin la letra.
*/
function letraNIF(nif) {
	cadena="TRWAGMYFPDXBNJZSQVHLCKET";
	posicion = nif % 23;
	letra = cadena.substring(posicion,posicion+1);
	return letra;
}

function isValidTlf(tlf){
	tlfAux = "";
	cad = "+1234567890 "
	c = "";
	//comprobar que los caracteres son correctos (cad) y quitar los espacios
	for(i=0; i < tlf.length; i++){
		c = tlf.charAt(i);
		if(cad.indexOf(c) == -1) return false;
		if(c != " ") tlfAux += c;
	}
	tlf = tlfAux;

	//solo puede haber un "+" y solo al ppio
	if(tlf.indexOf("+") > 0) return false
	if(tlf.indexOf("+") != tlf.lastIndexOf("+")) return false;
	
	return true;
}

function openRemindPwdWindow(href, target) {
	window.open(href, '', 'width=233,height=213');
}

/*
 * Ordena un ComboBox (tag SELECT de HTML) tras haber insertado
 * las opciones (tag OPTION).
 * Debe ejecutarse despues del codigo HTML del tag SELECT. 
 * Por ejemplo al final del BODY.
 * 
 * param id :: atributo id del elemento SELECT.
 */
function sortComboBox(id) {
    var arr = new Array();
	var obj = document.getElementById(id);
    for(i = 0; i < obj.options.length; i++){
        arr[arr.length] = new Array(obj[i].text, obj[i].value);
    }
    arr.sort();
    for(var i = 0; i < obj.options.length; i++) {
        obj[i] = new Option(arr[i][0], arr[i][1], false, false);
    }
}