﻿String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }
String.prototype.startsWith = function(str){return (this.match("^"+str)==str)}

var posicion;
var elMovimiento;
var navegador;
var BateriaDeLlamadas; //Indentificador para detener las llamadas

function inicia(){
	posicion=0; elMovimiento=null;
	
	// IE
	if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
	// Otros
	else navegador=1;
}	

//Esta funcion es para cambiar el Target de todos los enlaces (util para el iframe)
function cambiarTarget(nuevoA, nuevoF){    
    cambiarTargetAnaliza(this.document.body, nuevoA, nuevoF);
}

function checkEnter(e){
    var characterCode =(window.event) ? event.keyCode : e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
 
    if (characterCode == 13) {
        return true;
    } else {
        return false;
    }
}
	
function cambiarTargetAnaliza(objeto, nuevoA, nuevoF){
    if(objeto==null) return;
    
	if(objeto.tagName=="a" || objeto.tagName=="A")
	{
		if(objeto.href.indexOf("__doPostBack")==-1){
			objeto.target=nuevoA;
		}else{
			objeto.target=nuevoF;
		}
    }	
   
    if(objeto.tagName=="form" || objeto.tagName=="FORM")
    { 
		objeto.target=nuevoF;
    }
    
    if(objeto.childNodes==null) return;
    if(objeto.childNodes.length==0) return;
    
    for(var c=0;c<objeto.childNodes.length;c++){
        cambiarTargetAnaliza(objeto.childNodes.item(c), nuevoA,nuevoF);
    }
}	


function RegistrarClickCanal(IdCanal){
    new Ajax.Request('Ajax/ClickCanal.aspx', {
              method: 'post',
              asynchronous: true,
              postBody: 'IdCanal='+IdCanal,
              onSuccess: RespuestaClickCanal,
              onFailure: RespuestaClickCanal});
}
function RespuestaClickCanal(resp){
    return true;    
}

function LimpiarCombo(obj){
    for (var count = obj.options.length - 1; count > -1; count--)
    {
            obj.options[count] = null;
    }
}

function AddCombo(obj,txt,valor){
    var newOpt = obj.appendChild(document.createElement('option'));
    newOpt.text = txt.toString().trim();
    newOpt.setAttribute("value",valor.toString().trim());
}

function AgrandaEncoge(idobj){
	var obj=document.getElementById(idobj);
	if(!obj.auxAgrandaEncogeInicial)
		obj.auxAgrandaEncogeInicial=obj.clientHeight;
	
	
	if(obj.auxAgrandaEncoge && obj.auxAgrandaEncoge!=null){
		PlegarMin(idobj,obj.offsetHeight,obj.auxAgrandaEncogeInicial);
		obj.auxAgrandaEncoge=null;
	}else{
		obj.auxAgrandaEncoge=obj.clientHeight;
		DesplegarMin(idobj,obj.auxAgrandaEncogeInicial,obj.scrollHeight);
	}
}

function Desplegar(idobj,max){
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.display="block";
    obj.style.height="0px";
    setTimeout("DesplegarSub('"+idobj+"',5,"+max+");",10);
}

function DesplegarMin(idobj,ini,max){
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.display="block";
    obj.style.height=ini+"px";
    setTimeout("DesplegarSub('"+idobj+"',"+ini+","+max+");",10);
}

function DesplegarSub(idobj,prc,max){
    if(prc>max) prc=max;
    
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.height=prc+"px";
    

    if(prc<max)
    {
        prc++; 
        prc*=1.4; 
        setTimeout("DesplegarSub('"+idobj+"',"+prc+","+max+");",1);
    }
}

function Plegar(idobj,max){
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.display="block";
    obj.style.height=max+"px";
    setTimeout("PlegarSub('"+idobj+"',"+max+",0,1);",1);
}

function PlegarMin(idobj,max,min){
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.display="block";
    obj.style.height=max+"px";
    setTimeout("PlegarSub('"+idobj+"',"+max+","+min+",1);",1);
}

function PlegarSub(idobj,prc,min,velocidad){
    if(prc<=-1) prc=-1;
    
    var obj=document.getElementById(idobj);
    if(obj==null) return;
    
    obj.style.height=prc+"px";
    
    if(prc>=min)
    { 
        prc-=velocidad; 
        velocidad*=1.5;
        if(velocidad>50) velocidad=50; 
        setTimeout("PlegarSub('"+idobj+"',"+prc+","+min+","+velocidad+");",1);
    }else{
		obj.style.height=min+"px"; 
		if(min<=0){
			obj.style.display="none";
        } 
    }
}

function evitaEventos(event)
{
	// Funcion que evita que se ejecuten eventos adicionales
	if(navegador==0)
	{
		window.event.cancelBubble=true;
		window.event.returnValue=false;
	}
	if(navegador==1) event.preventDefault();
}

function comienzoMovimiento(event, id, mx, my, dest)
{
	elMovimiento=document.getElementById(id);
	destinoCoord=document.getElementById(dest);
	
	elMovimiento.style.cursor="all-scroll";
	
	/* Si el elemento que se le hizo click es texto (nodeType=3) se toma como target
	el elemento padre */
	if(elMovimiento.nodeType==3) elMovimiento=elMovimiento.parentNode;
	
    maximoX=mx;
	maximoY=my;
	
	 // Obtengo la posicion del cursor
	if(navegador==0)
	 {
	 	cursorComienzoX=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		cursorComienzoY=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;

		document.attachEvent("onmousemove", enMovimiento);
		document.attachEvent("onmouseup", finMovimiento);
	}
	if(navegador==1)
	{    
		cursorComienzoX=event.clientX+window.scrollX;
		cursorComienzoY=event.clientY+window.scrollY;
		
		document.addEventListener("mousemove", enMovimiento, true); 
		document.addEventListener("mouseup", finMovimiento, true);
	}
	
	elComienzoX=parseInt(elMovimiento.style.left);
	elComienzoY=parseInt(elMovimiento.style.top);
	// Actualizo el posicion del elemento
	posicion++;
	elMovimiento.style.zIndex=posicion;
	
	evitaEventos(event);
}

function enMovimiento(event)
{  
	var xActual, yActual;
	if(navegador==0)
	{    
		xActual=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
		yActual=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
	}  
	if(navegador==1)
	{
		xActual=event.clientX+window.scrollX;
		yActual=event.clientY+window.scrollY;
	}
	
	var dx=elComienzoX+xActual-cursorComienzoX;
	var dy=elComienzoY+yActual-cursorComienzoY;
	
	if(dx<0){ elComienzoX-=dx; dx=0; }
	if(dy<0){ elComienzoY-=dy;dy=0; }
		
	if(dx+parseInt(elMovimiento.style.width)>maximoX){ 
	    elComienzoX-=(dx+parseInt(elMovimiento.style.width))-maximoX;
	    dx=maximoX-parseInt(elMovimiento.style.width);
	} 
	if(dy+parseInt(elMovimiento.style.height)>maximoY){
	    elComienzoY-=(dy+parseInt(elMovimiento.style.height))-maximoY;
	    dy=maximoY-parseInt(elMovimiento.style.height);
	}	
	
	elMovimiento.style.left=(dx)+"px";
	elMovimiento.style.top=(dy)+"px";
	
	destinoCoord.value=dx+"px, "+dy+"px, "+elMovimiento.style.width+", "+elMovimiento.style.height;

	evitaEventos(event);
}

function finMovimiento(event)
{
    elMovimiento.style.cursor="pointer";
	if(navegador==0)
	{    
		document.detachEvent("onmousemove", enMovimiento);
		document.detachEvent("onmouseup", finMovimiento);
	}
	if(navegador==1)
	{
		document.removeEventListener("mousemove", enMovimiento, true);
		document.removeEventListener("mouseup", finMovimiento, true); 
	}	
}


function Zoom(obj, limites, limitemin, rel, m, dest){
    if(parseFloat(obj.style.width)<limitemin && m<1)
        return; 
        
    var W=parseFloat(obj.style.width);
    var nuevoW=W+m; 
    
    var nuevoH=nuevoW/rel;
    var nuevoX=parseFloat(obj.style.left);
    var nuevoY=parseFloat(obj.style.top);    
   
    if(nuevoX+nuevoW>parseFloat(limites.width)){
        nuevoX= parseFloat(limites.width)-nuevoW;
        if(nuevoX<0){            
            nuevoX=0;
            nuevoW=parseFloat(limites.width);
            nuevoH=nuevoW/rel; 
        }
    }
     
    if(nuevoY+nuevoH>parseFloat(limites.height)){
        nuevoY=parseFloat(limites.height)-nuevoH;
        if(nuevoY<0){             
            nuevoY=0;
            nuevoH=parseFloat(limites.height);
            nuevoW=nuevoH*rel;  
        }
    } 
              
    obj.style.width=(nuevoW)+"px";
    obj.style.height=(nuevoH)+"px";
    obj.style.left=(nuevoX)+"px";
    obj.style.top=(nuevoY)+"px";
   
   destinoCoord=document.getElementById(dest);
   destinoCoord.value=obj.style.left+", "+obj.style.top+", "+obj.style.width+", "+obj.style.height; 
}


function iniciaBateriaDeLlamadas(scr,retardo){
    clearInterval(BateriaDeLlamadas);
    BateriaDeLlamadas=setTimeout("frameBateriaDeLlamadas(\""+scr+"\","+retardo+");",0);
}
function frameBateriaDeLlamadas(scr,retardo){
    eval(scr);
    BateriaDeLlamadas=setTimeout("frameBateriaDeLlamadas(\""+scr+"\","+retardo+");",0);
}
function detenerBateriaDeLlamadas(){
    clearInterval(BateriaDeLlamadas);
}


function SeleccionaBloque(obj){
	if (document.selection) {
		var r1 = document.body.createTextRange();
		var r4 = document.body.createTextRange();
		r1.moveToElementText(obj);
		r4.moveToElementText(obj);
		r1.setEndPoint("EndToEnd", r4);
		r1.select();
	} else {
		s = window.getSelection();
		var r1 = document.createRange();
		r1.setStartBefore(obj);
		r1.setEndAfter(obj);
		s.addRange(r1);
	}
}

inicia();
