
/* TelemundoDallas.com scripts */
// Begin national js scripts
/**
 * Copyright 2006, Internet Broadcasting.
 * All Rights Reserved.
 *
 * Namespace management. Usage is: using("com.foo.bar") = { ... }
 *
 * Author:  $Author: ddjohnson $
 * Date:    $Date: 2006/07/25 19:47:42 $
 * Version: $Name:  $
 * ID:      $Id: base.js,v 1.2 2006/07/25 19:47:42 ddjohnson Exp $
 */

var ibsys = {
};

function using(namespace)
{
	var parts = namespace.split(/\./);
	var context = window;
	while(parts.length != 0)
	{
		var obj = parts.shift();
		if(!(obj in context))
			context[obj] = {};
		context = context[obj];
	}
	return context;
}


var siteinfo = {lang:"",timezone:"CDT",
distribution: 'core',

"id":"2887327",
"advertisingid":"dal",
"timezone":"CST",
"affiliate":"Telemundo",
"state":"tx",
"owner":"tele",
"region":"tele",
"tld":"com",
"is_ia":"yes",
"lang":"es",
"cssrepository":"svn",
"slideshow":{
"version":"2"},
"storysettings":{
"tools":{
"display":"true"}},
"sitekey":{
"lc":"dal",
"uc":"DAL"},
"sitename":{
"lc":"telemundodallas",
"mx":"TelemundoDallas",
"uc":"TELEMUNDODALLAS",
"display":"TelemundoDallas.com"},
"callletters":{
"lc":"kxtx",
"uc":"KXTX"},
"statecode":{
"uc":"TX",
"lc":"tx"},
"statename":{
"uc":"TEXAS",
"lc":"texas",
"mx":"Texas"},
"city":{
"uc":"DALLAS",
"lc":"dallas",
"mx":"Dallas"},
"surveyemail":"dalnews@telemundodallas.com",
"contentrights":{
"cnn":"no",
"nbcoo":"no"},
"ibs_ad_config":{
"amp":{
"allow":"yes"},
"format":"jsPageModel",
"amp":{
"allow":"no",
"overridezones":"no"}},
"adsplit":{
"local":"1"},
"search":{
"ultraseekregion":"spent",
"engineType":"autonomy",
"infospace":{
"display":"true"},
"yellowpagessearch":{
"display":"false"}},
"thirdparty_info":{
"ccard":{
"pid":"262adc6d",
"clicktracker":"http://ad.doubleclick.net/clk;220315189;42510811;s?"},
"exprn":{
"clicktracker":"http://ad.doubleclick.net/clk;220344963;42510811;u?"},
"sureh":{
"clicktracker":"http://ad.doubleclick.net/clk;220500142;42510811;d?",
"widgetlanding":"http://ad.doubleclick.net/clk;221065766;42510811;w?"},
"mains":{
"clicktracker":"http://ad.doubleclick.net/clk;219617395;42510811;e?"},
"quantcast":{
"id":{
"code":"p-41jrVeSPpekVU",
"label":"Telemundo Television Stations",
"urlencodedlabel":"Telemundo%20Television%20Stations",
"display":"true"}},
"WT_info":{
"id":"dcssgq4ww10000sdhw8yx0lrt_4g7d"},
"google":{
"verify":"YGxSeijbmZjrlZJfpRnXwHTsP2TP46QEZi4B2WFJ7gA=",
"analytics":{
"code":"UA-9170420-4",
"display":"true"}},
"yahoo":{
"verify":"e35d0693453954e7"}},
"video":{
"playerversion":"5",
"skin":"azul",
"wxicons":"tele",
"cpcode":"12921",
"liveflashcpcode":"51569",
"availableskins":{
"skin":{
"name":"azul",
"path":"azul"}}},
"linkmethods":{
"mt":{
"name":"slideshow",
"mtid":"181",
"method":"popup",
"width":"1024",
"height":"750",
"top":"0",
"left":"0",
"dynamic_url":"/slideshow[ibs_variable type=iburl att=sectionpath][ibs_variable type=iburl att=coid]/detail.html"}}};


// GLOBAL Variables
now = new Date();
expire = new Date((now.getFullYear()+1),now.getMonth(),now.getDate());
var child = 0;
var rnd = new Date();
rnd = rnd.getTime();

// Deprecated variables
//var IBS_Sitekey = siteinfo.sitekey.lc;
var IS_IA = siteinfo.is_ia;
IBSSite = new Object();
dotPosition = document.location.host.indexOf('.')+1;
IBSSite.domain = document.location.host.substring(dotPosition);

// Set environment variables
env = new Object();
env.bVer = navigator.appVersion;
env.bName = navigator.appName;
env.platform = navigator.platform;
env.userAgent = navigator.userAgent;
env.cookies = navigator.cookieEnabled;
env.NS4 = (document.layers)? 1 : 0;
env.MacIE = ((navigator.userAgent.indexOf("IE 4")  > -1) && (navigator.userAgent.indexOf("Mac")  > -1))? 1 : 0;
env.IE4 = (document.all && !env.MacIE)? 1 : 0;
env.Gen4 = (document.all || document.layers)? 1 : 0;
if(env.bName.indexOf('Netscape') != -1) isNN = true;
else isNN = false;
if(env.bName.indexOf('Microsoft') != -1) isIE = true;
else isIE = false;

//Open window - pass URL and Attributes
function popUp(URL, ATTRIBUTES)  {
	DEF_ATTRIB = 'width=200,height=200,top=100,left=100,resizable=yes,scrollbars=1';
	if (ATTRIBUTES == null) {
		ATTRIBUTES = DEF_ATTRIB;
	}
	child = window.open(URL, "spawn", ATTRIBUTES + ",scrollbars=1");
	// child.opener = self;
}



// FIX THE STRINGS ( apostrophes)
function fixString(strText) {
	if(!strText || strText == null) return "";
	var newstr = strText.replace(/~/g, "&#39;");
	return newstr;
}

// Replace white space around tags in teaser - used in TopStory and PhotoArray
function padTags(s){
	if(!s || s == null) return "";
	var tmp = s.replace(/(<\w)/ig, " $1");
	tmp = tmp.replace(/(<\/\w>)/ig, "$1 ");
	return tmp;
}

/**
 * returns the parent widget ID of the given indexID, for use
 * with jsIndex
 */
function getWidgetID(indexId)
{
	var el = document.getElementById("index"+indexId);
	if(el == null) return null;
	var p = el.parentNode;
	while(p)
	{
		if(p.id && p.id.match(/sw[0-9]+/))
			return p.id.replace(/sw/,"");
		p = p.parentNode;
	}
	return null;
}




var XMLObj = {
	impl: function() {
		return (window.XMLHttpRequest ? new XMLHttpRequest() : 
				(window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : 
					new Error("No XMLHttpRequest Implementation")));
	},
	
	get: function(url, handler) {
		var req = XMLObj.impl();
		req.open("get", url, true);
		req.onreadystatechange = function() {
			/* Opera may return status 304; unchanged */
			if(req.readyState == 4) {
				handler(req.responseXML, req.responseText);
			}
		};
		req.send(null);
	},
	
	post: function(url, params, handler) {
		var req = XMLObj.impl();
		req.open("post", url, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Referer", document.location.href);
		req.onreadystatechange = function() {
			/* Opera may return status 304; unchanged */
			if(req.readyState == 4 ) {
				handler(req.responseXML, req.responseText);
			}
		};
		req.send(params);
	}
};



// Define client cookie values
cookiesList = document.cookie.split('; ');
myCookies = new Array();
for(c=0; c<cookiesList.length; c++) {
	cookieTemp = cookiesList[c].split('=');
	myCookies[cookieTemp[0]] = cookieTemp[1];
}

// Added new variable to support multiple sub domains
var docDomain = document.domain.split('.');
var dd='';
for(var i=1; i<docDomain.length; i++) {
	dd+="."+docDomain[i];
}
docDomain=dd;

// Set cookie info
function setCookie( name, value, path, expires, domain, secure ) {
	expire.setTime(now.getTime() + expires * 24 * 60 * 60 * 1000);
	curCookie =  name + "=" + escape(value) +
		((expires) ? "; expires=" + expire.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	if ((name + "=" + escape(value)).length <= 4000) document.cookie = curCookie;
	else if (confirm("Cookie exceeds 4KB and will be cut!")) document.cookie = curCookie;
}

// Get cookie info
function getCookie(c) {
	if(typeof myCookies[c] != 'undefined') return myCookies[c];
	else return '';
}

// Remove cookie
function deleteCookie(name,path) {
	setCookie(name,"",path,-1,docDomain);
}

// In case old cookie functions are used somewhere...
WM_setCookie  = setCookie;
WM_readCookie = getCookie;
WM_killCookie = deleteCookie;



function fixPngImage(p) {
	var imgsrc;
	var trans = "http://images.ibsys.com/sh/images/spacer.gif";   
	if(typeof p.tested != undefined && !p.tested &&  typeof p.runtimeStyle != 'undefined') {
	   // retain image src
	   imgsrc = p.src;

	   // make sure the image is a PING
	   if ( /\.png$/.test( imgsrc.toLowerCase() ) ) {
	   	// If it is set it to a transparent image
		p.src = trans;
		// Set the runtime style to load the alpha image in the background
		p.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imgsrc + "',sizingMethod='scale')";
		p.tested = true;
	   }
   }
}

// Calls 'func' on 'eventName' in 'obj'
function addEvent(obj, eventName, func) {
	if (typeof YAHOO != 'undefined') {
		window.addEvent = function(obj, eventName, func) {
			return YAHOO.util.Event.addListener(obj, eventName, func);
		}
	} else {
		this.setObj = function(obj) {
			return (typeof obj == 'string' ? document.getElementById(obj) || false : typeof obj == 'object' ? obj : false);
		}
		obj = setObj(obj);
		if (obj.addEventListener) {
			window.addEvent = function(obj, eventName, func) {
				obj = setObj(obj);
				if (obj) {
					return obj.addEventListener(eventName, func, true);
				} else {
					return false;
				}
			}
		} else if (obj.attachEvent) {
			window.addEvent = function(obj, eventName, func) {
				obj = setObj(obj);
				if (obj) {
					obj.attachEvent("on" + eventName, func);
					return true;
				} else {
					return false;
				}
			}
		} else {
			return false;
		}
	}
	return addEvent(obj, eventName, func);
}
/**
 * Copyright 2006, Internet Broadcasting Systems. All Rights Reserved.
 * Author:    $Author: bstime $
 * Date:      $Date: 2007/11/27 22:17:40 $
 * Version:   $Name:  $
 * ID:        $Id: AdObj.js,v 1.13 2007/11/27 22:17:40 bstime Exp $
*/

/**
 * Generic AdObj holds properties to ease calling pixel ads for specific uses
 *
 * Usage of class methods:
 *	<li>AdObj.create(position,sz,swId,coId,section) - create and return a new AdObj</li>
 *  <li>AdObj.refreshPosition(positions...) - refresh one or more positions</li>
 *  <li>AdObj.refreshAll() - refresh all ads</li>
 *	<li>AdObj.remove(name) - remove ad</li>
 *
 * @constructor
 * @param {String} position Corresponds to ad position, like mediawidow, banner or tile
 * @param {String} sz Size, formatted as 2x2
 * @param {String} swId Section widget id
 * @param {String} coId Content id
 * @param {String} section Section widget section
 */

function AdObj(position, sz, swId, coId, section) {
	this.position = position;
	this.sz = sz;
	this.swId = swId;
	this.coId = coId ? "+"+coId : "";
	this.section = section;
	var size = this.sz.split("x");
	this.width = size[0];
	this.height = size[1];
}

/**
 * @deprecated in favor of {@link AdObj#refresh}
 *
 * Append iframe with ad call to end of document or refresh the ad of set position
 * NOTE: DART key set to ibs.[sitekey].interactive
 * NOTE: Changed .refresh Removed the extra + between position and coid
 */
AdObj.prototype.callAd = function() {
	if (!document.getElementById(this.position)) {
		// append iframe to document
		document.getElementsByTagName("body")[0].appendChild(document.createElement("span")).innerHTML = "<iframe id="+this.position+" src='http://ad.doubleclick.net/adi/ibs."+siteinfo.sitekey.lc+".interactive/"+adZone+";kw="+this.section+"+"+this.position+this.coId+";comp="+adid+";ad=true;tile="+dcadposition+ ";pgtype=detail;sz="+this.sz+";ord="+rnd+"?' width='"+this.width+"' height='"+this.height+"' marginwidth='0' marginheight='0' frameborder='0' scrolling='no'></iframe>";
	} else {
		// refreshAd is defined in base js
		refreshAd(this.position);
	}
}

/**
 * Refresh this ad.
 */
AdObj.prototype.refresh = function(adid,tileNum)
{
	var randInt = parseInt(Math.random(1)*100000000);
                adid = (typeof adid == "undefined") ? "" : adid;
	var category = (typeof WT != 'undefined' && WT.cg_n != '' && adid == '')?WT.cg_n.toLowerCase():'interactive';
	// var obj = document.getElementById(this.position);
	// if(obj == null)
	// {
		var arr = getByClassName(document.body, "ad"+this.position);
		if(arr.length == 0)
			return;
		// obj = arr[0];
	// }
	//http://ad.doubleclick.net/adi/ibs.chi.interactive/;kw=video+news+null+banner1+9385129;ad=true;pgtype=detail;sz=728x90;adid=36780253;ord=940767630?
	var tileNum = (typeof dcadposition != 'undefined' ? dcadposition : tileNum || 1);
	var src = "http://ad.doubleclick.net/adi/ibs."+siteinfo.sitekey.lc+"."+category+"/"+adZone+";kw="+this.section+"+"+this.position+this.coId+";ad=true;tile="+tileNum+ ";pgtype=detail;sz="+this.sz+";"+adid+";ord="+randInt+"?";
	// if(/iframe/i.exec(obj.nodeName) != null)
	// {
	// 	obj.src = "";
	// 	obj.src = src;
	// }
	// else
	arr[0].innerHTML = "<iframe id="+this.position+" src='"+src+"' width='"+this.width+"' height='"+this.height+"' marginwidth='0' marginheight='0' frameborder='0' scrolling='no'></iframe>";
}

/** AdObj class members */
/**
 * collection of Ad Objects
 */
AdObj.elements = new Object();

/**
 * Create a AdObj instance and add it to the collection
 */
AdObj.create = function create(position,sz,swId,coId,section)
{
	return AdObj.elements[position] = new AdObj(position,sz,swId,coId,section);
}

/**
 * Refresh ads by position: AdObj.refreshPosition("banner1","tile1","square");
 */
AdObj.refreshPosition = function refreshPosition()
{
	for(var j=0; j < arguments.length; j++)
		if(AdObj.elements[arguments[j]])
			AdObj.elements[arguments[j]].refresh();
}

/**
 * Refresh all ads
 */
AdObj.refreshAll = function refreshAll(adid)
{
	var i=1;
	for(var p in AdObj.elements) {
		AdObj.elements[p].refresh(adid,i);
		i++;
	}
}

AdObj.adIds = new Object();

/**
 * Returns an event handler for WMP CurrentItemChange event.
 *
 * The returned handler refreshes ads if the currentMedia has a
 * "dcAdTag" parameter.
 *
 * @param <String> videoPlugID
 * @return <function>
 */
AdObj.createAdRefreshHandler = function createAdRefreshHandler(videoPlugID)
{
	return (function()
	{
		if(!document ||
		   !document.body ||
		   !document.getElementById(videoPlugID))
		{
			return;
		}
		// NOTE: may need to change this if the format of the 'adid' parameter
		// value changes.  currently it is 'adid=[0-9]+'
		var adTagParam = document.getElementById(videoPlugID).currentMedia.getItemInfo("dcAdTag");
		if(/adid=[0-9]+/.exec(adTagParam) != null && !AdObj.adIds[adTagParam])
		{
			AdObj.adIds[adTagParam] = true;
			// log("Refreshing: " + adTagParam);
			AdObj.refreshAll(adTagParam);
			window.setTimeout(
				(function()
				{
					AdObj.adIds[adTagParam] = false;
				}), 1000);
		}
		else
		{
			// log("NOT Refreshing ads; adid="+adTagParam);
		}
	});
}

/**
 * Remove an ad by name.
 * @param <String> name
 * @return true if the object was deleted.
 */
AdObj.remove = function(name)
{
	if(AdObj.elements[name])
		return delete AdObj.elements[name];
	else
		return false;
}

/**
 * TODO: put this function somewhere else
 */
function getByClassName(parent,className)
{
	var nl = parent.getElementsByTagName("*");
	var arr = [];
	for(var j=0; j < nl.length; j++)
	{
		if(nl.item(j).className && nl.item(j).className.indexOf(className) != -1)
			arr.push(nl.item(j));
	}
	return arr;
}
// 

function setDCSid(id) {
     gDcsId=id;
}

function mwpop(path,w,h) {
	var atts = 'width='+w+',height='+h+',\'scrollbars=yes,toolbar=no,status=no,location=no,menubar=no,top=50,left=50';
	popUp(path, atts);
//window.location.href=path.split('?')[0];
}

function setMediaPlayerCookie (num) {
  setCookie("mediaWindow",num,"",30,window.location.host,"");
  return "done";
}

function getMediaPlayerCookie () {
  var myCookie = new String(getCookie("mediaWindow"));
  return myCookie;
}


/* toggleData function
 * toggles all elements inside a parent element
 * 2 params 
 *   id - the parent element id
 *   cn - class name of elements you want to hide
 */
function toggleData(id,cn){
	var div = document.getElementById(id);
	var cond = div.getElementsByTagName('*');
	for(var i = 0;i<cond.length;i++){
		if(cond[i].className.indexOf(cn) != -1) {
		cond[i].style.display = (cond[i].style.display != 'none') ? 'none' : '';
		}
	}
}
/* hideData function
 * hides all elements inside a parent element
 * same params as toggleData
 * current usage - full display of current conditions weather object calls this function 
 */
function hideData(id,cn){
	var div = document.getElementById(id);
	var cond = div.getElementsByTagName('*');
	for(var i = 0;i<cond.length;i++){
		if(cond[i].className.indexOf(cn) != -1) {
			if(cond[i].style.display != 'none') cond[i].style.display = 'none';
		}
	}
}
	


/*
 * Copyright 2006, Internet Broadcasting Systems. All Rights Reserved.
 * CVS: $Id: tagCNN.js,v 1.2 2007/07/27 15:19:07 mwakefield Exp $
 * CVS Path: $Source: /u01/cvsroot/javascript/webtrends/tagCNN.js,v $
 * Phaedra Content ID: 
 * Example URL: http://preview.wesh.com/index.html
*/

getElementsByClassName = function(node, classname) {
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
	if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var cnnTaggingForWebTrends = {
	load: function() {
		var cnnButtons = getElementsByClassName(document, "source_name_CNN");
		for (var button = 0; button < cnnButtons.length; button++) {
			addEvent(cnnButtons[button].parentNode, "click", 
				function(event) {
					if(event.target){
						// Firefox uses event.target to reference object that was clicked
						cnnTaggingForWebTrends.action(event.target);
					}
					else {
						// Internet Explorer uses event.srcElement to reference object that was clicked
						cnnTaggingForWebTrends.action(event.srcElement);
					}
				}
			);
		}
	},
	action: function(clickedCNN) {
		var temp = gDcsId;
		gDcsId="dcs2dg4lq00000gw3pkr8nynl_3j5j";
		dcsMultiTrack(
			'DCSext.ib_partner',siteinfo.owner,
			'DCSext.ib_station',siteinfo.callletters.uc,
			'DCSext.ib_cnn_linkname',clickedCNN.innerHTML,
			'DCSext.ib_cnn_linkurl',clickedCNN.href,
			'DCSext.ib_pool',siteinfo.sitekey.uc
		);
		gDcsId=temp;
	}
}

addEvent(window, "load", 
	function(){
		cnnTaggingForWebTrends.load();
	} 
);



/***
* Function to launch nbc video pop-up window player added 8.22.06
***/
    function  launchNbcVideo(pathid) { 
	site='http://video.'+ siteinfo.sitename.lc  +'.'+ siteinfo.tld +'/player.html'; 
	param = '?dlid='; 
	newwindow=window.open(site+param+pathid,'sendtofriend','toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=750,height=550');	
	if (window.focus) {
		newwindow.focus()
	}
}



/***
* Changed by Aron B-- 8.23.06
* Changed by Joe L -- 1/24/07
***/
function launchvideo(pathid) {
	if (siteinfo.video.dmps == 'true') {
		site='http://video.'+ siteinfo.sitename.lc  +'.'+ siteinfo.tld +'/player/?id=' + pathid;
		document.location = site;
	} else {
		site='http://video.'+ siteinfo.sitename.lc  +'.'+ siteinfo.tld +'/player.html';
		param = '?dlid=';
		newwindow=window.open(site+param+pathid,'sendtofriend','toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=750,height=550');
		if (window.focus) {newwindow.focus()}
	}
}
function launchvideodir(pathid) {
	site='http://video.'+ siteinfo.sitename.lc  +'.'+ siteinfo.tld +'/player.html';
	param = '?dl=';
	newwindow=window.open(site+param+pathid,'sendtofriend','toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=750,height=550');
	if (window.focus) {newwindow.focus()}
}


// End national_js scripts

