/*ip = "<?php echo $_SERVER['REMOTE_ADDR']?>";
$country_code = <script language="javascript">countryCityFromIP('<?= $_SERVER['REMOTE_ADDR']?>')

function countryCityFromIP($ipAddr)
{
	//function to find country and city from IP address
	//Developed by Roshan Bhattarai [url]http://roshanbh.com.np[/url]
	
	//verify the IP address for the
	ip2long($ipAddr)== -1 || ip2long($ipAddr) === false ? trigger_error("Invalid IP", E_USER_ERROR) : "";
	$ipDetail=array(); //initialize a blank array
	
	//get the XML result from hostip.info
	$xml = file_get_contents("http://api.hostip.info/?ip=".$ipAddr);
	
	//get the city name inside the node <gml:name> and </gml:name>
	preg_match("@<Hostip>(\s)*<gml:name>(.*?)</gml:name>@si",$xml,$match);
	
	//assing the city name to the array
	$ipDetail['city']=$match[2]; 
	
	//get the country name inside the node <countryName> and </countryName>
	preg_match("@<countryName>(.*?)</countryName>@si",$xml,$matches);
	
	//assign the country name to the $ipDetail array
	$ipDetail['country']=$matches[1];
	
	//get the country name inside the node <countryName> and </countryName>
	preg_match("@<countryAbbrev>(.*?)</countryAbbrev>@si",$xml,$cc_match);
	$ipDetail['country_code']=$cc_match[1]; //assing the country code to array
	
	//return the array containing city, country and country code
	return $ipDetail;
	
}*/


function changeAccents(){
	var frm = document.busquedaRapida; 
	//var moppy = frm.pr.value; 
	
	if(frm.pr.selectedIndex == '') { 
		//alert('<?=$txt_elige_country?>!'); 
		
		return; 
	} else { 
		
		var provsel = frm.pr.options[frm.pr.selectedIndex].value;
		
		alert("provsel=" + provsel);
		
	}
	
	provsel = provsel.replace("‡","-a");
	provsel = provsel.replace("ç","-A");
	provsel = provsel.replace("Ž","-e");
	provsel = provsel.replace("ƒ","-E");	
	provsel = provsel.replace("’","-i");
	provsel = provsel.replace("ê","-I");	
	provsel = provsel.replace("—","-o");
	provsel = provsel.replace("î","-O");	
	provsel = provsel.replace("œ","-u");
	provsel = provsel.replace("ò","-U");	
	provsel = provsel.replace("–","-n");
	frm.provsinaccents.value=provsel;
	alert("provsinaccent=" + provsel);
}

function verifyletrascifras(arg)

{



for ((i=0);(i<arg.elements.length-1);i++){

        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="c"){

        	str = arg.elements[i].value;

  		if (str == "") {

			//return true;

  		} else {

  			// backslash, punt comma, dubbele en enkele aanhalingstekens gaat niet 

    			if (inValidCharSet(str,"0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZéúíóáëüïöäêûîâôèùìòà!|@()?¿¡+-_","c")) {

        			//return true;

    			} else {

    				alert(txt_solo_cifras_letras);

    				arg.elements[i].focus();

    				return false; 

    			}

  		}

  	}	

}



}





function verifycontrasena(arg)

{



for ((i=0);(i<arg.elements.length-1);i++){

        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="q"){

        	str = arg.elements[i].value;

  		if (str == "") {

			//return true;

  		} else {

  			// backslash, punt comma, dubbele en enkele aanhalingstekens gaat niet 

    			if (!inValidCharSet(str,"0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZéúíóáëüïöäêûîâôèùìòà!|@()?¿¡+-_","q")) {

        			alert(txt_solo_cifras_letras);

    				arg.elements[i].focus();

    				return false; 

    			}

    			if (str.length < 6) {

    				alert(txt_contr_peq);

    				arg.elements[i].focus();

    				return false; 

    			}

    			if (str != document.DBBusqueda.passwd2.value) {

    				alert(txt_contr_inequal);

    				arg.elements[i].focus();

    				return false; 

    			}	

    			//return true;

  		}

  	}	

}



}





function validartext(arg)

{



for ((i=0);(i<arg.elements.length-1);i++){

        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="x"){

        	str = arg.elements[i].value;

  		if (str == "") {

			//return true;

  		} else {

  			// backslash, punt comma, dubbele en enkele aanhalingstekens gaat niet 

    			if (inValidCharSet(str,"0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZéúíóáëüïöäêûîâôèùìòà!|ªº@·$%€&¬/()=?¿¡*+][-_:.,<>#\\{} \n","x")) {

        			//return true;

    			} else {

    				alert(txt_solo_texto);

    				arg.elements[i].focus();

    				return false; 

    			}

  		}

  	}	

}



}





function isEmailAddr(email)

{

	

  var result = false;

  var theStr = new String(email);

  

  var index = theStr.indexOf("@");

  if (index > 0)

  {

    var pindex = theStr.indexOf(".",index);

    if ((pindex > index+1) && (theStr.length > pindex+1))

	result = true;

  }

  if (!result) {

    alert(txt_formato_email);

    document.forms[0].email.focus();

  }  

  

  return result;

}



function isEmailAddrMeerderen(email)

{

	

  var result = false;

  var theStr = new String(email);

  

  

  var index = theStr.indexOf("@");

  if (index > 0)

  {

    var pindex = theStr.indexOf(".",index);

    if ((pindex > index+1) && (theStr.length > pindex+1))

	result = true;

  }

  if (!result) {

    alert(txt_formato_mal1 + email + txt_formato_mal2 + txt_formato_email);

    document.forms[0].email.focus();

  }  

  

  return result;

}



function verifyemail(arg)

{

for ((i=0);(i<arg.elements.length-1);i++){

        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="e"){

        	str = arg.elements[i].value;

  		if (str == "") {

			//return true;

  		} else {

  			// backslash, punt comma, dubbele en enkele aanhalingstekens gaat niet 

    			if (!inValidCharSet(str,"0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZéúíóáëüïöäêûîâôèùìòà!@-_.","e")) {

    				alert(txt_solo_cifras_letras_email);

    				arg.elements[i].focus();

    				return false; 

    			}

    			if ((str.length < 3) || (!isEmailAddr(str)) ) {

				alert(txt_formato_email);

				arg.elements[i].focus();

				return false;

			}

   

  			//return true;

  		}

  	}	

}



}



function inValidCharSet(str,charset, tipo)

{

	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	

	for (var i=0;i<str.length;i++)

		if (charset.indexOf(str.substr(i,1))<0)

		{

			

			 if ((tipo != "x" && tipo != "e") || ((tipo == "x" || tipo == "e")&& (str.substr(i,1) == "\'" || str.substr(i,1) == ";"))) {

				result = false;

				break;

			} 	

			

		}

	

	return result;

}      	

		





function verifyFichero(arg) {



for ((i=0);(i<arg.elements.length-1);i++){

        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="f"){

        	str = arg.elements[i].value;

  		if (str == "") {

			//return true;

  		} else {

  			loc = str.lastIndexOf("\\") + 1;

  			str = str.substring(loc,str.length); 

  			

  			// backslash, punt comma, dubbele en enkele aanhalingstekens gaat niet 

  			if (inValidCharSet(str,"0123456789abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZéúíóáëüïöäêûîâôèùìòà!|:.@()?¿¡+-_\\","f")) {

  				//return true;

    			} else {

    				alert(txt_solo_cifras_letras_file);

    				arg.elements[i].focus();

    				return false; 

    			}

  		}

  	}	

}



}



//Replace substring

function replaceSubstring(inputString, fromString, toString) {

   // Goes through the inputString and replaces every occurrence of fromString with toString

   var temp = inputString;

   if (fromString == "") {

      return inputString;

   }

   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)

      while (temp.indexOf(fromString) != -1) {

         var toTheLeft = temp.substring(0, temp.indexOf(fromString));

         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);

         temp = toTheLeft + toString + toTheRight;

      }

   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop

      var midStrings = new Array("~", "`", "_", "^", "#");

      var midStringLen = 1;

      var midString = "";

      // Find a string that doesn't exist in the inputString to be used

      // as an "inbetween" string

      while (midString == "") {

         for (var i=0; i < midStrings.length; i++) {

            var tempMidString = "";

            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }

            if (fromString.indexOf(tempMidString) == -1) {

               midString = tempMidString;

               i = midStrings.length + 1;

            }

         }

      }

      while (temp.indexOf(fromString) != -1) {

         var toTheLeft = temp.substring(0, temp.indexOf(fromString));

         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);

         temp = toTheLeft + midString + toTheRight;

      }

      // Next, replace the "inbetween" string with the "toString"

      while (temp.indexOf(midString) != -1) {

         var toTheLeft = temp.substring(0, temp.indexOf(midString));

         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);

         temp = toTheLeft + toString + toTheRight;

      }

   } // Ends the check to see if the string being replaced is part of the replacement string or not

   return temp; // Send the updated string back to the user

} // Ends the "replaceSubstring" function





function ChequearElementos(arg)

{



        cadena=new Array();

	//alert("numero de elementos del formulario=" + arg.elements.length)

        j=0;

        for ((i=0);(i<arg.elements.length);i++){

                var nombre = arg.elements[i].id;

                var posicion4 = nombre.charAt(nombre.length-4);

                if (posicion4 =="_"){

                	

                        if (arg.elements[i].value == "" || arg.elements[i].value == " ")

                                {

                        

                                cadena[j]=i;

                        

                                j++;

                                }

                 }

        }



        if (cadena.length==0){

                return true;

        }else{

                for ((i=0);(i<cadena.length);i++){

                nombrecampo = arg.elements[cadena[i]].id;



                        if ((nombrecampo.charAt(nombrecampo.length-4)=="_")&&(nombrecampo.charAt(1)=="_")){

                        campo1=arg.elements[cadena[i]].name;

                        campo2=campo1;



                                if (arg.elements[cadena[i]].disabled==true){

                                        return false;

                                }else{

                                        nn = campo2.split("_");

                                        campo2nombre = nn[0];



                                        //alert("debe_cumplir " + campo2nombre);

		                        alert(txt_campos_obligatorios);

                                        arg.elements[cadena[i]].focus();

                                        return false;

                                }

                        }

                        if ((nombrecampo.charAt(nombrecampo.length-4)=="_")&&(nombrecampo.charAt(1)!="_")){

                                campo1=arg.elements[cadena[i]].name;



                                if (arg.elements[cadena[i]].disabled==true){

                                        alert("cumplir_fecha");

                                        return false;

                                }else{

                                        nn = campo2.split("_");

                                        campo2nombre = nn[0];

                                        //alert("debe_cumplir " + campo2nombre);

		                        alert(txt_campos_obligatorios);

                                        arg.elements[cadena[i]].focus();

                                        return false;

                                }

                        }



                        if ((nombrecampo.charAt(nombrecampo.length-4)!="_")&&(nombrecampo.charAt(1)=="_")){

                                campo2=arg.elements[cadena[i]].name;

                                if (arg.elements[cadena[i]].disabled==true){

                                        

                                        return false;

                                }else{

                                        nn = campo2.split("_");

                                        campo2nombre = nn[0];

                                        alert(txt_campos_obligatorios);

                                        arg.elements[cadena[i]].focus();

                                        return false;

                                }

                        }

                return false;

        }

}

}



function SoloNumeros(arg)

{

	





for ((i=0);(i<arg.elements.length-1);i++){

	



        nombre2=arg.elements[i].id;

        var primera2 = nombre2.charAt(0);

        if (primera2=="n"){

        	

        	str = arg.elements[i].value;

        	

  		if (str == "") {

			//return true;

  		} else {

  			 

    			if (inValidCharSet(str,"0123456789","n")) {

			//return true;

    			} else {

				

    				alert(txt_introduce_numero);

    				arg.elements[i].focus();

    				return false; 

    			}

  		}

  	}	

}



}







function SoloNumerosOLD(arg)

{



        cadenanum=new Array();

        //cadenanum="";

        j=0;

//   cadena=eval("document.forms[0]." + campo + ".value");

        for ((i=0);(i<arg.elements.length);i++){

        	

                nombre3=arg.elements[i].id;

                       primera=nombre3.charAt(0);

        if (primera=="n"){

                cadenanum[j]=i;

                        j++;



	}

	

        }

        

        if (cadenanum.length!=0){

	

                for ((i=0);(i<cadenanum.length);i++){



                nombrecampo=arg.elements[cadenanum[i]].id;

                contenidocampo = arg.elements[cadenanum[i]].value;

        

                contenidocampo2=contenidocampo.charAt(contenidocampo.length-1);

                //plantillanumerica=/\d/

                //chequeo=plantillanumerica.test(contenidocampo2);

                

                

                var _exp1 = new RegExp(/^[0-9]+$/i); /* any non space */

                var _test=_exp1.test(contenidocampo);

                

                if(!_test) {

                

                

                //if (chequeo==false){

                        if (contenidocampo2==""){



                                //return true;



                	}else{



                                if ((nombrecampo.charAt(nombrecampo.length-4)=="_")&&(nombrecampo.charAt(1)=="_")){

                                campo1=arg.elements[cadenanum[i]].name;

                                campo2=campo1;

                                alert(txt_introduce_numero);

                                arg.elements[cadenanum[i]].focus();

                                return false;

                                }

                                if ((nombrecampo.charAt(nombrecampo.length-4)=="_")&&(nombrecampo.charAt(1)!="_")){

                                campo1=arg.elements[cadenanum[i]].name;

                                alert(txt_introduce_numero);

                                arg.elements[cadenanum[i]].focus();

                                return false;

                                }

                                if ((nombrecampo.charAt(nombrecampo.length-4)!="_")&&(nombrecampo.charAt(1)=="_")){

                                campo2=arg.elements[cadenanum[i]].name;

                                alert(txt_introduce_numero);

                                arg.elements[cadenanum[i]].focus();

                                return false;

                                }



                        }



                }



        }

 

 return true;

}



return true;

}



    function Validartodo(arg){



	    if (ChequearElementos(arg) == false) {

	    		return false;

                        }

		else if (SoloNumeros(arg)==false){

			return false;

                        }

		else if (validartext(arg)==false){

			return false;

                        }

                else if (verifyletrascifras(arg)==false){

                	return false;

                        }

                else if (verifyFichero(arg)==false){

                	return false;

                        }

                else if (verifyemail(arg)==false){


                	return false;

                        }        

                else if (verifycontrasena(arg)==false){

                	return false;

                        }                

                        

                else {

                    	return true;

                }

        }





//Obtener Fecha

function ObtenerFecha(theFrm) {

var now = new Date();

var dia = now.getDate();

var mes = now.getMonth() + 1;

var ano = now.getYear();

var fecha = dia + "/" + mes + "/" + ano;

theFrm.fechaIntroduccion.value=fecha;

}







//Menu

var head="display:''"

//img1=new Image()

//img1.src="fold.gif"

//img2=new Image()

//img2.src="open.gif"



var ns6=document.getElementById&&!document.all

var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1



function checkcontained(e){

var iscontained=0

cur=ns6? e.target : event.srcElement

i=0

if (cur.id=="foldheader")

iscontained=1

else

while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){

if (cur.id=="foldheader"||cur.id=="foldinglist"){

iscontained=(cur.id=="foldheader")? 1 : 0

break

}

cur=ns6? cur.parentNode : cur.parentElement

}



if (iscontained){

var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]

if (foldercontent.style.display=="none"){

foldercontent.style.display=""

//cur.style.listStyleImage="url(open.gif)"

}

else{

foldercontent.style.display="none"

//cur.style.listStyleImage="url(fold.gif)"

}

}

}



if (ie4||ns6)

document.onclick=checkcontained







	function verificarFecha() {





	  if (document.forms(0).dia.value == "31" && (document.forms(0).mes.value=="4" || document.forms(0).mes.value=="6" || document.forms(0).mes.value=="9" || document.forms(0).mes.value=="11")) {

	    alert(txt_dia_no_existe);

	    document.forms(0).dia.selectedIndex=29;

	    document.forms(0).dia.focus();

	    return false;

	  }

	  if (document.forms(0).mes.value == "2" && document.forms(0).dia.value > 29) {

	    alert(txt_dia_no_existe_febrero);

	    document.forms(0).dia.selectedIndex=28;

	    document.forms(0).dia.focus();

	    return false;

	  }

	  schrikkeljaar = document.forms(0).ano.options[document.forms(0).ano.selectedIndex].value % 4;

	  //alert(schrikkeljaar);

	  //alert("schrikkeljaar=" + schrikkeljaar + " mes" + document.forms(0).mes.value + "dia" + document.forms(0).dia.value);

	  if (document.forms(0).mes.value == "2" && schrikkeljaar>0 && document.forms(0).dia.value == "29") {

	    alert(txt_dia_no_existe_febrero);

	    document.forms(0).dia.selectedIndex=27;

	    document.forms(0).dia.focus();

	    return false;

	  }



	  document.forms(0).fecha.value=document.forms(0).dia.value + "/" + document.forms(0).mes.value + "/" + document.forms(0).ano.options[document.forms(0).ano.selectedIndex].value;

	  //alert(document.forms(0).fecha.value);

	  return true;

	}









    function EliminarRegistro() {

      var Eliminar = window.confirm(txt_quieres_eliminar);

    	if (Eliminar == true) {

        window.location.href="member.php?estado=2";

        return false;



    	} else {

      	return false;

    	}

	}





//***************CALENDAR*********************************



var weekend = [0,6];

var weekendColor = "#e0e0e0";

var fontface = "Verdana";

var fontsize = 2;



var gNow = new Date();

var ggWinCal;

isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;

isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;



Calendar.Months = [txt_enero, txt_febrero, txt_marzo, txt_abril, txt_mayo, txt_junio,

txt_julio, txt_agosto, txt_septiembre, txt_octubre, txt_noviembre, txt_diciembre];



// Non-Leap year Month days..

Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

// Leap year Month days..

Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];



function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {

        if ((p_month == null) && (p_year == null))	return;



        if (p_WinCal == null)

                this.gWinCal = ggWinCal;

        else

                this.gWinCal = p_WinCal;



        if (p_month == null) {

                this.gMonthName = null;

                this.gMonth = null;

                this.gYearly = true;

        } else {

                this.gMonthName = Calendar.get_month(p_month);

                this.gMonth = new Number(p_month);

                this.gYearly = false;

        }



        this.gYear = p_year;

        this.gFormat = p_format;

        this.gBGColor = "white";

        this.gFGColor = "black";

        this.gTextColor = "black";

        this.gHeaderColor = "black";

        this.gReturnItem = p_item;

}



Calendar.get_month = Calendar_get_month;

Calendar.get_daysofmonth = Calendar_get_daysofmonth;

Calendar.calc_month_year = Calendar_calc_month_year;

Calendar.print = Calendar_print;



function Calendar_get_month(monthNo) {

        return Calendar.Months[monthNo];

}



function Calendar_get_daysofmonth(monthNo, p_year) {



//	Check for leap year ..

//	1.Years evenly divisible by four are normally leap years, except for...

//	2.Years also evenly divisible by 100 are not leap years, except for...

//	3.Years also evenly divisible by 400 are leap years.



        if ((p_year % 4) == 0) {

                if ((p_year % 100) == 0 && (p_year % 400) != 0)

                        return Calendar.DOMonth[monthNo];



                return Calendar.lDOMonth[monthNo];

        } else

                return Calendar.DOMonth[monthNo];

}



function Calendar_calc_month_year(p_Month, p_Year, incr) {



//	Will return an 1-D array with 1st element being the calculated month

//	and second being the calculated year

//	after applying the month increment/decrement as specified by 'incr' parameter.

//	'incr' will normally have 1/-1 to navigate thru the months.



        var ret_arr = new Array();



        if (incr == -1) {

                // B A C K W A R D

                if (p_Month == 0) {

                        ret_arr[0] = 11;

                        ret_arr[1] = parseInt(p_Year) - 1;

                }

                else {

                        ret_arr[0] = parseInt(p_Month) - 1;

                        ret_arr[1] = parseInt(p_Year);

                }

        } else if (incr == 1) {

                // F O R W A R D

                if (p_Month == 11) {

                        ret_arr[0] = 0;

                        ret_arr[1] = parseInt(p_Year) + 1;

                }

                else {

                        ret_arr[0] = parseInt(p_Month) + 1;

                        ret_arr[1] = parseInt(p_Year);

                }

        }



        return ret_arr;

}



function Calendar_print() {

        ggWinCal.print();

}



function Calendar_calc_month_year(p_Month, p_Year, incr) {



//	Will return an 1-D array with 1st element being the calculated month

//	and second being the calculated year

//	after applying the month increment/decrement as specified by 'incr' parameter.

//	'incr' will normally have 1/-1 to navigate thru the months.



        var ret_arr = new Array();



        if (incr == -1) {

                // B A C K W A R D

                if (p_Month == 0) {

                        ret_arr[0] = 11;

                        ret_arr[1] = parseInt(p_Year) - 1;

                }

                else {

                        ret_arr[0] = parseInt(p_Month) - 1;

                        ret_arr[1] = parseInt(p_Year);

                }

        } else if (incr == 1) {

                // F O R W A R D

                if (p_Month == 11) {

                        ret_arr[0] = 0;

                        ret_arr[1] = parseInt(p_Year) + 1;

                }

                else {

                        ret_arr[0] = parseInt(p_Month) + 1;

                        ret_arr[1] = parseInt(p_Year);

                }

        }



        return ret_arr;

}



// This is for compatibility with Navigator 3, we have to create and discard one object before the prototype object exists.

new Calendar();



Calendar.prototype.getMonthlyCalendarCode = function() {

        var vCode = "";

        var vHeader_Code = "";

        var vData_Code = "";



        // Begin Table Drawing code here..

        vCode = vCode + "<TABLE BORDER=1 BGCOLOR=\"" + this.gBGColor + "\">";



        vHeader_Code = this.cal_header();

        vData_Code = this.cal_data();

        vCode = vCode + vHeader_Code + vData_Code;



        vCode = vCode + "</TABLE>";



        return vCode;

}



Calendar.prototype.show = function() {

        var vCode = "";



        this.gWinCal.document.open();



        // Setup the page...

        this.wwrite("<html>");

        this.wwrite("<head><title>"+ txt_calendario + "</title>");

        this.wwrite("</head>");



        this.wwrite("<body " +

                "link=\"" + this.gLinkColor + "\" " +

                "vlink=\"" + this.gLinkColor + "\" " +

                "alink=\"" + this.gLinkColor + "\" " +

                "text=\"" + this.gTextColor + "\">");

        this.wwriteA("<FONT FACE='" + fontface + "' SIZE=2><B>");

        this.wwriteA(this.gMonthName + " " + this.gYear);

        this.wwriteA("</B><BR>");



        // Show navigation buttons

        var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);

        var prevMM = prevMMYYYY[0];

        var prevYYYY = prevMMYYYY[1];



        var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);

        var nextMM = nextMMYYYY[0];

        var nextYYYY = nextMMYYYY[1];



        this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");

        

        var esteFecha = new Date();

        var esteMes = parseInt(esteFecha.getMonth());

        esteMes = parseInt(esteMes);

        var esteAno = parseInt(esteFecha.getYear());

        esteAno = parseInt(esteAno);

        var anoeleg = parseInt(this.gYear);

        anoeleg = parseInt(anoeleg);

        var meseleg = parseInt(this.gMonth);

        meseleg = parseInt(meseleg);

        //this.wwrite(esteMes + "-" + esteAno  +"-" + anoeleg + "-" +  meseleg);

        if (anoeleg > esteAno) {

                yearDiff = 1

                //parseInt(anoleg) + parseInt(esteAno);

        } else {

        	yearDiff = 0;

        }	        

        

        

        if (this.gYear > esteAno) {

        	

        if ((yearDiff > 2) || (yearDiff > 0  && esteMes <= meseleg)) {

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +

                ");" +

                "\"><<<\/A>]</TD><TD ALIGN=center>");

 	}

 	}

 	

 	if (this.gMonth > esteMes || this.gYear > esteAno) {               

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +

                ");" +

                "\"><<\/A>]</TD><TD ALIGN=center>");

         }

                

//	this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +

                ");" +

                "\">><\/A>]</TD><TD ALIGN=center>");

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +

                ");" +

                "\">>><\/A>]</TD></TR></TABLE><BR>");



        // Get the complete calendar code for the month..

        vCode = this.getMonthlyCalendarCode();

        this.wwrite(vCode);



        this.wwrite("</font></body></html>");

        this.gWinCal.document.close();

}



Calendar.prototype.showY = function() {

        var vCode = "";

        var i;

        var vr, vc, vx, vy;		// Row, Column, X-coord, Y-coord

        var vxf = 285;			// X-Factor

        var vyf = 200;			// Y-Factor

        var vxm = 10;			// X-margin

        var vym;				// Y-margin

        if (isIE)	vym = 75;

        else if (isNav)	vym = 25;



        this.gWinCal.document.open();



        this.wwrite("<html>");

        this.wwrite("<head><title>" + txt_calendario + "</title>");

        this.wwrite("<style type='text/css'>\n<!--");

        for (i=0; i<12; i++) {

                vc = i % 3;

                if (i>=0 && i<= 2)	vr = 0;

                if (i>=3 && i<= 5)	vr = 1;

                if (i>=6 && i<= 8)	vr = 2;

                if (i>=9 && i<= 11)	vr = 3;



                vx = parseInt(vxf * vc) + vxm;

                vy = parseInt(vyf * vr) + vym;



                this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");

        }

        this.wwrite("-->\n</style>");

        this.wwrite("</head>");



        this.wwrite("<body " +

                "link=\"" + this.gLinkColor + "\" " +

                "vlink=\"" + this.gLinkColor + "\" " +

                "alink=\"" + this.gLinkColor + "\" " +

                "text=\"" + this.gTextColor + "\">");

        this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");

        this.wwrite("Year : " + this.gYear);

        this.wwrite("</B><BR>");



        // Show navigation buttons

        var prevYYYY = parseInt(this.gYear) - 1;

        var nextYYYY = parseInt(this.gYear) + 1;



        this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +

                ");" +

                "\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");

                

        this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");

        this.wwrite("[<A HREF=\"" +

                "javascript:window.opener.Build(" +

                "'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" +

                ");" +

                "\">>><\/A>]</TD></TR></TABLE><BR>");



        // Get the complete calendar code for each month..

        var j;

        for (i=11; i>=0; i--) {

                if (isIE)

                        this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");

                else if (isNav)

                        this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");



                this.gMonth = i;

                this.gMonthName = Calendar.get_month(this.gMonth);

                vCode = this.getMonthlyCalendarCode();

                this.wwrite(this.gMonthName + "/" + this.gYear + "<BR>");

                this.wwrite(vCode);



                if (isIE)

                        this.wwrite("</DIV>");

                else if (isNav)

                        this.wwrite("</LAYER>");

        }



        this.wwrite("</font><BR></body></html>");

        this.gWinCal.document.close();

}



Calendar.prototype.wwrite = function(wtext) {

        this.gWinCal.document.writeln(wtext);

}



Calendar.prototype.wwriteA = function(wtext) {

        this.gWinCal.document.write(wtext);

}



Calendar.prototype.cal_header = function() {

        var vCode = "";



        vCode = vCode + "<TR>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;D&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;L&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;M&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;X&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;J&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;V&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "<TD WIDTH='16%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>&nbsp;S&nbsp;&nbsp;</B></FONT></TD>";

        vCode = vCode + "</TR>";



        return vCode;

}



Calendar.prototype.cal_data = function() {

        var vDate = new Date();

        vDate.setDate(1);

        vDate.setMonth(this.gMonth);

        vDate.setFullYear(this.gYear);



        var vFirstDay=vDate.getDay();

        var vDay=1;

        var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);

        var vOnLastDay=0;

        var vCode = "";

        

        var esteFecha = new Date();

        var esteMes = parseInt(esteFecha.getMonth());

        var esteAno = parseInt(esteFecha.getYear());

        var esteDate = parseInt(esteFecha.getDate());

        var anoeleg = parseInt(this.gYear);

        var meseleg = parseInt(this.gMonth);

        



//	Get day for the 1st of the requested month/year..

//	Place as many blank cells before the 1st day of the month as necessary.





        vCode = vCode + "<TR>";

        for (i=0; i<vFirstDay; i++) {

                vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='2' FACE='" + fontface + "'> </FONT></TD>";

        }



        // Write rest of the 1st week

        for (j=vFirstDay; j<7; j++) {

        	if ( ( (anoeleg != esteAno) || (meseleg != esteMes) ) || (vDay >= esteDate) ) {

                vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +

                        "<A HREF='#' " +

                                "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +

                                this.format_data(vDay) +

                                "';window.close();\">" +

                                this.format_day(vDay) +

                        "</A>" +

                        "</FONT></TD>";

                } else {

                	vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +

                        "&nbsp;" +

                        "</FONT></TD>";	

                }	        

                vDay=vDay + 1;

        }

        vCode = vCode + "</TR>";



        // Write the rest of the weeks

        for (k=2; k<7; k++) {

                vCode = vCode + "<TR>";



                for (j=0; j<7; j++) {

                	if ( ( (anoeleg != esteAno) || (meseleg != esteMes) ) || (vDay >= esteDate) ) {

                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +

                                "<A HREF='#' " +

                                        "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +

                                        this.format_data(vDay) +

                                        "';window.close();\">" +

                                this.format_day(vDay) +

                                "</A>" +

                                "</FONT></TD>";

                        } else {

                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + ">&nbsp;</TD>";

                        }	       

                        vDay=vDay + 1;



                        if (vDay > vLastDay) {

                                vOnLastDay = 1;

                                break;

                        }

                }



                if (j == 6)

                        vCode = vCode + "</TR>";

                if (vOnLastDay == 1)

                        break;

        }



        // Fill up the rest of last week with proper blanks, so that we get proper square blocks

        for (m=1; m<(7-j); m++) {

                if (this.gYearly)

                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +

                        "><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";

                else

                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +

                        "><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";

        }



        return vCode;

}



Calendar.prototype.format_day = function(vday) {

        var vNowDay = gNow.getDate();

        var vNowMonth = gNow.getMonth();

        var vNowYear = gNow.getFullYear();



        if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)

                return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");

        else

                return (vday);

}



Calendar.prototype.write_weekend_string = function(vday) {

        var i;



        // Return special formatting for the weekend day.

        for (i=0; i<weekend.length; i++) {

                if (vday == weekend[i])

                        return (" BGCOLOR=\"" + weekendColor + "\"");

        }



        return "";

}



Calendar.prototype.format_data = function(p_day) {

        var vData;

        var vMonth = 1 + this.gMonth;

        vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;

        var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();

        var vFMon = Calendar.get_month(this.gMonth).toUpperCase();

        var vY4 = new String(this.gYear);

        var vY2 = new String(this.gYear.substr(2,2));

        var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;



        switch (this.gFormat) {

                case "MM\/DD\/YYYY" :

                        vData = vMonth + "\/" + vDD + "\/" + vY4;

                        break;

                case "MM\/DD\/YY" :

                        vData = vMonth + "\/" + vDD + "\/" + vY2;

                        break;

                case "MM-DD-YYYY" :

                        vData = vMonth + "-" + vDD + "-" + vY4;

                        break;

                case "MM-DD-YY" :

                        vData = vMonth + "-" + vDD + "-" + vY2;

                        break;



                case "DD\/MON\/YYYY" :

                        vData = vDD + "\/" + vMon + "\/" + vY4;

                        break;

                case "DD\/MON\/YY" :

                        vData = vDD + "\/" + vMon + "\/" + vY2;

                        break;

                case "DD-MON-YYYY" :

                        vData = vDD + "-" + vMon + "-" + vY4;

                        break;

                case "DD-MON-YY" :

                        vData = vDD + "-" + vMon + "-" + vY2;

                        break;



                case "DD\/MONTH\/YYYY" :

                        vData = vDD + "\/" + vFMon + "\/" + vY4;

                        break;

                case "DD\/MONTH\/YY" :

                        vData = vDD + "\/" + vFMon + "\/" + vY2;

                        break;

                case "DD-MONTH-YYYY" :

                        vData = vDD + "-" + vFMon + "-" + vY4;

                        break;

                case "DD-MONTH-YY" :

                        vData = vDD + "-" + vFMon + "-" + vY2;

                        break;



                case "DD\/MM\/YYYY" :

                        vData = vDD + "\/" + vMonth + "\/" + vY4;

                        break;

                case "DD\/MM\/YY" :

                        vData = vDD + "\/" + vMonth + "\/" + vY2;

                        break;

                case "DD-MM-YYYY" :

                        vData = vDD + "-" + vMonth + "-" + vY4;

                        break;

                case "DD-MM-YY" :

                        vData = vDD + "-" + vMonth + "-" + vY2;

                        break;



                default :

                        vData = vMonth + "\/" + vDD + "\/" + vY4;

        }



        return vData;

}



function Build(p_item, p_month, p_year, p_format) {

        var p_WinCal = ggWinCal;

        gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);



        // Customize your Calendar here..

        gCal.gBGColor="white";

        gCal.gLinkColor="black";

        gCal.gTextColor="black";

        gCal.gHeaderColor="darkgreen";



        // Choose appropriate show function

        if (gCal.gYearly)	gCal.showY();

        else	gCal.show();

}



function show_calendar() {

	



//		p_month : 0-11 for Jan-Dec; 12 for All Months.

//		p_year	: 4-digit year

//		p_format: Date format (	dd/mm/yyyy, dd/mm/yy, ...)

//		p_item	: Return Item.





        p_item = arguments[0];

        if (arguments[1] == null)

                p_month = new String(gNow.getMonth());

        else

                p_month = arguments[1];

        if (arguments[2] == "" || arguments[2] == null)

                p_year = new String(gNow.getFullYear().toString());

        else

                p_year = arguments[2];

        if (arguments[3] == null)

                p_format = "DD/MM/YYYY";

        else

                p_format = arguments[3];



        vWinCal = window.open("", txt_calendario,

                "width=250,height=250,status=no,resizable=no,top=200,left=200");

        vWinCal.opener = self;

        ggWinCal = vWinCal;



        Build(p_item, p_month, p_year, p_format);

}



//Yearly Calendar Code Starts here



function show_yearly_calendar(p_item, p_year, p_format) {

        // Load the defaults..

        if (p_year == null || p_year == "")

                p_year = new String(gNow.getFullYear().toString());

        if (p_format == null || p_format == "")

                p_format = "MM/DD/YYYY";



        var vWinCal = window.open("", txt_calendario, "scrollbars=yes");

        vWinCal.opener = self;

        ggWinCal = vWinCal;



        Build(p_item, null, p_year, p_format);

}





	








