// ----------------------------------------------------------------
function LN_openTarget(form, features, windowName) {
	if (!windowName)
		windowName = 'formTarget' + (new Date().getTime());

	form.target = windowName;
	window.open('', windowName, features);
}
// ----------------------------------------------------------------
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
// ----------------------------------------------------------------
function TellFriend() {
var cgiRecomienda = 'http://www.nacion.com/cgi/recomienda.pl';
	cgiRecomienda = cgiRecomienda + "?url=" + document.URL;
	location.href = cgiRecomienda;
	return false;
}
// ----------------------------------------------------------------
function printThisPage() {
	window.print();
	return false;
}
// ----------------------------------------------------------------
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 textCounter(fieldName, countfieldName, maxlimit) {
var field = MM_findObj(fieldName);
var countfield = MM_findObj(countfieldName);

	if (field && countfield) {
		if (field.value.length > maxlimit) { // if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
			// otherwise, update 'characters left' counter
		} else {
			countfield.value = maxlimit - field.value.length;
		}
	}
}
// ----------------------------------------------------------------
function popImage(imageURL, imageTitle, AutoClose) {
var isNN, isIE;
var optNN = 'status=no,statusbar=no,resizable=yes,width=500,height=500,left=100,top=100';
var optIE = 'status=no,statusbar=no,resizable=yes,width=150,height=100,left=100,top=100';

	if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
		var isNN = (navigator.appName == "Netscape") ? 1 : 0;
		var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? 1 : 0;
	}
	if (isNN) {
		imgWin = window.open('about:blank','',optNN);
	}
	if (isIE) {
		imgWin = window.open('about:blank','',optIE);
	}

	with (imgWin.document) {
		writeln('<html><head><title>Cargando...</title></head>');
		writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');
		writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');
		writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');
		writeln('if (isIE){');
		writeln('window.resizeTo(100,100);');
		writeln('width=100-(document.body.clientWidth-(document.images[0].width + 15));');
		writeln('height=100-(document.body.clientHeight-(document.images[0].height));');
		writeln('window.resizeTo(width,height);}');
		writeln('if (isNN){');
		writeln('window.innerWidth=document.images["GNImg"].width;');
		writeln('window.innerHeight=document.images["GNImg"].height;}}');
		writeln('function doTitle(){document.title="'+imageTitle+'";}');
		writeln('</sc'+'ript>');
		if (!AutoClose) writeln('<body scroll="auto" bgcolor="ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
		else writeln('<body bgcolor="ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
		writeln('<div align="center"><a href="javascript:window.close();"><img name="GNImg" src='+imageURL+' border="0" title="Click para cerrar..."></div></body></html>');
		close();
	}
	return false;
}
// ----------------------------------------------------------------
/**
 * Gets the value of the specified data session.
 *
 * name  Name of the desired data session value.
 *
 * Returns a string containing value of specified,
 *   or null if does not exist.
 */
function getSessionData(name) {

   var dc = LN_getCookie('REG_SESSION_DATA');
   if (dc != null) {
      var prefix = name + ":";
      var begin = dc.indexOf("&" + prefix);
      if (begin == -1) {
         begin = dc.indexOf(prefix);
         if (begin != 0) return null;
      } else {
         begin += 1;
      }
      var end = dc.indexOf("&", begin);
      if (end == -1) {
         end = dc.length;
      }
      return dc.substring(begin + prefix.length, end);
   } else {
   return null;
   }
}
// ----------------------------------------------------------------
/**
 * Gets the value of the specified cookie.
 *
 * name  Name of the desired cookie.
 *
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
function LN_getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}
// ----------------------------------------------------------------
function LN_setCookie(name, value, expires, path, domain, secure) {
   // set time, it's in milliseconds
   var today = new Date();
   today.setTime( today.getTime() );
   /*
   if the expires variable is set, make the correct 
   expires time, the current script below will set 
   it for x number of days, to make it for hours, 
   delete * 24, for minutes, delete * 60 * 24
   */
   if ( expires ) {
      expires = expires * 1000 * 60 * 60 * 24;
   }
   var expires_date = new Date( today.getTime() + (expires) );

   document.cookie = name + "=" +escape( value ) +
      ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
      ( ( path ) ? ";path=" + path : "" ) + 
      ( ( domain ) ? ";domain=" + domain : "" ) +
      ( ( secure ) ? ";secure" : "" );
}
// ----------------------------------------------------------------
// This deletes the cookie when called

function LN_deleteCookie( name, path, domain ) {
   if ( LN_getCookie( name ) ) document.cookie = name + "=" +
      ( ( path ) ? ";path=" + path : "") +
      ( ( domain ) ? ";domain=" + domain : "" ) +
      ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
// ----------------------------------------------------------------
function loadContainer(jqSelector, Url) {
var loadingHTML;

	loadingHTML = '<img src="/disenos/v7.1/images/cuerpo/loading-circle.gif" align=\"center\" valign=\"middle\">';
	$(jqSelector).html(loadingHTML);
	$(jqSelector).load(Url, function (responseText, status, response) {
			if (response.status != 200) { $(this).html(''); }
		});
	return false;
}
// ----------------------------------------------------------------
function loadContainerDebug(jqSelector, Url) {
var loadingHTML;

	loadingHTML = '<img src="/disenos/v7.1/images/cuerpo/loading-circle.gif" align=\"center\" valign=\"middle\">';
	$(jqSelector).html(loadingHTML);
	$(jqSelector).load(Url, function (responseText, status, response) {
			alert(responseText);
			if (response.status != 200) { $(this).html(''); }
		});
	return false;
}
// ----------------------------------------------------------------
function loadExternalTpl(jqSelector, Url, variables) {
var loadingHTML;

	loadingHTML = '<img src="/disenos/v7.1/images/cuerpo/loading-circle.gif" align=\"center\" valign=\"middle\">';
	$(jqSelector).html(loadingHTML);
	$(jqSelector).load(Url, function (responseText, status, response) {
		$(this).html('');
		if (response.status == 200) {
			var t = $.template(responseText);
			$(this).append(t, variables);
		}
	});
	return false;
}
// ----------------------------------------------------------------
function loadRelContent(aObj, divToShow, divToHide) {
var Url, loadingHTML;

	if ((divToShow.innerHTML == '' || divToShow.innerHTML == undefined) && aObj.rel != '') {
		Url = aObj.rel;
		loadingHTML = '<img src="/disenos/v7.1/images/cuerpo/loading-circle.gif" align=\"center\" valign=\"middle\">';

		$('#' + divToShow.id).html(loadingHTML)
		$('#' + divToShow.id).load(Url, function (responseText, status, response) {
				if (response.status != 200) { $(this).html(''); }
			});
	}
}
// ----------------------------------------------------------------
function loadSMSPage(jqSelector) {
	if ($.cookie('REG_SESSION') != null) {
		var arrHtml = [''];

		arrHtml.push('<iframe src="' + 'http://dycon.nacion.com/secure/sms/' + '"');
		arrHtml.push(' frameborder="0"');
		arrHtml.push(' marginwidth="0"');
		arrHtml.push(' marginheight="0"');
		arrHtml.push(' width="100%"');
		arrHtml.push(' height="245"');
		arrHtml.push(' scrolling="no"');
		arrHtml.push('></iframe>');
		$(jqSelector).append(arrHtml.join(''));
	} else {
		loadContainer(jqSelector, '/disenos/v7/subhomes/sms-suspendido.html');
	}
}
// ----------------------------------------------------------------
function cargarPorProxy(jqSelector, Url) {
	if (location.hostname.indexOf("www.nacion.com") != -1) {
		var urlProxy = 'http://www.nacion.com/disenos/v7/ajax-proxy/?csurl=' + escape(Url);
		$(jqSelector).html('<img src=\"/disenos/v7/images/cuerpo/loading.gif\" align=\"center\" valign=\"middle\">').load(urlProxy);
	}
	return false;
}
// ----------------------------------------------------------------
function showChatLogin(jqSelector) {
	$(jqSelector).load('/disenos/v7/html-generales/chat-login.html');
}
// ----------------------------------------------------------------
function LN_OAS_AD(jqSelector, Position) {
var jsCode, htmlCode;
var previewDC;

	jsCode   = '';
	htmlCode = '';
	//replacement doc.write() for use on closed doc
	previewDC = document.write;
	document.write = (function () {
		for (var i = 0; i < arguments.length; i++) {
			jsCode += arguments[i].replace('<script>', '').replace('</script>', '');
		}
	});

	OAS_AD(Position);

	if (jsCode.indexOf('document.write') != -1)	{
		document.write = (function () {
			for (var i = 0; i < arguments.length; i++) {
				htmlCode += arguments[i];
			}
		});
		eval(jsCode);
	} else {
		htmlCode = jsCode;
	}

	$(jqSelector).html(htmlCode);
}
// ----------------------------------------------------------------
function whoami() {
var comilla = '"';
var regSessionCookie = LN_getCookie('REG_SESSION');
var regSessionDataCookie = LN_getCookie('REG_SESSION_DATA');

	// Si el cookie de session ya no existe, entonces se elimina el cookie que
	// contiene la informacion de este usuario como el nombre, email, etc que
	// esta almacenada en el cookie REG_SESSION_DATA
	if (regSessionCookie == null) {
		LN_deleteCookie('REG_SESSION_DATA', '/', '.nacion.com');
	}

	var login       = getSessionData("usr_login");
	var nom_usuario = getSessionData("usr_nombre");
	var genero      = getSessionData("usr_genero");

	// El usuario SI esta logueado(a) ...
	if (login != null) {
		if (genero == 'M') {
			document.write("Bienvenido ");
		} else if (genero == 'F') {
			document.write("Bienvenida ");
		} else {
			document.write("Bienvenid@ ");
		}

		document.write("<a href=" +comilla+ "javascript:cambiarAPagina('PROFILE');" +comilla+ " onclick=" +comilla+ "return cambiarAPagina('PROFILE');" +comilla+" onMouseOver=" +comilla+ "status='';" +comilla+ ">");
		document.write(login);
		document.write("</a>");

		document.write("&nbsp;|&nbsp;");

		document.write("&nbsp;|&nbsp;");
		document.write("<a href=" +comilla+ "javascript:cambiarAPagina('LOGOUT');" +comilla+ " onclick=" +comilla+ "return cambiarAPagina('LOGOUT');" +comilla+ "onMouseOver=" +comilla+ "status='';" +comilla+ ">Desconectar</a>");
	// El usuario NO esta logueado(a) ...
	} else {
		document.write("Hola, Visitante");
		document.write("&nbsp;|&nbsp;");
		document.write("<a href=" +comilla+ "javascript:cambiarAPagina('LOGIN');"+comilla+ " onclick=" +comilla+ "return cambiarAPagina('LOGIN');" +comilla+ " onMouseOver=" +comilla+ "status='';" +comilla+ ">Conectar</a>");
	}
}
// ----------------------------------------------------------------
function LN_LZ(x) {
	return (x < 0 || x > 9 ? '' : '0') + x;
}
// ----------------------------------------------------------------
function startCRClock() {
	var optionsCR = {
		utc: true,
		timeNotation: '12h',
		am_pm: true,
		utc_offset: -6
	}
	$('#crClock').jclock(optionsCR);
}
// ----------------------------------------------------------------
function cambiarAPagina(mandato) {
   newURL = "http://dycon.nacion.com/cgi/mkc.pl?" + mandato + "=1&URL=" + encodeURIComponent(location.href);
   location.href = newURL;
   return false;
}
// ----------------------------------------------------------------
function GNAddTab(selector, link, title) {
var content;

	content = "<li><a href=\"" + link + "\"><span>" + title + "</span></a></li>";
	$(selector).append(content);
}
// ----------------------------------------------------------------
// Ocultar el div de los banners cuando no hay banner
$(document).ready(function(){
	// Si el banner esta vacio, entonces se oculta el div
	$("img[src*='/RealMedia/ads/Creatives/default/empty.gif']").parents('div.div-ads').css({display: 'none'});
});
// ----------------------------------------------------------------
// Parsear url de LoadContainer para páginas estáticas
function parseGetVars() {
var getVars = new Array();
var qString = unescape(top.location.search.substring(1));
var pairs = qString.split(/\&/);
	for (var i in pairs) {
		var nameVal = pairs[i].split(/\=/);
		getVars[nameVal[0]] = nameVal[1];
	}	
	return getVars;
}
// ----------------------------------------------------------------
// ----------------------------------------------------------------
(function( $ ){

	var $LNserialScroll = $.LNserialScroll = function( settings ){
		$.scrollTo.window().LNserialScroll( settings );
	};

	$LNserialScroll.defaults = {//the defaults are public and can be overriden.
		stopOnOver:true,
		start:0
	};


	$.fn.LNserialScroll = function( settings ){
		settings = $.extend( {}, $LNserialScroll.defaults, settings );

		return this.each(function(){
			var context = settings.target ? this : document,
				$pane = $(settings.target || this, context),
				pane = $pane[0],
				items = settings.items,
				moveTo = -1,
				itemWidth = 0;

			// Se obtiene los items que se "scrolearan"
			$items = settings.exclude ? LNgetItems().slice(0, -settings.exclude) : LNgetItems();
			itemWidth = $($items[0]).width();

			// Se ocultan los botones de Anterior/Siguiente si solo se tiene 1 item
			if ($items.length == 1) {
				if (settings.prev){ $(settings.prev).hide(); }
				if (settings.next){ $(settings.next).hide(); }
			// Se clonan el primero y ultimo elemento para simular el scroll infinito :D
			} else if ($items.length > 1) {
				// Se busca el padre del primer item
				$ItemParent = $($items[0]).parent();
				// Se le dice al padre que clone su ultimo hijo y lo pegue al inicio
				$ItemParent.prepend($($items[$items.length - 1]).clone());
				// Se le dice al padre que clone su primer hijo
				$ItemParent.append($($items[0]).clone());
				// Movemos el scroll hasta el elemento indicado como inicio
				settings.start = settings.start + 1;
				$pane.scrollLeft(( settings.start) * itemWidth);
				// Se recarga la lista de items 	
				//$items = settings.exclude ? LNgetItems().slice(0, -settings.exclude) : LNgetItems();
			}

			// Si esta en modo automativo y se indico que se pausara con 'Mouse Over'
			// entonces se asigna la funcion que hace eso
			//if( settings.stopOnOver && settings.interval ) {
			//	$pane.hover(function(){
			//		$(this).trigger('stop');
			//	},function(){
			//		$(this).trigger('start');
			//	});
			//}

			// Sobre escribe los eventos que este objeto requiere
			// para hacer el scroll infinito
			settings.cycle = false;
			settings.step = 1;
			settings.onBefore = function(e, elem, $pane, $items, pos ){
				if (moveTo == -1){
					if (pos == 0) {
						moveTo = $items.length - 2;
					} else if(pos == $items.length - 1) {
						moveTo = 1;
					}
				}
			};
			settings.onAfter = function(elem) {
				if (moveTo != -1) {
					var newScrollLeft = moveTo * itemWidth;
					$pane.scrollLeft(newScrollLeft);
					$pane.trigger('notify', [ moveTo ]);
					moveTo = -1;
				}
			};

			// Se crea el objeto serialScroll
			$pane.serialScroll( settings );

			function LNgetItems(){
				return $( items, pane );
			};
		});
	};
}) ( jQuery );
// ----------------------------------------------------------------
