//var raiz = "http://localhost/iu";
var raiz = "http://www.indiceurbano.com";



function cargarpublicidad(id)
{
	var myConn = new XHConn();
	document.getElementById(id).innerHTML = '<br><br><img src="' +  '/img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	
	var peticion = function (oXML) { document.getElementById(id).innerHTML = oXML.responseText;  	}
	myConn.connect("/ajax/publicidad.php", "POST", "", peticion); 
}



function ajax(target,pagina) 
{ 
	document.getElementById(target).innerHTML = '<br><img src="img/cargando.gif">&nbsp;Mostrando...'; 
	var myConn = new XHConn(); 
	var peticion = function (oXML) {  document.getElementById(target).innerHTML = oXML.responseText; }; 
	myConn.connect(pagina, "POST", "", peticion); 
} 


function GuardarComentarioLugar(id)
{
	var nick = document.getElementById('comentario_nick');
	var comentario = document.getElementById('comentario_texto');
	var nickcompelto ="";
	var xcomment = comentario.value; 
		
		
	if (nick.value == "")
		nickcompelto = "(anónimo)";
	else
		nickcompelto = nick.value;
	
	if (xcomment != "")
	 {
		var myConn = new XHConn();
		
		if (!myConn) 
		{
			alert("XMLHTTP not available. Try a newer/better browser.");
		}
		else
		{
			document.getElementById('texto_comentario').innerHTML ="";
			document.getElementById('texto_comentario').innerHTML = '<img src="img/cargando.gif" align="left">&nbsp;Cargando nuevo comentario...'; 
			document.getElementById('boton_comentario').innerHTML = "";
			var linker = "/ajax/guardacomentariol.php?n="+nickcompelto + "&i=" + id + "&c="+ xcomment;
			
			var peticion = function (oXML) 
			{
				var respuesta = oXML.responseText;
				if (respuesta == "0")
				{
					document.getElementById('nombre_comentario').innerHTML = "<b>Índice Urbano</b>";
					document.getElementById('texto_comentario').innerHTML  = "Ya has escrito un comentario hace menos de 1 minuto. Espera un poco para volver a comentar.";
				}
				else
				{
					var valores = respuesta.split("|",2);
					document.getElementById('nombre_comentario').innerHTML = "<b>"+valores[0]+"</b>";
					document.getElementById('texto_comentario').innerHTML = valores[1];
					
				}
			}
			myConn.connect(linker,"POST","1=1",peticion); 
		}
		
	}
}


function GuardarComentarioEvento(id)
{
	var nick = document.getElementById('comentario_nick');
	var comentario = document.getElementById('comentario_texto');
	var nickcompelto ="";
	var xcomment = comentario.value; 
		
		
	if (nick.value == "")
		nickcompelto = "(anónimo)";
	else
		nickcompelto = nick.value;
	
	if (xcomment != "")
	 {
		var myConn = new XHConn();
		
		if (!myConn) 
		{
			alert("XMLHTTP not available. Try a newer/better browser.");
		}
		else
		{
			document.getElementById('texto_comentario').innerHTML ="";
			document.getElementById('texto_comentario').innerHTML = '<img src="img/cargando.gif" align="left">&nbsp;Cargando nuevo comentario...'; 
			document.getElementById('boton_comentario').innerHTML = "";
			var linker = "/ajax/guardacomentarioe.php?n="+nickcompelto + "&i=" + id + "&c="+ xcomment;
			
			var peticion = function (oXML) 
			{
				var respuesta = oXML.responseText;
				if (respuesta == "0")
				{
					document.getElementById('nombre_comentario').innerHTML = "<b>Índice Urbano</b>";
					document.getElementById('texto_comentario').innerHTML  = "Ya has escrito un comentario hace menos de 1 minuto. Espera un poco para volver a comentar.";
				}
				else
				{
					var valores = respuesta.split("|",2);
					document.getElementById('nombre_comentario').innerHTML = "<b>"+valores[0]+"</b>";
					document.getElementById('texto_comentario').innerHTML = valores[1];
					
				}
			}
			myConn.connect(linker,"POST","1=1",peticion); 
		}
		
	}
}


function GuardarComentarioNota(id)
{
	var nick = document.getElementById('comentario_nick');
	var comentario = document.getElementById('comentario_texto');
	var nickcompelto ="";
	var xcomment = comentario.value; 
		
		
	if (nick.value == "")
		nickcompelto = "(anónimo)";
	else
		nickcompelto = nick.value;
	
	if (xcomment != "")
	 {
		var myConn = new XHConn();
		
		if (!myConn) 
		{
			alert("XMLHTTP not available. Try a newer/better browser.");
		}
		else
		{
			document.getElementById('texto_comentario').innerHTML ="";
			document.getElementById('texto_comentario').innerHTML = '<img src="img/cargando.gif" align="left">&nbsp;Cargando nuevo comentario...'; 
			document.getElementById('boton_comentario').innerHTML = "";
			var linker = "/ajax/guardacomentarion.php?n="+nickcompelto + "&i=" + id + "&c="+ xcomment;
			
			var peticion = function (oXML) 
			{
				var respuesta = oXML.responseText;
				if (respuesta == "0")
				{
					document.getElementById('nombre_comentario').innerHTML = "<b>Índice Urbano</b>";
					document.getElementById('texto_comentario').innerHTML  = "Ya has escrito un comentario hace menos de 1 minuto. Espera un poco para volver a comentar.";
				}
				else
				{
					var valores = respuesta.split("|",2);
					document.getElementById('nombre_comentario').innerHTML = "<b>"+valores[0]+"</b>";
					document.getElementById('texto_comentario').innerHTML = valores[1];
					
				}
			}
			myConn.connect(linker,"POST","1=1",peticion); 
		}
		
	}
}


function agregarmail()
{

	var name_element = document.getElementById('correosuscripcion');
	document.getElementById('mailcontacto').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Guardando correo...'; 
	var mail = name_element.value;
	var myConn = new XHConn(); 
	if (isValidEmail(mail) && mail!="")
	{
			
		var peticion = function (oXML) 
		{  
			var resp = oXML.responseText; 
			if (resp == "ok")
			{
				document.getElementById('mailcontacto').innerHTML = '<br>El correo electónico <b>' + mail + '</b> se adicionó correctamente a la base de datos de ÍndiceUrbano.com. Muy pronto recibiras el boletín de información.';
				document.getElementById('textoaddmail').innerHTML = '';
			}
			else
			{	
				alert('Ocurrió un error adicionando el correo electónico');
			}
		}
		myConn.connect("ajax/agregarmail.php?m=" + mail , "GET", "", peticion); 
	}
	else
	{
		alert('El correo electónico '+mail+' no es válido. ');
		document.getElementById('mailcontacto').innerHTML = '<input id="correosuscripcion" name="correosuscripcion"   /><a href="javascript:agregarmail();"><img src="img/CalendarioflechaDer.jpg"/></a>';
	}
}

function CargarDia(ano,mes,dia)
{
	document.getElementById('eventosdeldia').innerHTML ="";
	document.getElementById('eventosdeldia').innerHTML = '<img src="img/cargando.gif" align="left">&nbsp;Cargando eventos...'; 


var myConn = new XHConn(); 
	var peticion = function (oXML) 
	{  
		document.getElementById('eventosdeldia').innerHTML = oXML.responseText; 
		
		if (mes.length == 1)
			mes = '0'+mes;
		if (dia.length == 1)
			dia = '0'+dia;
		doShow('calendario','','');
		document.getElementById('dia'+ano+mes+dia).innerHTML="<A href='#' style='background-color:#666666; color:white; font-weight:bold;  padding: 0px 2px 2px 2px' onClick=\"CargarDia('"+ano+"','"+mes+"','"+dia+"');\">" + dia + "</a>";
		
	}
	myConn.connect("ajax/eventosdeldia.php?a=" + ano + "&m=" + mes + "&d=" + dia , "GET", "", peticion); 
}


function cargar_clima()
{
	var myConn = new XHConn(); 
	var peticion = function (oXML) 
	{  
		document.getElementById('div_clima').innerHTML = oXML.responseText; 

	}
	myConn.connect("/ajax/clima.php", "GET", "1=1", peticion); 
}


function cargar_tipo_cambio()
{
	var myConn = new XHConn(); 
	var peticion = function (oXML) 
	{  
		document.getElementById('div_tc').innerHTML = oXML.responseText; 

	}
	myConn.connect("/ajax/tc.php", "GET", "1=1", peticion); 

}

function eventosdelmismodia(ano,mes,dia,id)
{
	ajax("resultadolomaseventos", "/ajax/eventosdelmismodia.php?a=" + ano + "&m=" + mes + "&d=" + dia+ "&id=" + id);
}

function lugaressimilares(id)
{
	var myConn = new XHConn(); 
	document.getElementById('resultadolomas').innerHTML ="";
	document.getElementById('resultadolomas').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	
	var peticion = function (oXML) 
	{  
//		document.getElementById('resultadolomas').innerHTML = utf8_encode(oXML.responseText); 
		document.getElementById('resultadolomas').innerHTML = oXML.responseText; 
	}
	myConn.connect( "/ajax/lugaressimilares.php?id=" + id , "POST", "", peticion); 

}

function lomascomentado(id)
{
	var myConn = new XHConn(); 
	document.getElementById('resultadolomas').innerHTML ="";
	document.getElementById('resultadolomas').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	
	var peticion = function (oXML) 
	{  
	document.getElementById('resultadolomas').innerHTML =  utf8_encode(oXML.responseText); 

	}
	myConn.connect("ajax/lomascomentado.php?id=" + id , "GET", "", peticion); 

}

function lomasvotado(id)
{
	var myConn = new XHConn(); 
	document.getElementById('resultadolomas').innerHTML ="";
	document.getElementById('resultadolomas').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	
	var peticion = function (oXML) 
	{  
	document.getElementById('resultadolomas').innerHTML =  utf8_encode(oXML.responseText); 

	}
	myConn.connect("ajax/lomasvotado.php?id=" + id , "GET", "", peticion); 

}

function lomasvisto(id)
{
	var myConn = new XHConn(); 
	document.getElementById('resultadolomas').innerHTML ="";
	document.getElementById('resultadolomas').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	
	var peticion = function (oXML) 
	{  
	document.getElementById('resultadolomas').innerHTML =  utf8_encode(oXML.responseText); 

	}
	myConn.connect("ajax/lomasvisto.php?id=" + id , "GET", "", peticion); 

}

function ver_panel_votacion(id)
{
	if (document.getElementById('espacio_votacion').innerHTML =="")
	{
	document.getElementById('espacio_votacion').innerHTML = '<div style="border:12px solid #c6c6c6; "><div style="border:1px solid #A72B23; padding:10px;">Valoración: <a href="javascript:votar(1,'+id+')" title="1 estrella de 5" class="one-star"><img src="'+raiz+'/img/1.gif"/></a>&nbsp;<a href="javascript:votar(2,'+id+')" title="2 estrellas de 5" class="two-stars"><img src="'+raiz+'/img/2.gif"/></a>&nbsp;<a href="javascript:votar(3,'+id+')" title="3 estrellas de 5" class="three-stars"><img src="'+raiz+'/img/3.gif"/></a>&nbsp;<a href="javascript:votar(4,'+id+')" title="4 estrellas de 5" class="four-stars"><img src="'+raiz+'/img/4.gif"/></a>&nbsp;<a href="javascript:votar(5,'+id+')" title="5 estrellas de 5" class="five-stars"><img src="'+raiz+'/img/5.gif"/></a></div></div>'; 
	document.getElementById('espacio_votacion').style.display="inline";

	}
	else
	{
	document.getElementById('espacio_votacion').innerHTML ="";
	document.getElementById('espacio_votacion').style.display="none"; 
	
	}
}


function fValidarEmail (cadena)
{
if (cadena.indexOf('@', 0) == -1 || cadena.indexOf('.', 0) == -1)
 return false;
 else
 return true;
	
	
}





function votar(rating, id)
{
	var myConn = new XHConn(); 
	var peticion = function (oXML) 
	{  
	document.getElementById('espacio_votacion').innerHTML ="";
	document.getElementById('espacio_votacion').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 
	document.getElementById('espacio_votacion').innerHTML = oXML.responseText; 

	}
	myConn.connect("ajax/votacion.php?rating=" + rating + "&id=" + id , "GET", "", peticion); 

}


function comentar(id)
{
	var myConn = new XHConn(); 

	var inText= document.getElementById('txtComentario');
	
	var comentario = inText.value;
	document.getElementById('panel_comentarios').innerHTML ="";
	document.getElementById('panel_comentarios').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...';	
	var peticion = function (oXML)
	{  
	document.getElementById('panel_comentarios').innerHTML = oXML.responseText; 	
	}
	myConn.connect("ajax/comentario.php", "POST", "c="+ comentario +"&id=" + id , peticion); 
	 document.getElementById('txtComentario').innerHTML ="";
	ver_comentarios(id);
}

function ver_comentarios(id)
{
	var myConn = new XHConn(); 
		document.getElementById('panel_comentarios').innerHTML ="";
	document.getElementById('panel_comentarios').innerHTML = '<br><br><img src="img/cargando.gif" align="left">&nbsp;Mostrando...'; 

	var peticion = function (oXML) 
	{  
		document.getElementById('panel_comentarios').innerHTML = oXML.responseText; 
	}
	myConn.connect("ajax/vercomentarios.php?id=" + id, "GET", "", peticion); 
	
}

function escondermensaje()
{
	setTimeout("ocultar()",300); 
}

function ocultar(){
	document.all['msg'].style.visibility = "hidden"; 
}
	

//Confirmar eliminacion de registro
function preguntar(pag)
{
eliminar=confirm("Se eliminará un registro. está seguro?");
if (eliminar)
window.location.href = pag; 
}

//redireccionar a otra página
function redireccionar(pagina)
{
   window.location.reload(pagina); 
}

//desactivar botones: Aceptar y Cancelar de los formularios de Agregar y Editar Registros
function desactivarbotones(f) 
{
	f.Guardar.disabled = true;
	f.Cancelar.disabled = true;
}

//Agrandar el texto
function bigger()
{
	var HTMLo= document.body;
    var size = parseInt(HTMLo.style.fontSize.replace('%', ''));
    if (size <150)
	{
		HTMLo.style.fontSize = (size + 10) + '%';    
	}
}
   
//Achicar el texto
function smaller()
{
	var HTMLo= document.body;
	var size = parseInt(HTMLo.style.fontSize.replace('%', ''));
	if (size >80)
	{
		HTMLo.style.fontSize = (size - 10) + '%';        
	}
}

//Aplicar filtro
function AplicarFiltro(targ,selObj,restore)
{ 
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

//Revisar que el Formulario esté completo
function Enviar(form)
{
	for (i = 0; i < form.elements.length; i++) 
	{
		if (form.elements[i].type == "text" && form.elements[i].value == "") 
		{  
			alert("Please complete all the cells of the form."); 
			form.elements[i].focus(); 
			return false; 
		}
	}
	form.submit();
}
// Pop UP 300 x 350
function popup(pag,x,y)
{
	var myLeft = (screen.width-y)/2;
    var myTop = ((screen.height-x)/2)/2;

var dFeatures = 'dialogHeight: '+x+'px; dialogWidth: '+y+'px; dialogTop: '+myTop+'px; dialogLeft: '+myLeft+'px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;';//default features

	Argumentos  = window.showModalDialog(pag,'winModal',dFeatures);
}

// Title: Tigra Color Picker
// URL: http://www.softcomplex.com/products/tigra_color_picker/
// Version: 1.1
// Date: 06/26/2003 (mm/dd/yyyy)
// Note: Permission given to use this script in ANY kind of applications if
//    header lines are left unchanged.
// Note: Script consists of two files: picker.js and picker.html

var TCP = new TColorPicker();

function TCPopup(field, palette) {
	this.field = field;
	this.initPalette = !palette || palette > 3 ? 0 : palette;
	var w = 194, h = 240,
	move = screen ? 
		',left=' + ((screen.width - w) >> 1) + ',top=' + ((screen.height - h) >> 1) : '', 
	o_colWindow = window.open('../includes/picker.html', null, "help=no,status=no,scrollbars=no,resizable=no" + move + ",width=" + w + ",height=" + h + ",dependent=yes", true);
	o_colWindow.opener = window;
	o_colWindow.focus();
}

function TCBuildCell (R, G, B, w, h) {
	return '<td bgcolor="#' + this.dec2hex((R << 16) + (G << 8) + B) + '"><a href="javascript:P.S(\'' + this.dec2hex((R << 16) + (G << 8) + B) + '\')" onmouseover="P.P(\'' + this.dec2hex((R << 16) + (G << 8) + B) + '\')"><img src="pixel.gif" width="' + w + '" height="' + h + '" border="0"></a></td>';
}

function TCSelect(c) {
	this.field.value = '#' + c.toUpperCase();
	this.win.close();
}

function TCPaint(c, b_noPref) {
	c = (b_noPref ? '' : '#') + c.toUpperCase();
	if (this.o_samp) 
		this.o_samp.innerHTML = '<font face=Tahoma size=2>' + c +' <font color=white>' + c + '</font></font>'
	if(this.doc.layers)
		this.sample.bgColor = c;
	else { 
		if (this.sample.backgroundColor != null) this.sample.backgroundColor = c;
		else if (this.sample.background != null) this.sample.background = c;
	}
}

function TCGenerateSafe() {
	var s = '';
	for (j = 0; j < 12; j ++) {
		s += "<tr>";
		for (k = 0; k < 3; k ++)
			for (i = 0; i <= 5; i ++)
				s += this.bldCell(k * 51 + (j % 2) * 51 * 3, Math.floor(j / 2) * 51, i * 51, 8, 10);
		s += "</tr>";
	}
	return s;
}

function TCGenerateWind() {
	var s = '';
	for (j = 0; j < 12; j ++) {
		s += "<tr>";
		for (k = 0; k < 3; k ++)
			for (i = 0; i <= 5; i++)
				s += this.bldCell(i * 51, k * 51 + (j % 2) * 51 * 3, Math.floor(j / 2) * 51, 8, 10);
		s += "</tr>";
	}
	return s	
}
function TCGenerateMac() {
	var s = '';
	var c = 0,n = 1;
	var r,g,b;
	for (j = 0; j < 15; j ++) {
		s += "<tr>";
		for (k = 0; k < 3; k ++)
			for (i = 0; i <= 5; i++){
				if(j<12){
				s += this.bldCell( 255-(Math.floor(j / 2) * 51), 255-(k * 51 + (j % 2) * 51 * 3),255-(i * 51), 8, 10);
				}else{
					if(n<=14){
						r = 255-(n * 17);
						g=b=0;
					}else if(n>14 && n<=28){
						g = 255-((n-14) * 17);
						r=b=0;
					}else if(n>28 && n<=42){
						b = 255-((n-28) * 17);
						r=g=0;
					}else{
						r=g=b=255-((n-42) * 17);
					}
					s += this.bldCell( r, g,b, 8, 10);
					n++;
				}
			}
		s += "</tr>";
	}
	return s;
}

function TCGenerateGray() {
	var s = '';
	for (j = 0; j <= 15; j ++) {
		s += "<tr>";
		for (k = 0; k <= 15; k ++) {
			g = Math.floor((k + j * 16) % 256);
			s += this.bldCell(g, g, g, 9, 7);
		}
		s += '</tr>';
	}
	return s
}

function TCDec2Hex(v) {
	v = v.toString(16);
	for(; v.length < 6; v = '0' + v);
	return v;
}

function TCChgMode(v) {
	for (var k in this.divs) this.hide(k);
	this.show(v);
}

function TColorPicker(field) {
	this.build0 = TCGenerateSafe;
	this.build1 = TCGenerateWind;
	this.build2 = TCGenerateGray;
	this.build3 = TCGenerateMac;
	this.show = document.layers ? 
		function (div) { this.divs[div].visibility = 'show' } :
		function (div) { this.divs[div].visibility = 'visible' };
	this.hide = document.layers ? 
		function (div) { this.divs[div].visibility = 'hide' } :
		function (div) { this.divs[div].visibility = 'hidden' };
	// event handlers
	this.C       = TCChgMode;
	this.S       = TCSelect;
	this.P       = TCPaint;
	this.popup   = TCPopup;
	this.draw    = TCDraw;
	this.dec2hex = TCDec2Hex;
	this.bldCell = TCBuildCell;
	this.divs = [];
}

function TCDraw(o_win, o_doc) {
	this.win = o_win;
	this.doc = o_doc;
	var 
	s_tag_openT  = o_doc.layers ? 
		'layer visibility=hidden top=54 left=5 width=182' : 
		'div style=visibility:hidden;position:absolute;left:6px;top:54px;width:182px;height:0',
	s_tag_openS  = o_doc.layers ? 'layer top=32 left=6' : 'div',
	s_tag_close  = o_doc.layers ? 'layer' : 'div'
		
	this.doc.write('<' + s_tag_openS + ' id=sam name=sam><table cellpadding=0 cellspacing=0 border=1 width=181 align=center class=bd><tr><td align=center height=18><div id="samp"><font face=Tahoma size=2>sample <font color=white>sample</font></font></div></td></tr></table></' + s_tag_close + '>');
	this.sample = o_doc.layers ? o_doc.layers['sam'] : 
		o_doc.getElementById ? o_doc.getElementById('sam').style : o_doc.all['sam'].style

	for (var k = 0; k < 4; k ++) {
		this.doc.write('<' + s_tag_openT + ' id="p' + k + '" name="p' + k + '"><table cellpadding=0 cellspacing=0 border=1 align=center>' + this['build' + k]() + '</table></' + s_tag_close + '>');
		this.divs[k] = o_doc.layers 
			? o_doc.layers['p' + k] : o_doc.all 
				? o_doc.all['p' + k].style : o_doc.getElementById('p' + k).style
	}
	if (!o_doc.layers && o_doc.body.innerHTML) 
		this.o_samp = o_doc.all 
			? o_doc.all.samp : o_doc.getElementById('samp');
	this.C(this.initPalette);
	if (this.field.value) this.P(this.field.value, true)
}
// Title: Tigra Calendar
// URL: http://www.softcomplex.com/products/tigra_calendar/
// Version: 3.3 (European date format)
// Date: 09/01/2005 (mm/dd/yyyy)
// Note: Permission given to use this script in ANY kind of applications if
//    header lines are left unchanged.
// Note: Script consists of two files: calendar?.js and calendar.html

// if two digit year input dates after this year considered 20 century.
var NUM_CENTYEAR = 30;
// is time input control required by default
var BUL_TIMECOMPONENT = false;
// are year scrolling buttons required by default
var BUL_YEARSCROLL = true;

var calendars = [];
var RE_NUM = /^\-?\d+$/;

function calendar1(obj_target) {

	// assigning methods
	this.gen_date = cal_gen_date1;
	this.gen_time = cal_gen_time1;
	this.gen_tsmp = cal_gen_tsmp1;
	this.prs_date = cal_prs_date1;
	this.prs_time = cal_prs_time1;
	this.prs_tsmp = cal_prs_tsmp1;
	this.popup    = cal_popup1;

	// validate input parameters
	if (!obj_target)
		return cal_error("Error calling the calendar: no target control specified");
	if (obj_target.value == null)
		return cal_error("Error calling the calendar: parameter specified is not valid target control");
	this.target = obj_target;
	this.time_comp = BUL_TIMECOMPONENT;
	this.year_scroll = BUL_YEARSCROLL;
	
	// register in global collections
	this.id = calendars.length;
	calendars[this.id] = this;
}

function cal_popup1 (str_datetime) {
	if (str_datetime) {
		this.dt_current = this.prs_tsmp(str_datetime);
	}
	else {
		this.dt_current = this.prs_tsmp(this.target.value);
		this.dt_selected = this.dt_current;
	}
	if (!this.dt_current) return;

	var obj_calwindow = window.open(
		'../../includes/calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
		'Calendar', 'width=200,height='+(this.time_comp ? 215 : 190)+
		',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
	);
	obj_calwindow.opener = window;
	obj_calwindow.focus();
}

// timestamp generating function
function cal_gen_tsmp1 (dt_datetime) {
	return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}

// date generating function
function cal_gen_date1 (dt_datetime) {
	return (
		(dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "-"
		+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "-"
		+ dt_datetime.getFullYear()
	);
}
// time generating function
function cal_gen_time1 (dt_datetime) {
	return (
		(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
		+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
		+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
	);
}

// timestamp parsing function
function cal_prs_tsmp1 (str_datetime) {
	// if no parameter specified return current timestamp
	if (!str_datetime)
		return (new Date());

	// if positive integer treat as milliseconds from epoch
	if (RE_NUM.exec(str_datetime))
		return new Date(str_datetime);
		
	// else treat as date in string format
	var arr_datetime = str_datetime.split(' ');
	return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}

// date parsing function
function cal_prs_date1 (str_date) {

	var arr_date = str_date.split('-');

	if (arr_date.length != 3) return cal_error ("Invalid date format: '" + str_date + "'.\nFormat accepted is dd-mm-yyyy.");
	if (!arr_date[0]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
	if (!RE_NUM.exec(arr_date[0])) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[1]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
	if (!RE_NUM.exec(arr_date[1])) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[2]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
	if (!RE_NUM.exec(arr_date[2])) return cal_error ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");

	var dt_date = new Date();
	dt_date.setDate(1);

	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed range is 01-12.");
	dt_date.setMonth(arr_date[1]-1);
	 
	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
	dt_date.setFullYear(arr_date[2]);

	var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
	dt_date.setDate(arr_date[0]);
	if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");

	return (dt_date)
}

// time parsing function
function cal_prs_time1 (str_time, dt_date) {

	if (!dt_date) return null;
	var arr_time = String(str_time ? str_time : '').split(':');

	if (!arr_time[0]) dt_date.setHours(0);
	else if (RE_NUM.exec(arr_time[0]))
		if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
		else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed range is 00-23.");
	else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed values are unsigned integers.");
	
	if (!arr_time[1]) dt_date.setMinutes(0);
	else if (RE_NUM.exec(arr_time[1]))
		if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
		else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed values are unsigned integers.");

	if (!arr_time[2]) dt_date.setSeconds(0);
	else if (RE_NUM.exec(arr_time[2]))
		if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
		else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed values are unsigned integers.");

	dt_date.setMilliseconds(0);
	return dt_date;
}

function cal_error (str_message) {
	alert (str_message);
	return null;
}

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}




















