  var sBrowser;
   var sVersion;

   function setBrowserType(){
    var aBrowFull = new Array("opera", "msie", "netscape", "gecko", "mozilla");
    var aBrowVers = new Array("opera", "msie", "netscape", "rv",    "mozilla"   );
    var aBrowAbrv = new Array("op",    "ie",   "ns",       "mo",    "ns"   );
    var sInfo = navigator.userAgent.toLowerCase();;

    sBrowser = "";
    for (var i = 0; i < aBrowFull.length; i++){
     if ((sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)){
      sBrowser = aBrowAbrv[i];
      sVersion = String(parseFloat(sInfo.substr(sInfo.indexOf(aBrowVers[i]) + aBrowVers[i].length + 1)));
     }
    }
   }

   setBrowserType();

   function getBrowserName(){
    return sBrowser;
   }




   function charsValidsMoneda(e){
	var key, keychar;

	if (e) key = e.keyCode;
	else return true;
	
	
	
	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	var goods = '0123456789.';
	
	// check goodkeys
	if (goods.indexOf(keychar) != -1)
		return true;
	
	// control keys
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
	   return true;
	
	// else return false
	return false;
}


function trimAll(sString){
		while (sString.substring(0,1) == ' '){
			sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' '){
			sString = sString.substring(0,sString.length-1);
		}
		return sString;
	}

	function isEmailAddress(theElement ){
		var s = trimAll(theElement.value);
		var filter=/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/;
		if (filter.test(s)){
			return true;
		}else{
			alert("E-mail no vālid");
			theElement.focus();
			theElement.select();
			return false;
		}
	}

	function evalNumberPlantilla(formElement,conditions,desc,submit){
		var valid=true;
		var value=formElement.value;
		
		if(value){
			if(conditions ){
				var i=0;
				var flags="";
				var message="NOT A VALID FIELD";
				var valid=true;
				if(value){
					var ind=value.indexOf(",");
					if(ind!=-1){
						//value=value.replace(",",".");
						value=replaceAll(value,".","");
						value=value.replace(",",".");
						//formElement.value=value;
					}else{
						var ind2=value.indexOf(".");
						if(ind2!=-1){
							value=replaceAll(value,".","");
						}
						
					}
				}
				//value = replaceAll(value.toString(),'.','');
		   		// value = replaceAll(value.toString(),',', '.');
				var c=new Number(value);
				if(isNaN(c)){
					valid=valid && false;
					message="El camp "+desc+"ha de ser numčric";
					
				} else {
					for(i=0;i<conditions.length;i++){
						var p=conditions[i][0];
						var b=conditions[i][1];
						var b2=conditions[i][2];
						
						var b2=conditions[i][2];
						if("pattern"==p){
							valid=valid && matchRegularExpression(value,b);
							if(!valid){
							message="Format de camp incorrecte ("+b+")";
							}
						} else if("between"==p){
							valid=valid && evalBeetween(c,b,b2);
							if(!valid){
							message="El camp "+desc+" ha de estar entre "+b+" i "+b2;
							}
						} else if("minInclusive"==p){
							valid=valid && evalMinInclusive(c,b);
							if(!valid){
							message="El camp "+desc+" es massa petit ha de ser major o igual a "+b;
							}
						} else if("minExclusive"==p){
							valid=valid && evalMinExclusive(c,b);
							if(!valid){
							message="El camp '"+desc+"' es massa petit ha de ser major que "+b;
							}
						} else if("maxInclusive"==p){
							valid=valid && evalMaxInclusive(c,b);
							if(!valid){
							message="El camp "+desc+" es massa gran ha de ser menor o igual a "+b;
							}
						} else if("maxExclusive"==p){
							valid=valid && evalMaxExclusive(c,b);
							if(!valid){
							message="El camp '"+desc+"' es massa gran ha de ser menor que "+b;
							}
						} else if("totalDigits"==p){
							valid=valid && evalTotalDigits(value,b);
							if(!valid){
							message="El camp '"+desc+"' es massa llarg ha de ser menor que "+b;
							}					
						} else if("fractionDigits"==p){
							valid=valid && evalFractionDigits(value,b);
							if(!valid){
							message="La part decimal del camp '"+desc+"' es massa gran ha de ser "+b;
							}					
						} else if("enumeration"==p){
							valid=valid && evalEnumeration(value,b);
							if(!valid){
							message="El camp '"+desc+"' no conté un valor vālid, ha de ser:"+b;
							}
						} else if("integer"==p){
							valid=valid && evalInteger(c);
							if(!valid){
							message="El camp '"+desc+"' no conté un valor enter";
							}
						}
						if(!valid) break;
					}
				}
			}
			if(!valid) {
				if(sendAlert(formElement.name,value,message)){
					disableMessg();
					if(formElement.focus){
						formElement.focus();
					}
					if(formElement.select){
						formElement.select();
					}
					window.setTimeout('enableMessg()',10);
				}
			}
		}
		//if(valid)formElement.value=value.replace(/ /g, '');
		return valid;
	}	

	function evalBeetween(value,expression1, expression2){
	
		if(value){
			return ( value<=expression2 && value >=expression1 );
		}
		return true;
	}

