/*
    WebSnapr - Preview Bubble Javascript
    Written by Juan Xavier Larrea
    http://www.websnapr.com - xavier@websnapr.com

*/
/*
    Modificada 01 Febrero 2007 por Roy Alvear
    cambiando el uso de una vista previa de
    la pagina web por un texto introduciodo
    en el nombre del hipervinculo.
*/

// Point this variable to the correct location of the bg.png file
//var bubbleImagePath = 'bg.png';

var imgPath = "fileadmin/templatesimce/images/imagenes_script/";
//var imgPath = "";


//las imagenes corresponden al los bordes e interior de la tabla de la siguiente forma
/*
  1   2   3

  4   5   6

  7   8   9

bubr es el trozo de la burbuja que falra por recorte de imagen
*/
var alto1 = 23;
var alto7 = 12;
var ancho1= 21;
var ancho3= 15;
var anchoTabla = 250;
var tamletra = 11;

var bub1 = imgPath + 'img1.png';
var bub2 = imgPath + 'img2.png';
var bub3 = imgPath + 'img3.png';
var bub4 = imgPath + 'img4.png';
var bub5 = imgPath + 'img5.png';
var bub6 = imgPath + 'img6.png';
var bub7 = imgPath + 'img7.png';
var bub8 = imgPath + 'img8.png';
var bub9 = imgPath + 'img9.png';
var bubr = imgPath + 'bub.png';

// DO NOT EDIT BENEATH THIS
if(typeof Array.prototype.push!="function"){
        Array.prototype.push=ArrayPush;
        function ArrayPush(_1){
                this[this.length]=_1;
        }
}

//dada un area de busqueda, un tipo de elemento a buscar y un nombre de clase de busqueda
//retorna un arreglo de los elementos encontrados que pertenecen a dicha clase
function WSR_getElementsByClassName(areaDeBusqueda,objElement,classElement){
        var elementList=(objElement=="*"&&areaDeBusqueda.all)?areaDeBusqueda.all:areaDeBusqueda.getElementsByTagName(objElement);
        var elementByClass=new Array();
        classElement=classElement.replace(/\-/g,"\\-");
        var regExpClass=new RegExp("(^|\\s)"+classElement+"(\\s|$)");
        var thisElement;
        for(var i=0;i<elementList.length;i++){
                thisElement=elementList[i];
                if(regExpClass.test(thisElement.className)){
                        elementByClass.push(thisElement);
                }
        }
return (elementByClass);
}

//agrega oidores mouseover y mouseout a una lista de elementos
function bindBubbles(e){
        lbActions=WSR_getElementsByClassName(document,"a","textlink");
        for(i=0;i<lbActions.length;i++){
                if(window.addEventListener){
                        lbActions[i].addEventListener("mouseover",attachBubbleTx,false);
                        lbActions[i].addEventListener("mouseout",detachBubble,false);
                }else{
                        lbActions[i].attachEvent("onmouseover",attachBubbleTx);
                        lbActions[i].attachEvent("onmouseout",detachBubble);
                }
        }
}

//agrega burbuja
function attachBubbleTx(_b){
        var objLink;
        if(_b["srcElement"]){
            objLink=_b["srcElement"];
        }else{
            objLink=_b["target"];
        }
        if (objLink.href == undefined){
            objLink=objLink.parentNode;
        }
        var httpRef=objLink.href;
        if (BrowserDetect.browser == 'Explorer'){
           var curLeft=findPos(objLink)[0]+findPos(objLink)[3]/2;
           var curTop=findPos(objLink)[1]+5+findPos(objLink)[2];
        }
        else{
           var curLeft=findPos(objLink)[0]+findPos(objLink)[3]-10;
           var curTop=findPos(objLink)[1]+5+findPos(objLink)[2];
        }
        var divElem=document.createElement("div"); // crear sontenedor div
        document.getElementsByTagName("body")[0].appendChild(divElem);
        divElem.className="previewbubble";

        if (BrowserDetect.browser == 'Explorer') {
                divElem.style.width=""+ anchoTabla +"px";
                divElem.style.position="absolute";
                divElem.style.top=curTop;
                divElem.style.zIndex=99999;
                divElem.style.left=curLeft;
                divElem.style.textAlign="left";
                divElem.style.paddingTop="0";
                divElem.style.paddingLeft="0";
                divElem.style.paddingBottom="0";
                divElem.style.paddingRight="0";
                divElem.style.marginTop="0";
                divElem.style.marginLeft="0";
                divElem.style.marginBottom="0";
                divElem.style.marginRight="0";
        } else {
                divElem.setAttribute("style","text-align: center; z-index: 99999; position: absolute; top: "+curTop+"px ; left: "+curLeft+"px ; width: 100%;  padding: 0; margin: 0;");
        }

        if (BrowserDetect.browser != 'Explorer') { // Crear contenedor con imagen de burbuja
              var tabla=document.createElement("table"); //crear tabla

              var f = new Array();
              for(i=0;i<3;i++)
                  f[i] = document.createElement("tr"); //crear filas

              var c = new Array();
              for(i=0;i<9;i++)
                  c[i] = document.createElement("td");  //crear celdas

              for(i=0;i<3;i++)
                      tabla.appendChild(f[i]); //agrego filas a la tabla
              for(i=0;i<3;i++)
                      f[0].appendChild(c[i]);  //agrego celdas a fila 1
              for(i=3;i<6;i++)
                      f[1].appendChild(c[i]); //agrego celdas a fila 2
              for(i=6;i<9;i++)
                      f[2].appendChild(c[i]); //agrego celdas a fila 3

              divElem.appendChild(tabla);     //agrego la tabla al div contenedor

                              //dar formatos
              var extra=Array();
              extra[0]=" width:"+ ancho1 +"px; height:"+ alto1 +"px; background-image: url("+ bub1 +"); background-repeat: no-repeat;";
              extra[1]=" background-image: url("+ bub2 +"); background-repeat: repeat-x;";
              extra[2]=" width:"+ ancho3 +"px; background-image: url("+ bub3 +"); background-repeat: no-repeat;";
              extra[3]=" background-image: url("+ bub4 +"); background-repeat: repeat-y;";
              extra[4]=" background-image: url("+ bub5 +");";
              extra[5]=" background-image: url("+ bub6 +"); background-repeat: repeat-y;";
              extra[6]=" height:"+ alto7 +"px; background-image: url("+ bub7 +"); background-repeat: no-repeat;";
              extra[7]=" background-image: url("+ bub8 +"); background-repeat: repeat-x;";
              extra[8]=" background-image: url("+ bub9 +"); background-repeat: no-repeat;";

              tabla.setAttribute("style","width: "+ anchoTabla +"px; padding: 0; margin: 0;");
              for(i=0;i<9;i++){
                      estilo = "padding: 0; margin: 0;" + extra[i];
                      c[i].setAttribute("style",estilo);
              }
              tabla.setAttribute("cellspacing","0");
              tabla.setAttribute("cellpadding","0");
        }
        else { //if (BrowserDetect.browser == 'Explorer') {
          var c = new Array();
          for(i=0;i<9;i++)
                      c[i]=document.createElement('div');

          for(i=0;i<9;i++)
                      divElem.appendChild(c[i]);
                          //document.getElementsByTagName("body")[0].appendChild(c[i]);

          for(i=0;i<9;i++){
                  c[i].style.paddingTop="5";
                  c[i].style.paddingLeft="5";
                  c[i].style.paddingBottom="5";
                  c[i].style.paddingRight="5";
                  c[i].style.marginTop="0";
                  c[i].style.marginLeft="0";
                  c[i].style.marginBottom="0";
                  c[i].style.marginRight="0";
                  c[i].style.borderTop ="0";
                  c[i].style.borderLeft ="0";
                  c[i].style.borderRight ="0";
                  c[i].style.borderBottom ="0";
                  c[i].style.position="absolute";
                  //c[i].style.position="relative";
                  if(i==4)
                      c[i].style.backgroundColor="#EEEEEE";
          }
/*
          c[0].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub1 +"',sizingMethod='image')";
          c[1].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub2 +"',sizingMethod='image')";
          c[2].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub3 +"',sizingMethod='image')";
          c[3].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub4 +"',sizingMethod='image')";
          //c[4].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub5 +"',sizingMethod='image')";
          c[5].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub6 +"',sizingMethod='image')";
          c[6].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub7 +"',sizingMethod='image')";
          c[7].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub8 +"',sizingMethod='image')";
          c[8].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub9 +"',sizingMethod='image')";

          c[0].style.width =""+ancho1+"px";
          c[0].style.height=""+alto1+"px";
          c[2].style.width =""+ancho3+"px";
          c[6].style.height=""+alto7+"px";
          c[1].style.width =""+ (anchoTabla-(ancho1+ancho3)) +"px";
*/
          c[0].style.width ="1px";
          c[0].style.height="1px";
          c[2].style.width ="1px";
          c[6].style.height="1px";
          c[1].style.width =""+ (anchoTabla-(ancho1+ancho3)) +"px";

          c[1].style.height=c[0].style.height;
          c[2].style.height=c[0].style.height;
          c[3].style.width =c[0].style.width;
          c[6].style.width =c[0].style.width;
          c[7].style.height=c[6].style.height;
          c[7].style.width =c[1].style.width;
          c[8].style.height=c[6].style.height;
          c[8].style.width =c[2].style.width;
          c[5].style.width =c[2].style.width;
          c[4].style.width =c[1].style.width;
        }

        var arrayTx = objLink.name.split("|");
        var elemShow = document.createElement('div');
        extralargo=0;
        for(i=0;i<arrayTx.length;i++){ //Agrega los textos
                elemShow.appendChild(document.createTextNode(arrayTx[i]));
                if((arrayTx[i].length*8)>(anchoTabla-(ancho1+ancho3)))
                   extralargo=extralargo+(arrayTx[i].length*8)/(anchoTabla-(ancho1+ancho3))-1;
                elemShow.appendChild(document.createElement('br'));
        }
        elemShow.appendChild(document.createElement('br'));
        numrows=(i+1+extralargo)*tamletra; //numero aprox de filas en pixceles
        if (BrowserDetect.browser == 'Explorer') { //estilo del div del texto
                elemShow.style.paddingTop="0px";
                elemShow.style.paddingLeft="0px";
                elemShow.style.paddingBottom="0px";
                elemShow.style.paddingRight="0px";
                elemShow.style.margin="auto";
                elemShow.style.marginTop="0px";
                elemShow.style.marginLeft="0px";
                elemShow.style.marginBottom="0px";
                elemShow.style.marginRight="0px";
                elemShow.style.borderTop="0";
                elemShow.style.borderLeft="0";
                elemShow.style.borderBottom="0";
                elemShow.style.borderRight="0";
                elemShow.style.textAlign="left";
                elemShow.style.backgroundColor="#FFFFFF"; //#FFFFEE amarillo claro
                elemShow.style.width=""+(anchoTabla-(ancho1+ancho3))+"px";
                elemShow.style.height=""+numrows+"px";
                elemShow.style.fontSize= "" + tamletra + "px";
                elemShow.style.fontFamily="Verdana";
                elemShow.style.color="#333333";
        } else {
                elemShow.setAttribute("style","font: " + tamletra + "px Verdana; padding-top: 2px; padding-left: 2px; padding-right: 2px; padding-bottom: 2px; margin-top: 2px; margin-left: 2px; margin-bottom: 2px; margin-right: 2px; border:0; text-align: left; background-color:#FFFFFF;color:#990000;");
        }

        c[4].appendChild(elemShow);
/*
        if (BrowserDetect.browser == 'Explorer') { //dibuja cuadro para ie
                  c[4].style.height=numrows;

                  c[3].style.height = c[4].style.height;
                  c[5].style.height = c[4].style.height;

                  curTop=0;
                  curLeft=0;

                  c[0].style.top=curTop;
                  c[0].style.left=curLeft;
                  c[1].style.top=curTop;//-alto1;
                  c[1].style.left=curLeft+ancho1;
                  c[2].style.top=curTop;//-alto1*2;
                  c[2].style.left=curLeft+(anchoTabla-ancho3);

                  c[3].style.top=curTop+alto1;//-alto1*2;
                  c[3].style.left=curLeft;
                  c[4].style.top=curTop+alto1;//-alto1*2;
                  c[4].style.left=curLeft+ancho1;
                  c[5].style.top=curTop+alto1;//-alto1*2;//curTop-c[4].style.height;
                  c[5].style.left=curLeft+(anchoTabla-ancho3);

                  c[6].style.left=curLeft;
                  c[6].style.top =numrows+alto1;// -alto1*2;
                  c[7].style.left=curLeft+ancho1;
                  c[7].style.top =numrows+alto1;// -(alto7 + alto1*2);
                  c[8].style.left=curLeft+(anchoTabla-ancho3);
                  c[8].style.top =numrows+alto1;// -(alto7*2 + alto1*2);

                  bordeUp=Array();
                  bordeDw=Array();
                  anchoCentro=anchoTabla-(ancho1+ancho3);
                  for(i=1;i<anchoCentro/3;i++){
                    posX=curLeft+ancho1+i*3;
                    bordeUp[i]=document.createElement('div');
                    bordeUp[i].style.position="absolute";
                    bordeUp[i].style.width="3px";
                    bordeUp[i].style.height=""+alto1+"px";
                    bordeUp[i].style.top=curTop;
                    bordeUp[i].style.left=posX;
                    bordeUp[i].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub2 +"',sizingMethod='image')";
                    bordeDw[i]=document.createElement('div');
                    bordeDw[i].style.position="absolute";
                    bordeDw[i].style.width="3px";
                    bordeDw[i].style.height=""+alto7+"px";
                    bordeDw[i].style.top=numrows+alto1;
                    bordeDw[i].style.left=posX;
                    bordeDw[i].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub8 +"',sizingMethod='image')";
                    divElem.appendChild(bordeUp[i]);
                    divElem.appendChild(bordeDw[i]);
                }

                BordeIz=Array();
                BordeDr=Array();
                for(i=1;i<numrows/5;i++){
                   posY=curTop+alto1+i*5;
                   BordeIz[i]=document.createElement('div');
                   BordeIz[i].style.position="absolute";
                   BordeIz[i].style.width=""+ancho1+"px";
                   BordeIz[i].style.height="5px";
                   BordeIz[i].style.top=posY;
                   BordeIz[i].style.left=curLeft;
                   BordeIz[i].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub4 +"',sizingMethod='image')";
                   BordeDr[i]=document.createElement('div');
                   BordeDr[i].style.position="absolute";
                   BordeDr[i].style.width=""+ancho3+"px";
                   BordeDr[i].style.height="5px";
                   BordeDr[i].style.top=posY;
                   BordeDr[i].style.left=curLeft+ancho1+anchoCentro;
                   BordeDr[i].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bub6 +"',sizingMethod='image')";
                   divElem.appendChild(BordeIz[i]);
                   divElem.appendChild(BordeDr[i]);
                  }
        }
*/
        var img=document.createElement("img");
        if (BrowserDetect.browser == 'Explorer') {
/*
                img.style.paddingTop="0";
                img.style.paddingLeft="0";
                img.style.paddingBottom="0";
                img.style.paddingRight="0";
                img.style.margin="auto";
                img.style.marginTop="0px";
                img.style.marginLeft="0px";
                img.style.marginBottom="0";
                img.style.marginRight="0";
                img.style.borderTop="0";
                img.style.borderLeft="0";
                img.style.borderBottom="0";
                img.style.borderRight="0";
                img.style.position="absolute";
                img.style.top=curTop;
                img.style.left=curLeft+ancho1;
*/
        } else {
                img.setAttribute("style","padding-top: 0; padding-left: 0; padding-right: 0; padding-bottom: 0; margin-top: 0px; margin-left: 0px; margin-bottom: 0; margin-right: 0; border: 0");
        }
        img.setAttribute("src",bubr);
        img.setAttribute("width",30);
        img.setAttribute("height",23);
        img.setAttribute("alt","");
        if(BrowserDetect.browser != 'Explorer')
                c[1].appendChild(img);
/*        else
                divElem.appendChild(img);*/
}

//quita burbuja
function detachBubble(_12){
        lbActions=WSR_getElementsByClassName(document,"div","previewbubble");
        for(i=0;i<lbActions.length;i++){
                lbActions[i].parentNode.removeChild(lbActions[i]);
        }
}

//agrega oidor de carga (este a su vez llama a la funcion que crea los oidores de raton)
if(window.addEventListener){
        addEventListener("load",bindBubbles,false);
}else{
        attachEvent("onload",bindBubbles);
}

//retorna la posicion del objeto
function findPos(obj){
        var curLeft=curtop=0;
        if(obj.offsetParent){
                curLeft=obj.offsetLeft;
                curtop=obj.offsetTop;
                curheight=obj.offsetHeight;
                curwidth= obj.offsetWidth;
                while(obj=obj.offsetParent){
                        curLeft+=obj.offsetLeft;
                        curtop+=obj.offsetTop;
                }
        }
        return [curLeft,curtop,curheight,curwidth];
}

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {   string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {       // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {       // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};
BrowserDetect.init();