 
//-----------------------------------
// Obtiene el nombre y puerto del servidor actual de produccion
function __GetPRODServer() {

	if ( navigator.appName.indexOf('Netscape')!=-1 ) {
		var s = document.domain.split('/',3);
		var ret = s;
	}
	else {
		var s = document.URL.split('/',3);
		var ret = s[2];
	}
	
	if ( String(ret).indexOf('desarrollo') ==-1 ) 
		ret = 'www.anayamascerca.com';
		
	return ret;
	
}



//-----------------------------------
// Obtiene el nombre y puerto del servidor actual
function GetServer() {

	ret =  document.location.host;

/*
	if ( navigator.appName.indexOf('Netscape')!=-1 ) {
		var s = document.domain.split('/',3);
		var ret = s;
	}
	else {
		var s = document.URL.split('/',3);
		var ret = s[2];
	}
*/	
	return ret;
	
}





//-----------------------------------
// Obtiene el url del servidor actual
// cuya urn se indica dependiendo del
// entorno de desarrollo o produccion

function getURLServer(urnsvr)
{
	
	switch (urnsvr)
	{
		case 'AF':
			return (GetServer().indexOf('anaya.es')==-1 ? 'www.anayaformacion.com' : 'desarrollo.anaya.es:1771')
		
		break;
		
		case 'AMC':
			return (GetServer().indexOf('anaya.es')==-1 ? 'www.anayamascerca.com' : 'desarrollo.anaya.es:3131')
		
		break;
		
		
	}
	
}






function VerificaEmail(correo) {

			var pos = correo.indexOf("@");
			var longitud = correo.length;
			if (pos == -1 || pos == 0 || pos == (longitud - 1) || longitud == "") return false;
			var pos2 = correo.indexOf(".", pos+1);
			if ( pos2 == -1 || pos2 == (longitud - 1) || pos2 == (pos + 1)) return false;
			for (i=0; i<longitud; i++){
				if (correo.charAt(i) == " ") return false;
			}
				return true;
}


function VerificaUrl( url ) {


		if ( url.indexOf(' ')!=-1 )
		{
			alert ("La URL no puede contener espacios." ) ;
			return false;
		}
		
return true;

}




function VerificaFecha ( fec, separador ) 
{
	
	if ( fec == '' ) return true;
	
	f = fec.split(separador);
	
	dia = f[0];
	mes = f[1];
	anno = f[2];
	
	if ( isNaN(dia) || isNaN(mes) || isNaN (anno) )
	{
		alert ( 'La fecha no es correcta.' );
		return false;
	}
	
	if ( (mes==4 || mes==6 || mes==9 || mes==11) && dia>30 )
	{
		 alert ( 'El día no es correcto para ese mes.' );
		 return false;
	 }
	 
	 
	if ( mes==2 && dia>29)
	{
		alert ( 'El día no es correcto para ese mes.' );
		return false;
	}
	
	if ( mes<1 || mes>12 ) 
	{
		alert ( 'El mes no es correcto.' );
		return false;
	}
	
	
return true;
}





function getCookieVal (offset,docum) {
  var endstr = docum.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = docum.cookie.length;
  return unescape(docum.cookie.substring(offset, endstr));
}


//-----------------------------------
function GetCookie (name, doc) {

  if (typeof doc=='undefined') var docum=window.document;
  	else var docum=doc;

  var arg = name + "=";
  var alen = arg.length;
  var clen = docum.cookie.length;
  var i = 0;
 
 
 while (i < clen) {
    var j = i + alen;
	   if (docum.cookie.substring(i, j) == arg)
     return getCookieVal (j,docum);
    i = docum.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

//-----------------------------------




//-----------------------------------
function SetCookie (nombre,value,expires,path,domain,secure){
	var exp1=new Date();
	document.cookie = nombre + "=" + escape (value) +((expires) ? "; expires=" + exp1.getTime() : "") +
	((path) ? "; path=" + path : "") +((domain) ? "; domain=" + domain : "") +    ((secure) ? "; secure" : "");
}





function MacEscapeToLatin ( str )
{
	
	pcstr = new Array ('·80·','·81·','·82·','·83·','·84·','·85·','·86·','·87·','·88·','·89·','·8A·','·8B·','·8C·','·8D·','·8E·','·8F·','·90·','·91·','·92·','·93·','·94·','·95·','·96·','·97·','·98·','·99·','·9A·','·9B·','·9C·','·9D·','·9E·','·9F·','·A0·','·A1·','·A2·','·A3·','·A4·','·A5·','·A6·','·A7·','·A8·','·A9·','·AA·','·AB·','·AC·','·AD·','·AE·','·AF·','·B0·','·B1·','·B2·','·B3·','·B4·','·B5·','·B6·','·B7·','·B8·','·B9·','·BA·','·BB·','·BC·','·BD·','·BE·','·BF·','·C0·','·C1·','·C2·','·C3·','·C4·','·C5·','·C6·','·C7·','·C8·','·C9·','·CA·','·CB·','·CC·','·CD·','·CE·','·CF·','·D0·','·D1·','·D2·','·D3·','·D4·','·D5·','·D6·','·D7·','·D8·','·D9·','·DA·','·DB·','·DC·','·DD·','·DE·','·DF·','·E0·','·E1·','·E2·','·E3·','·E4·','·E5·','·E6·','·E7·','·E8·','·E9·','·EA·','·EB·','·EC·','·ED·','·EE·','·EF·','·F0·','·F1·','·F2·','·F3·','·F4·','·F5·','·F6·','·F7·','·F8·','·F9·','·FA·','·FB·','·FC·','·FD·','·FE·','·FF');
	macstr = new Array('%AD','%B0','%E2','%C4','%E3','%C9','%A0','%E0','%F6','%E4','%B2','%DC','%CE','%B3','%B7','%B8','%B9','%D4','%D5','%D2','%D3','%A5','%D0','%D1','%F7','%AA','%BA','%DD','%CF','%BD','%C3','%D9','%CA','%C1','%A2','%A3','%DB','%B4','%C5','%A4','%AC','%A9','%BB','%C7','%C2','%C6','%A8','%F8','%A1','%B1','%D7','%DA','%AB','%B5','%A6','%E1','%FC','%DE','%BC','%C8','%DF','%F0','%F5','%C0','%CB','%E7','%E5','%CC','%80','%81','%AE','%82','%E9','%83','%E6','%E8','%ED','%EA','%EB','%EC','%F9','%84','%F1','%EE','%EF','%CD','%85','%FA','%AF','%F4','%F2','%F3','%86','%FB','%FD','%A7','%88','%87','%89','%8B','%8A','%8C','%BE','%8D','%8F','%8E','%90','%91','%93','%92','%94','%95','%B6','%96','%98','%97','%99','%9B','%9A','%D8','%BF','%9D','%9C','%9E','%9F','%FE','%FF','%D6');

	
	var i=0;
	
	str = escape (str);
	
	
	if ( navigator.userAgent.indexOf('Mac') != -1 )
	{
		while ( i<macstr.length )
		{
			reg = new RegExp(macstr[i], "g")
			str = str.replace ( reg, pcstr[i] )
			i++;

		}

		str = str.replace (/·(\w\w)·/g, "%$1");
		
	}


return str;
}



function TextToHtml ( str )
{
	
	TXTstr = new Array ('á','é','í','ó','ú','Á','É','Í','Ó','Ú', '\\n','\x0D\x0A', '\x0A|\x0B|\x0C|\x0D');
	HTMLstr = new Array('&aacute;','&eacute;','&iacute;','&oacute;','&uacute;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;', '<br>','<br>', '<br>' );

	
	var i=0;
	
	while ( i<TXTstr.length )
	{
		reg = new RegExp(TXTstr[i], "g")
		str = str.replace ( reg, HTMLstr[i] )
		i++;

	}

		

return str;
}




/********************************************************************/
//** 
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return <retorno>
/********************************************************************/


function GetParameter (url, param)
{
	
	var val='';
	param += '=';
	var x = String(url).indexOf(param );
	
	if ( x!=-1 )
	{
		x += param.length;
		y = url.indexOf( '&', x );
		if (y==-1) y=url.length;
		val = url.slice(x,y);
	}
	
	
return unescape(val);
	
}



//-------------------------------------------
//
// target = _new		carga el fichero encfile en una ventana nueva 
//				( si params existe, toma esos parámetros para la nueva ventana)
//				( si params no existe, crea una ventana nueva estandar)
// 
// target = no extiste o '_this'  carga el fichero encfile en la ventana desde donde se llamo el validar
//
// params = toma estos parametros si se abre una nueva ventana

// modtarget = _new		carga el formulario de modificar en una ventana nueva 
//				( si params existe, toma esos parámetros para la nueva ventana)
//				( si params no existe, crea una ventana nueva estandar)
// 
// modtarget = no extiste o '_this'  carga el formulario de modificar en la ventana desde donde se llamo el validar
// modparams = toma estos parametros si se abre una nueva ventana
// 
// Si no existe modtarget y modparams adopta para el formulario de modificar los mismo que para el fichero encfile


function ValidarUID( encfile, target, params, modtarget, modparams )
{

	var login = GetCookie('CLAVEFORO');
	
	var prms = (typeof params == 'undefined' || params == '') ? '' : params;
	var trgt = (typeof target == 'undefined' || target == '') ? '_this' : target
	
	var mtrgt = ( typeof modtarget =='undefined' ) ? trgt : modtarget;
	var mprms = ( typeof modparams == 'undefined' ) ? prms : modparams;	

	
	
	var loc = 'http://' + __GetPRODServer() + '/validar/entrada.html?restrictzone=1&clave=' + login + '&encfile=' + escape(encfile) + '&target=' + escape(trgt) + '&params=' + escape(prms) + '&modtarget=' + escape(mtrgt) + '&modparams=' + escape(mprms) ;
	winLogin = window.open ( loc , "Identificacion", "toolbar=0,width=400,height=200,scrollbars=no");

	winLogin.focus();
}


/********************************************************************/
//** 
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return <retorno>
/********************************************************************/


function ValidarSessionID( encfile, zone, target, params )
{

	var sid = GetCookie('sessionID');
	
	if (typeof params == 'undefined' || params == '')
		var params = '';

	if (typeof target == 'undefined' || target == '')
		var target = '_this';

		var loc = '/validar/entradaSID.html?restrictzone=' + zone + '&SID=' + sid + '&encfile=' + escape(encfile) + '&target=' + escape(target) + '&params=' + escape(params) ;
	
	winLogin = window.open ( loc , "Identificacion", "toolbar=0,width=400,height=200,scrollbars=no");

	winLogin.focus();
}




/********************************************************************/
//** 
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return <retorno>
/********************************************************************/

function AddParameter (url, name, value)
{
	
		var uri = url;
		
		if ( uri.indexOf('javascript:')!=-1 )	// si la uri es un javascript: no se añade el parametro
			return uri;
		
		if ( uri.indexOf('?') == -1 )
			uri += '?' + name + '=' + value;
		else
			uri += '&' + name + '=' + value;
return uri;

}


/********************************************************************/
//** 
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return el valor asociado al objeto inicializado
/********************************************************************/

function InitFormElement (form, objname, val)
{
	

	var retvalue = false;
	//para objetos estandar
	if (typeof form.elements[objname].type!='undefined' )
		var obj = form.elements[objname];
	else
	{
	// para  radio o  checkbox 
		if ( typeof form.elements[objname][0].type!='undefined' )
			var obj = form.elements[objname][0];
		else
	
			return retvalue;
	}
	
	

	switch (obj.type)
	{
		
		case 'text':
		case 'textarea':
		case 'button':
		case 'hidden':
			obj.value = val;
		break;
		
		case 'select-one':
			if ( typeof val=='number' ) 
			{
				obj.selectedIndex = val;
				retvalue = obj.options[val].value ;
			}
			else
				for ( var i=0; i<obj.length; i++)  
				        if ( obj.options[i].value == val ) 
				        {
				        	obj.selectedIndex=i;  
				        	retvalue = val;
					}
		break;
		
		
		case 'radio':
		case 'checkbox':
			 // si val es un número indica que inicializamos el objeto por el indice de la opcion
			if ( typeof val=='number' )
			{
				if ( typeof form.elements[objname][val]!='undefined' )
				{
				 	form.elements[objname][val].checked = true;  
				 	retvalue = form.elements[objname][val].value;
				}
			}
			
			else		// si es una cadena, inicializamos la opcion cuyo valor coincida con val
			{
				for ( i=0; i<form.elements[objname].length; i++)
					if ( form.elements[objname][i].value == val) 
					{
						form.elements[objname][i].checked = true; 
						retvalue = form.elements[objname][i].value;
					}
				
				// si no existe el valor se inicializa la opcion primera
				if ( retvalue==false )
				{
					form.elements[objname][0].checked = true;
					retvalue = form.elements[objname][0].value;
				}
	
			}
				 	
				 	
		break;
		
		
	}

return retvalue;
}


/********************************************************************/
//** Devuelve el value del objeto sea cual sea su tipo
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return el valor asociado al objeto del formulario
/********************************************************************/

function GetFormElementValue (form, objname)
{
	

	var retvalue = null;
	
	if ( typeof form.elements[objname]=='undefined' )
		return null;
	//para objetos estandar
	if ( typeof form.elements[objname].type!='undefined' )
		var obj = form.elements[objname];
	else
	{
	// para  radio o  checkbox 
		if ( typeof form.elements[objname][0].type!='undefined' )
			var obj = form.elements[objname][0];
		else
	
			return null;
	}
	
	

	switch (obj.type)
	{
		
		case 'text':
		case 'textarea':
		case 'button':
		case 'hidden':
			retvalue = obj.value ;
		break;
		
		case 'select-one':
				var ix = obj.selectedIndex ;
				retvalue = obj.options[ix].value ;
		break;
		
		
		case 'radio':
		case 'checkbox':
				for ( i=0; i<form.elements[objname].length; i++)
					if ( form.elements[objname][i].checked == true) 
						retvalue = form.elements[objname][i].value;
				
		break;
		
		
	}

return retvalue;
}







/********************************************************************/
//** 
//* <descripcion>
//* @param <name> -> <valor>
//* ...
//* @param <name> -> <valor>
//* @return <retorno>
/********************************************************************/


  // Original JavaScript code by Duncan Crombie: dcrombie@chirp.com.au
  // Please acknowledge use of this code by including this header.

  // CONSTANTS
/*
  var separator = "."; // use comma as 000's separator
  var decpoint = ","; // use period as decimal point
  var percent = "%";
  var currency = "$"; // use dollar sign for currency

  function formatNumber(number, format, print) { // use: formatNumber(number, "format")

    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null; // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1; // use separators in number
    var usePercent = format.indexOf(percent) != -1; // convert output to percentage
    if (usePercent) number *= 100;
    var useCurrency = format.indexOf(currency) != -1; // use currency format
    format = strip(format, separator + percent + currency); // remove key characters
    number = "" + number; // convert number input to string

    // split number and format into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

    // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); // round up

// patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0"; // append zero to RHS of number
        else break;
      }
    }

    // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#"); // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length)
      nleftEnd = "0" + nleftEnd; // prepend zero to LHS of number

// patch provided by Drew Degentesh 2001/02/07
    var isNegative = (nleftEnd.length > 0 && nleftEnd.charAt(0) == "-");
    if (isNegative) nleftEnd = nleftEnd.substring (1);

    if (useSeparator) nleftEnd = separate(nleftEnd, separator); // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : ""); // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    return (isNegative ? "-" : "") + output;
  }

  function strip(input, chars) { // strip all characters in 'chars' from input
    var output = ""; // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) { // format input using 'separator' to mark 000's
    var output = ""; // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }

*/




function formatNumber( number )
{
	
	var num = String (number);
	var numout = num.substr(0,num.length%3);

	if ( num.length<=3 || num.indexOf('.')!=-1 ) 
		return number;
	
	var i=numout.length;
	
	while ( i<String(number).length-2 )
	{
		 numout +=  '.' + num.substr( i, 3) ;
	 i+=3;
	
	}

if ( numout.substr(0,1)=='.') numout=numout.slice(1);
return numout;	

//return number;
}

