// JavaScript Document

var REG_EMAIL = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i


function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	
	if(v_length < 0){
		return"";
	}
	
	var iTemp = v_length -1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		
		iTemp = iTemp-1;

	} //End While

	return strTemp;
} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
	
		iTemp = iTemp + 1;
	} //End While
	
	return strTemp;
} //End Function

function isMail(_email) {
     var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
     return emailReg.test(_email);
}

function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
	
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}else{
		return TRIM_VALUE;
	}
} //End Function

function validar_fecha(anyo, mes, dia){
	// los meses en JS son del 0 al 11
	var d1 = new Date(anyo, mes-1) ;
	var d2 = new Date(anyo, mes-1, dia) ;
	
	if (d1.getMonth() == d2.getMonth() ){
		return true ;
	}else{
		return false ;
	}		
}


function validar_controles_de_fecha(prefix){
	if (prefix=='') return ;
	
	var year = $F(prefix+'_year') ;
	var month= $F(prefix+'_month') ;
	var day  = $F(prefix+'_day') ; 
	
	if (validar_fecha(year, month, day)){
		return true ;
		
	} else {
		return false ;
	}

}

function ajax_create_xmlhttp(){
	var ret = null ; 
	try {
		ret = new ActiveXObject("Msxml2.XMLHTTP") ; 
	} catch (e) {
		try {
			ret = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (ee) {
			ret = null ;
		}
	}
	if (!ret && typeof XMLHttpRequest != 'undefined')
		ret = new XMLHttpRequest() ;
	return ret ;
}

function ajax_query(callback, url, postArray, asText){
	
	function ajax_bind_callback(){
		if (req.readyState == 4){
			if (req.status == 200){
				if (ajax_callback){
					if (asText){
						ajax_callback(req.responseText) ;
					}else{
						ajax_callback(req.responseXML) ;
					}
				}else{
					alert("no callback defined") ;
				}
			}
		}
	}
	
	var ajax_callback = callback ; 
	var req = ajax_create_xmlhttp() ;
	if (!req) return ;
	
	req.onreadystatechange = ajax_bind_callback ;
	if (postArray){
		req.open('POST', url, true) ;
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') ;
		req.send(ajax_encode_array(postArray)) ;
	}else{
		req.open('GET', url, true);
		req.send(null) ;
	}
	
}

function ajax_encode_array(dataToEncode){
	var post_data = '' ;
	for (var key in dataToEncode){
		post_data += '&' + escape(key) + '=' + escape(dataToEncode[key]) ;
	}
	
	if (post_data.length==0) return '';
	return post_data.substring(1) ;
}

function inject_html(obj_id, html){
	var obj = document.getElementById(obj_id) ;
	if (obj && obj.innerHTML){
		
		obj.innerHTML = html ;
		return true ;
		
	}else{
		return false ;
	}
	
}

function addEvent(obj, evType, fn, useCapture){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture) ;
		return true ;
	} else if (obj.attachEvent){
		return obj.attachEvent('on' + evType, fn) ;
	} else {
		obj['on' + evType] = fn ;
	}
		
}

function ascendDOM(e, target) {
  while (e.nodeName.toLowerCase() != target && 
      e.nodeName.toLowerCase() != 'html')
    e = e.parentNode;
  
  return (e.nodeName.toLowerCase() == 'html') ? null : e;
}

function showAlert(elementId, msg, tipo){
	if (typeof tipo == 'undefined') tipo = 2;
	a = $(elementId) ;
	if (!a) return ;
	
	if (tipo == 1 ){
		a.className = 'alert_form' ;
	} else if (tipo == 2) {
		a.className = 'message_box' ;
	}
	a.onclick = function (){Effect.Fade(a, 'BLIND');	} ;
	
	a.style.display = 'none';
	Element.update(a, msg);
	
	if (tipo==1) Effect.Pulsate(a, {duration: 0.5, fps: 10});
	
	if (msg.length == 0){
		Element.hide(a) ;
	} else {
		Element.show(a) ;
	}
}

function resaltarTabla(tbl){
	tbl = $(tbl);
	
	tds = tbl.getElementsByTagName("td");
	for (i=0 ; i < tds.length ; i++){
		Event.observe(tds[i], 'mouseover', resaltar_fila);
		Event.observe(tds[i], 'mouseout' , quitar_resaltado);
	}
}

function resaltar_fila(e){
	var e = window.event ? window.event : e ;
	td = Event.element(e);
	tr = ascendDOM(td, 'tr');
	if (tr){
		Element.addClassName(tr, 'fila_activa');
	}
}

function quitar_resaltado(e){
	var e = window.event ? window.event : e ;
	td = Event.element(e);
	tr = ascendDOM(td, 'tr');
	if (tr){
		Element.removeClassName(tr, 'fila_activa');
	}
}

