//MM
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

//SIZE
function getPageSizeWithScroll(){
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
  	}
	arrayPageSizeWithScroll = new Array(xWithScroll,yWithScroll);
	//alert( 'The height is ' + yWithScroll + ' and the width is ' + xWithScroll );
	return arrayPageSizeWithScroll;
}

//OPACIDAD
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 
    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100);  
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}

//iframes
function getIframe(id){
	var iframeElem = parent.document.getElementById(id);
	win = iframeElem.contentWindow.document;
	if (win==undefined) win=iframeElem.contentDocument.document;
	return win;
}

//COOKIES
function getThisCookie(name){
	devolver=""; //default
	var cname=name + "=";
	var dc=document.cookie;  
	if(dc.length>0){
		  begin=dc.indexOf(cname);
		  if(begin!=-1){
			begin+=cname.length;
			end=dc.indexOf(";",begin);
			if(end==-1) end=dc.length;
			devolver=dc.substring(begin,end);
		  }
	}
	return devolver;
 }

function setCookie(name,value,expires){
   document.cookie=name+ "=" +escape(value) +
   ((expires==null)?"":";expires="+expires.toGMTString());
}

function reloadByAjax(datafile, qs, url, xcapa){
	var capa=$(xcapa);
	capa.innerHTML="<center><p>&nbsp;</p><p><img src='img/wait.gif' border='0'></p></center>";
	this.respuesta = function(solicitud){
		document.location.href=url;
		capa.innerHTML="";
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta});
}

function fillDivByAjax(datafile, xcapa, qs){
	var capa=$(xcapa);
	capa.innerHTML="<center><p>&nbsp;</p><p><img src='img/wait.gif' hspace='10' border='0'></p></center>";
	
	this.salida = function(solicitud){
		capa.innerHTML="ERROR LOADING...";
	}
	
	this.respuesta = function(solicitud){
		capa.innerHTML=solicitud.responseText;
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta, onFailure: this.salida});
}

function modifyDivByAjax(datafile, xcapa, qs, pre, pos, miti, mitv){
	var capa=$(xcapa);
	capa.innerHTML="<center><p>&nbsp;</p><p><img src='img/wait.gif' border='0'></p></center>";
	
	this.salida = function(solicitud){
		capa.innerHTML=pre+pos;
		for(i=0;i<miti.length;i++){
			$(miti[i]).value=mitv[i];
		}
	}
	
	this.respuesta = function(solicitud){
		capa.innerHTML=pre+solicitud.responseText+pos;
		for(i=0;i<miti.length;i++){
			$(miti[i]).value=mitv[i];
		}
		if (xcapa=='divNewRecords'){
			tam=getPageSizeWithScroll();
			window.scroll(0,parseInt(tam[1])-600);
		}
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta, onFailure: this.salida});
}

function resAjax(datafile, xcapa, qs){
	var capa=$(xcapa);
	capa.innerHTML="<center><p>&nbsp;</p><p><img src='img/wait.gif' border='0'></p></center>";
	
	this.salida = function(solicitud){
		capa.innerHTML="ERROR LOADING...";
	}
	
	this.respuesta = function(solicitud){
		capa.innerHTML=solicitud.responseText;
		
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta, onFailure: this.salida});
}

//TECLADO
function keyDetect(e){
	var keynum;
	if(window.event){ // IE 
		keynum = e.keyCode;
	} else if(e.which) {// Netscape/Firefox/Opera
		keynum = e.which;
	}
	//alert(keynum);
	return (keynum);
}

function validarNumero(e, control){
	var cadena = "1234567890";
	aux = "";
	for (var contador = 0 ; contador < control.value.length ; contador++){
        if (cadena.indexOf(control.value.substr(contador, 1),0) > -1){
            aux += control.value.substr(contador, 1);
     	}
    }
	control.value=aux;
}

//FECHA
function onlyNumbers(e, control){
	validarNumero(e, control);
	if (control.value.length==2){
		if (control.name.indexOf('anio')>-1) armaFecha(control.name.substring(0,control.name.indexOf('_')+1));
	}
}

//OBJETOS
function isObj(ctl){
	if ((eval('document.getElementById("'+ctl+'")')=='undefined')||(eval('document.getElementById("'+ctl+'")')==null)) return false;
	else return true;
}

//COMBOS 
function fillList(matrix, lista){
	for(j=0;j<matrix.length;j++){
		if (matrix[j].indexOf("=")>-1){
			indice=matrix[j].substr(0,matrix[j].indexOf("="));
			valor=unescape(matrix[j].substr(matrix[j].indexOf("=")+1));
		}else{
			indice=matrix[j];
			valor=unescape(matrix[j]);
		}
		if (document.all){
			//PROCEDURE ESPECIFICO PARA IE
			newElem=document.createElement("OPTION");
			newElem.text=valor;
			newElem.value=indice;
			lista.options.add(newElem, j);
		}else{
			lista.options[j]= new Option(valor, indice)
		}
	}	
}

function add2List(elemento, lista){
	if (elemento.indexOf("=")>-1){
		indice=elemento.substr(0,elemento.indexOf("="));
		valor=unescape(elemento.substr(elemento.indexOf("=")+1));
	}else{
		indice=elemento;
		valor=unescape(elemento);
	}
	j=lista.options.length;
	if (document.all){
		//PROCEDURE ESPECIFICO PARA IE
		newElem=document.createElement("OPTION");
		newElem.text=valor;
		newElem.value=indice;
		lista.options.add(newElem, j);
	}else{
		lista.options[j]= new Option(valor, indice)
	}
}

function cloneList(origen, destino){
	cb1=$(origen); cb2=$(destino);
	vaciarLista(cb2);
	if (cb2.options.length>0){			
		//elimino tb el cero
		if (document.all){
			cb2.options.remove(0);
		}else{
			cb2.options[0]=null;
		}
	}
	
	for(j=0;j<cb1.options.length;j++){
		indice=cb1.options[j].value;
		valor=cb1.options[j].text;	
		if (document.all){
			//PROCEDURE ESPECIFICO PARA IE
			newElem=document.createElement("OPTION");
			newElem.text=valor;
			newElem.value=indice;
			cb2.options.add(newElem, j);
		}else{
			cb2.options[j]= new Option(valor, indice)
		}
	}
}

function cargarDeArray(cb, arr, ind, ctl){
	if ((cb.options.length-1>ind)&&(ind>0)) ctl.value=arr[ind-1];
}

function vaciarLista(lista){
	last=lista.length-1;
	for (i=last;i>-1;i--){
		if (document.all){
			lista.options.remove(i);
		}else{
			lista.options[i]=null;
		}
	}
}

function listSelectionByText(valor, lista){
	for(i=0;i<lista.options.length;i++){
		if (lista.options[i].text==valor){
			lista.selectedIndex=i;
		}
	}
}

function listSelectionByValue(valor, lista){
	for(i=0;i<lista.options.length;i++){
		if (lista.options[i].value==valor){
			lista.selectedIndex=i;
		}
	}
}

function fillSimpleByAjax(datafile, xloading, qs){
	myloading=$(xloading);
	myloading.innerHTML="<center><img src='images/wait.gif' border='0'></center>";
	this.salida = function(solicitud){
		myloading.innerHTML="ERROR AL CARGAR DATOS...";
		a=setTimeout('cleanNotify("'+xloading+'")', 4000);
	}
	this.respuesta = function(solicitud){
		myloading.innerHTML=solicitud.responseText;
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta, onFailure: this.salida});
}

//AJAX PROTOTYPE
function cleanNotify(xcapa){
	capa=$(xcapa);
	capa.innerHTML="&nbsp;";
}

var superlevel=-1;
function saveByAjax(datafile, xloading, xcapa, qs, targetfile, level){
	//level var de session x bloqueado
	if ((typeof level=='undefined')||(level==null)) superlevel=-1;
	else superlevel=level;
	capa=$(xcapa);
	myloading=$(xloading);
	myloading.innerHTML="<center><img src='images/wait.gif' border='0'></center>";
	this.salida = function(solicitud){
		myloading.innerHTML="ERROR AL GRABAR...";
		//visibilizo todas las botoneras
		if (isObj('divajax')) $('divajax').style.display='';
		for(i=0;i<5;i++){
			if (isObj('divajax'+i)) $('divajax'+i).style.display='';
		}
		a=setTimeout('cleanNotify("'+xloading+'")', 4000);
	}
	this.respuesta = function(solicitud){
		if ((typeof targetfile=='undefined')||(targetfile==null)){
			myloading.innerHTML=solicitud.responseText;
			//visibilizo todas las botoneras
			if (isObj('divajax')) $('divajax').style.display='';
			for(i=0;i<5;i++){
				if (isObj('divajax'+i)) $('divajax'+i).style.display='';
			}
			//recarga en altas y modif de prod x el arbol
			modPro=solicitud.responseText.indexOf('OK MODIF. PRODUCTO: ');
			inaPro=solicitud.responseText.indexOf('OK INACTIVAR PRODUCTO: ');
			altaPro=solicitud.responseText.indexOf('OK ALTA PRODUCTO: ');
			if ((modPro>-1)||(altaPro>-1)||(inaPro>-1)) document.location.href=document.location.pathname+'?servicios='+$('edit_servicios').value;			
			altaR=solicitud.responseText.indexOf('OK ALTA RESPONSABLE: ');
			if (altaR>-1){
				altaRid=solicitud.responseText.substr(solicitud.responseText.indexOf(': ')+2);
				document.location.href=document.location.pathname+'?idclientes='+$('idclientes').value+'&idresponsables='+altaRid;
			}
			altaC=solicitud.responseText.indexOf('OK ALTA CLIENTE: ');
			if (altaC>-1){
				altaCid=solicitud.responseText.substr(solicitud.responseText.indexOf(': ')+2);
				document.location.href=document.location.pathname+'?idclientes='+altaCid;
			}
			//alta de proyecto
			altaP=solicitud.responseText.indexOf('OK ALTA PROYECTO: ');
			if (altaP>-1){
				if (superlevel.toString()=='-1')
				fillListByAjax('setList.php', 'divloading4', 'proyectos', $('histproy'), 'responsables_idresponsables');
				else
				fillListByAjax('setList.php', 'divloading4', 'proyectos', $('histproy'), 'responsables_idresponsables', superlevel);
			}
			//visibilidad de capa en terceros
			if (xloading=='divloadingterceros'){
				//del primer = al primer &
				prod=qs.substring(qs.indexOf('=')+1,qs.indexOf('&'));
				tr='tr'+prod; ta='ta'+prod;
				switchTercero($(tr), $(ta));
			}
			//recarga de combos en nuevo rubro o lugar (viene un doble asterisco)
			if (solicitud.responseText.indexOf(' ** ')>-1){
				//si no fue un alta
				if ((altaP==-1)&&(altaC==-1)&&(altaPro==-1)){
					//pagina proyecto (tipo o salon nvo)
					if (xloading=='divloading'){
						idP=solicitud.responseText.substring(solicitud.responseText.indexOf(': ')+2,solicitud.responseText.indexOf(' ** '));
						document.location.href=document.location.pathname+'?idproyectos='+idP;
					}
					//rubro
					if (xloading=='divloading1'){
						idC=solicitud.responseText.substring(solicitud.responseText.indexOf(': ')+2,solicitud.responseText.indexOf(' ** '));
						document.location.href=document.location.pathname+'?idclientes='+idC;
					}
					//lugar
					if (xloading=='divloading3'){
						if (superlevel.toString()=='-1')
							fillListByAjax('setList.php', 'divloading4', 'proyectos', $('histproy'), 'responsables_idresponsables');
							else
							fillListByAjax('setList.php', 'divloading4', 'proyectos', $('histproy'), 'responsables_idresponsables', superlevel);
					}
				}
			}
			
			a=setTimeout('cleanNotify("'+xloading+'")', 14000);
		}else{
			document.location.href=targetfile;
		}
	}
	//invisibilizo todas las botoneras 
	if (isObj('divajax')) $('divajax').style.display='none';
	for(i=0;i<5;i++){
		if (isObj('divajax'+i)) $('divajax'+i).style.display='none';
	}
	var solicitud = new Ajax.Request(datafile,{method: 'post', parameters: encodeURI(qs), onComplete: this.respuesta, onFailure: this.salida});
	return false;
}

//VALIDACION
function fixAscii(cad){
	cadena=replaceStr(cad, 'ñ', '[|n|]');
	cadena=replaceStr(cadena, 'Ñ', '[|n|]');
	cadena=replaceStr(cadena, 'ç', '[|c|]');
	cadena=replaceStr(cadena, 'Ç', '[|c|]');
	cadena=replaceStr(cadena, 'á', '[|a|]');
	cadena=replaceStr(cadena, 'Á', '[|a|]');
	cadena=replaceStr(cadena, 'é', '[|e|]');
	cadena=replaceStr(cadena, 'É', '[|e|]');
	cadena=replaceStr(cadena, 'í', '[|i|]');
	cadena=replaceStr(cadena, 'Í', '[|i|]');
	cadena=replaceStr(cadena, 'ó', '[|o|]');
	cadena=replaceStr(cadena, 'Ó', '[|o|]');
	cadena=replaceStr(cadena, 'ú', '[|u|]');
	cadena=replaceStr(cadena, 'Ú', '[|u|]');
	cadena=replaceStr(cadena, "'", '[|$|]');
	cadena=replaceStr(cadena, '"', '[|$$|]');
	cadena=replaceStr(cadena, '&', '[|Y|]');
	return cadena;
}

function replaceStr(cad, cual, xcual){
	var returnStr = '';
	cadena = cad + '||';
	var fin = cadena.indexOf('||');
	for (i=0;i<fin;i++){
		if(''+cadena.charAt(i)==cual){
			returnStr = returnStr + xcual;
		}else{
	   		returnStr = returnStr + cadena.charAt(i);
		}
	}	
	return returnStr;
}

function removeLeadingAndTrailingChar (inputString, removeChar){
	var returnString = inputString;
	if (removeChar.length){
	  	while(''+returnString.charAt(0)==removeChar){
		  returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar){
	    	returnString=returnString.substring(0,returnString.length-1);
	  	}
	}
	return returnString;
}

function vmail(texto){
    var mailres = true;
    var cadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@._-";
    var arroba = texto.indexOf("@",0);
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
    var punto = texto.lastIndexOf(".");
    for (var contador = 0 ; contador < texto.length ; contador++){
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     	}
    }
    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1)) mailres = true;
    else mailres = false;
    return mailres;
}

