function nuevoAjax(){
	var xmlhttp=false;
 	try {
 		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

// Returns the coordinates of and element
function GetEventXY(e){
    var x, y;

    if (!e) var e = window.event;
    if (document.all){

        x = e.clientX + document.body.scrollLeft;
        y = e.clientY + document.body.scrollTop;
    } else {
        x = e.pageX;
        y = e.pageY;
    }

    if (x < 0){
        x = 0;
    }

    if (y < 0){
        y = 0;
    }

    return [x, y];
}

//Returns the true offset position of an element
function GetPos(Obj) {
	var curleft = curtop = 0;

	if (Obj.offsetParent)
	{
		curleft = Obj.offsetLeft;
		curtop = Obj.offsetTop;

		while (Obj == Obj.offsetParent)
		{
			curleft += Obj.offsetLeft;
			curtop += Obj.offsetTop;
		}
	}

	return [curleft, curtop];
}

// returns left position of an element w/o offset
function getRealLeft(div)
{
	thisObj = div;
	xPos = getRealLeftByObj(div);
	return xPos;
}

// returns true left position of an element
function getRealLeftByObj(thisObj)
{
	xPos = 0;
	if(thisObj)
	{
		xPos = thisObj.offsetLeft;
		tempEl = thisObj.offsetParent;
		while(tempEl != null)
		{
			xPos += tempEl.offsetLeft;
			tempEl = tempEl.offsetParent;
		}
	}
	return xPos;
}


var Madridiario = window.Madridiario || {};

Madridiario.namespace = function(ns)
{
  if(!ns || !ns.length)
  {
      return null;
  }

  var nw_2 = ns.split(".");
  var nw_3 = Madridiario;

   for(var i=(nw_2[0]=="Madridiario")?1:0;i<nw_2.length;++i)
   {
       nw_3[nw_2[i]] = nw_3[nw_2[i]] || {};
       nw_3 = nw_3[nw_2[i]];
   }
   return nw_3;
};

Madridiario.namespace("Widget");


Madridiario.Widget.FontSizeSlider = {

    init : function(obj, width, caretWidth) //args: obj, width, caretWidth, onAfterResize
    {
        var slider = {
            dragging       : false,
            width          : width,
            percent        : 0,
            origFontSize   : 0.625,
            lineHeightRate : 0.416667,
            container      : obj,
            caret          : $('div', obj).slice(0, 1),
            caretWidth     : caretWidth
        }

        $(slider.caret).mousedown(function() {
            if(slider.dragging) {return;};

            slider.dragging = true;
        });

        $(document).mousemove(function(e) {
            Madridiario.Widget.FontSizeSlider.onSliderMouseMove(e, slider);
        });

        $(document).mouseup(function(e) {
            Madridiario.Widget.FontSizeSlider.onSliderMouseUp(e, slider);
        });
    },

    slideToStart : function(slider)
    {
        this.slideTo(0, slider)
    },

    slideToEnd : function(slider)
    {
        var X = slider.width - slider.caretWidth
        this.slideTo(X, slider);
    },

    slideTo : function(X, slider)
    {
        $(slider.caret).css('left', X + 'px');
        slider.percent = (X / slider.width);
        //this.Percent = ((X + (this.Caret.Width / 2)) / this.Width) * 100;
    },

    onSliderMouseUp : function(e, slider)
    {
        if (slider.dragging)
        {
            slider.dragging = false;

            //if (slider.OnAfterResize != null)
            //{
               this.onAfterResize(slider);
            //}
        }
    },

    onSliderMouseMove : function(e, slider)
    {
        if (!slider.dragging) {return;};

        var MouseP = GetEventXY(e);
        var MouseX = MouseP[0];
        var MouseY = MouseP[1];

        var SliderP = GetPos(slider.container);
        SliderX = getRealLeft(slider.container);

        //var SliderX = SliderP[0];
        //var SliderY = SliderP[1];

        if (MouseX < (SliderX + (slider.caretWidth / 2))) // left of slider
        {
            this.slideToStart(slider);
        }
        else if (MouseX > (SliderX + slider.width - slider.caretWidth)) // right of slider
        {
            this.slideToEnd(slider);
        }
        else // inside slider
        {
            var X = (MouseX - SliderX - (slider.caretWidth / 2))
            this.slideTo(X, slider);
        }
    },

    onAfterResize : function(slider)
    {
        var NewSize = slider.origFontSize;

        if (slider.percent > 0)
        {
            NewSize = slider.origFontSize + (slider.origFontSize * slider.percent);
        }

        $('#contenedor').css('font-size', NewSize + 'em');
        slider.dragging = false;
    }
}

//CSS_ONTHEFLY_BH
var CSS_OTF;
function createCss(){
	try{
		CSS_OTF = document.createStyleSheet();
	}catch(e){
		var css = document.createElement("style");
		document.getElementsByTagName("head")[0].appendChild(css);
		CSS_OTF = document.styleSheets[document.styleSheets.length -1]
	}
}
createCss();


//PRELOAD
LOAD_STATUS_TEXT = "<div id=\"cargando\" class=\"preload\"><img src=\"/im/loading.gif\" alt=\"cargando\"><p>Cargando...</p></div>";
LOAD_STATUS_TEXT_S = "<div id=\"cargando\" class=\"preload\"><img src=\"/im/loading_mini.gif\" alt=\"cargando\">&nbsp;Cargando ...</div>";

//MENU DESPLEGABLE
function mostrar(modulo,posicionx,posiciony){
    $('#'+modulo).css('display','block');
    if (posicionx>0){
        $('#'+modulo).css('bottom',posicionx+'px');
    }
    if (posiciony>0){
        $('#'+modulo).css('right',posiciony+'px');
    }
}

function ocultar(modulo){
    $('#'+modulo).css('display','none');
}

var rules_show_hide = {
    evento : function () {
              $('#pie_bm0').mouseover(function(){return mostrar('modulo0',70,5); });
              $('#pie_bm0').mouseout (function(){return ocultar('modulo0'); });
              $('#modulo0').mouseover(function(){return mostrar('modulo0',70,5); });
              $('#modulo0').mouseout (function(){return ocultar('modulo0'); });
              $('#pie_bm1').mouseover(function(){return mostrar('modulo1',35,5); });
              $('#pie_bm1').mouseout (function(){return ocultar('modulo1'); });
              $('#modulo1').mouseover(function(){return mostrar('modulo1',35,5); });
              $('#modulo1').mouseout (function(){return ocultar('modulo1'); });
              $('#pie_bm2').mouseover(function(){return mostrar('modulo2',35,102); });
              $('#pie_bm2').mouseout (function(){return ocultar('modulo2'); });
              $('#modulo2').mouseover(function(){return mostrar('modulo2',35,102); });
              $('#modulo2').mouseout (function(){return ocultar('modulo2'); });
    }
}
$(document).ready(rules_show_hide.evento);

//SET HOME - FAVORITOS
function agregar(){
    if (isExplorer())  window.external.AddFavorite("http://www.elpais.com","EL PAIS");
    else alert("Presione Ctrl+D para agregar este sitio en sus Favoritos");
}
function isExplorer(){
   if ((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>=4)) return true;
   else if(navigator.appName == "Netscape") return false;
   else return false;
}

var rules_set_home = {
        home : function() {
               $('#set_home').click(function(){
                    //agregar();
                    if (isExplorer()) {
                        el.style.behavior='url(#default#homepage)';
                        el.setHomePage('http://www.elpais.com');
                    }
                    return false;
                });
               },
   favoritos : function(){
               $('#favoritos').click(function(){
                    if (window.sidebar&&window.sidebar.addPanel)
                        window.sidebar.addPanel("elpais.com - portada","http://www.elpais.com","");
                    else
                        window.external.AddFavorite("http://www.elpais.com", "elpais.com - portada");
                    return false;
               });
          }
}

$(document).ready(rules_set_home.home);
$(document).ready(rules_set_home.favoritos);

//PREV_NEXT_BH
var url_prev;
var url_next;
var rules_prev_next= {
    crl : function(){
              url_prev = $('#crlPrev').html();
              url_next = $('#crlNext').html();
     }
}
$(document).ready(rules_prev_next.crl);

document.onkeydown = function(e) {
    // Si el foco esta en un elemento de formulario NO ejecutamos las acciones de onkeydown
    var focus = null;
    // IE
    try{
        focus = event.srcElement.type;
    }
    // Mozilla
    catch(err){
        focus = e.target.type;
    }

    var form_elements = new Array("text","password","select-one","textarea","button","submit");
    var activar_keydown = true;
    for(var i in form_elements){
        if(form_elements[i] == focus){
            activar_keydown = false;
            break;
        }
    }

    if(activar_keydown){
        e = (typeof e == "undefined") ? event : e;
        keyPressed = (typeof e.which == "number") ? e.which : e.keyCode;
        switch(keyPressed){
            case 37: // <--
                if(url_prev != undefined){
                    document.location.href = url_prev;
                }
                break;
            case 39:  // -->
                if(url_next != undefined){
                    document.location.href = url_next;
                }
                break;
            case 107: // +
            case 109: // -
                var tipo = 1;
                if(keyPressed == 109) tipo = -1;
                changeSize(tipo);
                break;
        }
    }
}


/* Recorremos las hojas de estilo importadas para encontrar
 * la etiqueta body y asi poder capturar su tama?o y poder modificarlo*/
function changeSize(tipo){
    var increment    = 1;
    var maxSize      = 13;
    var minSize      = 6;
    var rule         = false;
    var currentSize = 10;
    var sh           = false;
    var flag         = false;
    var sheets       = document.styleSheets;

    // # Firefox
    try{
        for (var i = 0; i < sheets.length && i < 3; i++) {
            if(flag) break;

            for (var j = 0; j < sheets[i].cssRules.length && j< 3; j++) {
                if(flag) break;

                if(sheets[i].cssRules[j].styleSheet){
                    sh =sheets[i].cssRules[j].styleSheet

                        for (var l = 0; l < sh.cssRules.length && l < 3; l++) {
                            if(flag) break;

                            rule =  sh.cssRules[l];
                            if(rule.selectorText == "body"){
                                currentSize = parseInt(rule.style.fontSize);
                                flag=true;
                                break;
                            }
                        }
                }
            }
        }
    }catch(e){
        // # IE
        for (var i = 0; i < sheets.length && i < 3; i++) {
            if(flag) break;

            for (var j = 0; j < sheets[i].imports.length && j< 3; j++) {
                if(flag) break;

                if(sheets[i].imports[j].rules){
                    sh =sheets[i].imports[j].rules
                        for (var l = 0; l < sh.length && l < 3; l++) {
                            if(flag) break;

                            rule =  sh[l];
                            if(rule.selectorText == "body" ||rule.selectorText == "BODY" ){
                                currentSize = parseInt(rule.style.fontSize);
                                flag=true;
                                break;
                            }
                        }
                }
            }
        }
    }
    if(!rule) return;

    if(tipo > 0 && currentSize < maxSize)
        rule.style.fontSize = parseInt(currentSize+(tipo*increment))+ "px";
    if(tipo < 0 && currentSize > minSize)
        rule.style.fontSize = parseInt(currentSize+(tipo*increment))+ "px";
} // end function


function setDisplay(name,display){
    try{
        CSS_OTF.addRule("#"+name,"display:"+display+";")
    }catch(e){
        CSS_OTF.insertRule("#"+name+" { display: "+display+" }", 0)
    }
}

function setBgImage(name, url) {
    try{
        CSS_OTF.addRule("#"+name,"background-image:url('"+url+"');");
    }catch(e){
        CSS_OTF.insertRule("#"+name+" { background-image:url('"+url+"') }", 1);
    }
}

function getImgSrcbyId(id){
    for (var i=0; i<imgsSrc.length; i++)
        if (imgsSrc[i][0] == id) return imgsSrc[i][1];
    return null;
}

var mmedia_sel = new Array();
var mmedia={};
var rotate = false;
var mytime;
var nextnode;
var mytimerep;
var nextnoderep;

function ponImagenes(){
    var tam = mmedia_sel.length
        for(i=0; i<tam; i++) {
            mm=document.getElementById(mmedia_sel[i])
                if (mm) {
                    modShow(mmedia_sel[i]);
                }
        }
}

function randomDiv(id, tam, orden) {
    //var aleatorio = ((orden == 'A') ? Math.floor(Math.random() * tam) : 0);
    var aleatorio = 0;
    for(var i=0; i<tam; i++) {
        var cid = id+"ale_"+i
            if (aleatorio==i) {
                if (orden == 'A'){
                    var mmdata = mmedia[cid];
                    if (mmdata){
                        mmedia_sel.push(cid);
                    }
                    if(rotate && id=="modbanner"){
                    	nextnode = document.getElementById(cid);
                    	mytime = setTimeout('rota()',8000);
                    }
                }
            }
            else {
                //setDisplay(cid,"none");
                var elemento = document.getElementById(cid);
                elemento.style.display = "none";
            }
    }
}

function rota(){
    nextnode.style.display="none";

    var sibling=nextnode;
    do {
        sibling = sibling.nextSibling;
        if (!sibling) sibling=nextnode.parentNode.firstChild;
    } while (sibling.nodeType!=1)

    sibling.style.display="block";
    modShow(sibling.id);
    nextnode = sibling;
    clearTimeout(mytime);
    mytime = setTimeout('rota()',8000);
    return false;
}

function rotaBack(){
    nextnode.style.display="none";

    var sibling=nextnode;
    do {
        sibling = sibling.previousSibling;
        if (!sibling) sibling=nextnode.parentNode.lastChild;
    } while (sibling.nodeType!=1)

    sibling.style.display="block";
    modShow(sibling.id);
    nextnode = sibling;
    clearTimeout(mytime);
    mytime = setTimeout('rota()',8000);
    return false;
}

function rotarep(){
    nextnoderep.style.display="none";

    var sibling=nextnoderep;
    do {
        sibling = sibling.nextSibling;
        if (!sibling) sibling=nextnoderep.parentNode.firstChild;
    } while (sibling.nodeType!=1)

    sibling.style.display="block";
    modShow(sibling.id);
    nextnoderep = sibling;
    clearTimeout(mytimerep);
    mytimerep = setTimeout('rotarep()',10000);
    return false;
}

function loadModule(id,node,cual){
   while(node.id.indexOf("ale_")==-1){
       node = node.parentNode
   }
   node.style.display="none";

   var cid = id+"ale_"+cual;
   var sibling=node;
    do {
        sibling = sibling.previousSibling;
        if (!sibling) sibling=node.parentNode.lastChild;
    } while (sibling.id!=cid)

    sibling.style.display="block";
    //modShow(sibling.id);
    return false;
}

function prevModule(node,fromrota){
	if(rotate && fromrota=="true"){
		rotaBack();
	}else{
	    while(node.id.indexOf("ale_")==-1){
	        node = node.parentNode
	    }
	    node.style.display="none";

	    var sibling=node;
	    do {
	        sibling = sibling.previousSibling;
	        if (!sibling) sibling=node.parentNode.lastChild;
	    } while (sibling.nodeType!=1)

	    sibling.style.display="block";
	    if(rotate && node.id.indexOf("modpoli")!=-1){
	    	nextnode = sibling;
			clearTimeout(mytime);
		    mytime = setTimeout('rota()',8000);
		}
	    //modShow(sibling.id);
	}
    return false;
}

function nextModule(node,fromrota){
	if(rotate && fromrota=="true"){
		rota();
	}else{
	    while(node.id.indexOf("ale_")==-1){
	        node = node.parentNode;
	    }
	    node.style.display="none";

	    var sibling=node;
	    do {
	        sibling = sibling.nextSibling;
	        if (!sibling) sibling=node.parentNode.firstChild;
	    } while (sibling.nodeType!=1)

	    sibling.style.display="block";
	    if(rotate && node.id.indexOf("modpoli")!=-1){
	    	nextnode = sibling;
			clearTimeout(mytime);
		    mytime = setTimeout('rota()',8000);
		}
	    //modShow(sibling.id);
	}
    return false;
}

function modShow(mod_id){
    var mmdata = mmedia[mod_id];
    if (mmdata){
        if (mmdata.type == 'img')
            var node = document.getElementById(mod_id+'_img');
        else
            var node = document.getElementById('iframe_content_'+mod_id);
        node.src = mmdata.src;
    }
}

var imgsIds = new Array();
var imgsSrc = new Array();

function prevModuleOnClick(){
    var node = this.parentNode
        while(node.id.indexOf("ale_")==-1){
            node = node.parentNode
        }
    node.style.display="none";
    var im = document.getElementById(node.id+"_img");
    if (im) im.style.display="none";

    var sibling=node;
    do {
        sibling = sibling.previousSibling;
        if (!sibling) sibling=node.parentNode.lastChild;
    } while (sibling.nodeType!=1)

    sibling.style.display="block";
    var im2 = document.getElementById(sibling.id+"_img")
        if (im2) {
            im2.src = getImgSrcbyId(sibling.id+"_img");
            im2.style.display="block";
        }
    return false;
}

function nextModuleOnClick(){
    var node = this.parentNode
        while(node.id.indexOf("ale_")==-1){
            node = node.parentNode
        }
    node.style.display="none";
    var im = document.getElementById(node.id+"_img");
    if (im) im.style.display="none";

    var sibling=node;
    do {
        sibling = sibling.nextSibling;
        if (!sibling) sibling=node.parentNode.firstChild;
    } while (sibling.nodeType!=1)

    sibling.style.display="block";
    var im2 = document.getElementById(sibling.id+"_img")
        if (im2) {
            im2.src = getImgSrcbyId(sibling.id+"_img");
            im2.style.display="block";
        }
    return false;
}

var rules_randomPrevNext = {
    rdm : function(){
              $('a.rdmPrev').click(rules_randomPrevNext.prev);
              $('a.rdmNext').click(rules_randomPrevNext.next);
          },
    prev : function(){
              prevModuleOnClick;
          },
    next : function(){
              nextModuleOnClick;
          }
}
//$(document).ready(ponImagenes);
//$(document).ready(rules_randomPrevNext.rdm);