/*String.prototype.trim = function() {
	var chaine = unescape(this);
	this = chaine.replace(/(^\s*)|(\s*$)/g, "");
}*/


function getBrowser() {
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this;
}


function getElementsByAnything() { // ex: var el = getElementsByAnything('id1', 'id2', 'id3');
	var elements = new Array();
	for (var i=0,len=arguments.length;i<len;i++) {
		var element = arguments[i];
		if (typeof element == 'string') {
			var matched = document.getElementById(element);
			if (matched) {
				elements.push(matched);
			} else {
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				var regexp = new RegExp('(^| )'+element+'( |$)');
				for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]);
			}
			if (!elements.length) elements = document.getElementsByTagName(element);
			if (!elements.length) {
				elements = new Array();
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]);
			}
			if (!elements.length) {
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]);
			}
		} else {
			elements.push(element);
		}
	}
	if (elements.length == 1) {
		return elements[0];
	} else {
		return elements;
	}
}
/** *************************************************************************** */

/**
 * @param event
 * @return true / false
 * @desc quita la copy de una casilla
 * @desc autocomplete="off" oncontextmenu="return false;" onkeyDown="checkDownCopyFalse(event);" onkeyUp="checkUpCopyFalse(event);"
 */
var ctrlCopyFalse = false;
function checkUpCopyFalse(e) { if( e.keyCode == 17 ) { ctrlCopyFalse = false; } }
function checkDownCopyFalse(e) {
	if( e.keyCode == 17 ) {
		ctrlCopyFalse = true;
	} else if( e.keyCode == 86 && ctrlCopyFalse ) {
		if(window.event){ // IE4??
			e = window.event;
			e.returnValue=false;
			return false;
		 } else if(e){
	 		e.preventDefault();
			return false;
	 	}
	}
}
 /**
 	* @param object
 	* @param event
 	*	@desc onkeyup="checkUpEnter('object_name',event);"
 	*/
function checkUpEnter(object,e) {
	if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)) {
		document.forms[object].onsubmit();
	}
}

function getVerifDni(num_dni) {
	var str="TRWAGMYFPDXBNJZSQVHLCKET";
	var calcul= num_dni % 23;
	var r_calcul = str.charAt(calcul);
	return(r_calcul);
}

function getValidDate(saisie) {
	if (saisie=="" || (typeof saisie=='undefined' )) {return false;}
	saisie = (saisie).split("/");
	if ((saisie.length != 3) || isNaN(parseInt(saisie[0])) || isNaN(parseInt(saisie[1])) || isNaN(parseInt(saisie[2]))) {return false;}
	var nowDate = new Date(eval(saisie[2]),eval(saisie[1])-1,eval(saisie[0]));
	var annee = nowDate.getYear();
	if ((Math.abs(annee)+"").length < 4) {annee = annee+1900;}
	return saisie[2]+saisie[1]+saisie[0];
}

function sEnabledObjDisp(object,action) {
	if(getValidObject(object,'sEnabledObjDisp')) {
		var obj=document.getElementById(object).style;
		switch(action) {
			case 0: obj.display='none'; break;
			case 1: obj.display='inline'; break;
			case 2:	if(obj.display=='none') {obj.display='inline';}
							else{obj.display='none';}
			break;
		}
	}
}

function sEnabledObj(object,action) {
	if(getValidObject(object,'sEnabledObj')) {
		var verif=document.getElementById(object).disabled;
		switch(action) {
			case 0: document.getElementById(object).disabled=false; break;
			case 1: document.getElementById(object).disabled=true; break;
			case 2:	if(verif==true) {document.getElementById(object).disabled=false;}
							else{document.getElementById(object).disabled=true;}
			break;
		}
	}
}

function Empty(object) { if(getValidObject(object,'Empty')) {document.getElementById(object).value="";} }
function retValueListSelected(object) { if(getValidObject(object,'retValueListSelected')) {return document.getElementById(object).options[document.getElementById(object).selectedIndex].value;} }
function retValueTxtListSelected(object) { if(getValidObject(object,'retValueListSelected')) {return document.getElementById(object).options[document.getElementById(object).selectedIndex].text;} }
function retIndexListSelected(object) { if(getValidObject(object,'retIndexListSelected')) {return document.getElementById(object).selectedIndex;} }
function retValueInputText(object) { if(getValidObject(object,'retValueInputText')) {return document.getElementById(object).value;} }
function inValueInputText(object,val) { if(getValidObject(object,'inValueInputText')) {return document.getElementById(object).value=val;} }
function inFocus(object) { if(getValidObject(object,'inFocus')) {document.getElementById(object).focus;} }
function inInnerHtm(object,txt) { if(getValidObject(object,'inTxt')) {document.getElementById(object).innerHTML=txt;} }

function selectedByValue(object,vSelected) {
	if(getValidObject(object,'selectedByValue')) {
		var objLen=document.getElementById(object).options.length;
	 	for(i=0; i<objLen; i++) {
	 		value=document.getElementById(object).options[i].value;
	 		if(value==vSelected){document.getElementById(object).selectedIndex=i;}
	 	}
	}
}

function inStyle(object,objStyle,elemStyle) {
	if(getValidObject(object,'inStyle')) {
		switch(objStyle) {
			case 'color': document.getElementById(object).style.color=elemStyle; break;
			case 'bgc': document.getElementById(object).style.backgroundColor=elemStyle; break;
		}
	}
}

var errAlertSubmit=false;
function errAlert(txtErr,object) {
	if(txtErr.length != 0 && txtErr != "\n\n" ) {
		txtErr = ERR[0]+"\n\n" + txtErr; alert(txtErr);
	}else{
		if(!errAlertSubmit) {
			errAlertSubmit=true;
			document.forms[object].submit();
		}
	}
}

/** *************************************************************************** */
function getValidObject(object,nameFCT) {if(document.getElementById(object)) {return true;}else{alert('Error object: ('+object+') function '+nameFCT+'()'); return false;} }
function getVerifObj(object) {if(document.getElementById(object)) {return true;}else{return false;}}

function isMail(object) {
	if(getValidObject(object,'isMail')) {
		var mail=document.getElementById(object).value;
		var verif = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (verif.exec(mail) == null) {return true;}
		else{return false;}
	}
}

function getVerifStr(str,search) {
	if(str.indexOf(search) != -1) {return true;}
	else{return false;}
}

function isEnabledList(object) {
	if(getValidObject(object,'isEnabledList')) {
		var verif=document.getElementById(object).disabled;
		if(verif==false){return true;}else{return false;}
	}
}

function isNumeric(object) {
	if(getValidObject(object,'isNumeric')) {
		var verif=document.getElementById(object).value;
		if(isNaN(verif)) {return true;}else{return false;}
	}
}

function isNumericStr(str) {
	if(isNaN(str)==true) {return false;}else{return true;}
}

function isEmpty(object) {
	if(getValidObject(object,'isEmpty')) {
		var verif=document.getElementById(object).value;
		if(verif!='') {return false;}else{return true;}
	}
}

function isEmptyStr(str) {
	if(str!='') {return false;}else{return true;}
}

function isMinLen(object,max) {
	if(getValidObject(object,'isMinLen')) {
		var verif=document.getElementById(object).value;
		if(verif.length<max) {return true;}else{return false;}
	}
}

function isMaxLen(object,max) {
	if(getValidObject(object,'isMaxLen')) {
		var verif=document.getElementById(object).value;
		if(verif.length>max) {return true;}else{return false;}
	}
}

// Alex Muller
function checkFormat(object)
{
	if(getValidObject(object,'checkFormat')) {
		
		var pass = document.getElementById(object).value;
		var alphaNum=/^[a-zA-Z0-9]*$/;
		return !alphaNum.test(pass)
	}
}

function isSupLength(str,limit) {
	if(str.length>limit) {return true;}
	else{return false;}
}

function isInfLength(str,limit) {
	if(str.length<limit) {return true;}
	else{return false;}
}

function isSelectedValue(object,nogood) {// isSelected('objDiv','XXX') => objDiv==XXX return bool true/false
	if(getValidObject(object,'isSelectedValue')) {
		var verif=String(document.getElementById(object).options[document.getElementById(object).selectedIndex].value);
		if(verif==nogood) {return true;}else{return false;}
	}
}

function isChecked(object) {
	if(getValidObject(object,'isChecked')) {
		var verif=document.getElementById(object);
		if(verif.checked==true){return false;}else{return true;}
	}
}

function isCompareTxt(objectOriginal,objectCompare) {
	if(getValidObject(objectOriginal,'isCompareTxt') && getValidObject(objectCompare,'isCompareTxt')) {
		var o=document.getElementById(objectOriginal).value;
		var c=document.getElementById(objectCompare).value;
		if(o==c){return false;}else{return true;}
	}
}

function isCompareList(objectOriginal,objectCompare,diff) {
	if(getValidObject(objectOriginal,'isCompareList') && getValidObject(objectCompare,'isCompareList')) {
		o=retValueListSelected(objectOriginal);
		c=retValueListSelected(objectCompare);
		if(diff=="") { if(o==c){return true;}else{return false;} }
		else{ if( (o!=diff && c!=diff) && (o==c) ){return true;}else{return false;} }
	}
}

function isCompareStrict(objectOriginal,objectCompare) {
	if(getValidObject(objectOriginal,'isCompareStrict') && getValidObject(objectCompare,'isCompareStrict')) {
		o=retValueListSelected(objectOriginal);
		c=retValueListSelected(objectCompare);
		if(o==c) {return true;}else{return false;}
	}
}

function SelectSort(SelList)
{
    var ID='';
    var Text='';
    for (x=0; x < SelList.length - 1; x++)
    {
        for (y=x + 1; y < SelList.length; y++)
        {
            if (SelList[x].text > SelList[y].text)
            {
                // Swap rows
                ID=SelList[x].value;
                Text=SelList[x].text;
                SelList[x].value=SelList[y].value;
                SelList[x].text=SelList[y].text;
                SelList[y].value=ID;
                SelList[y].text=Text;
            }
        }
    }
}