/*
 * FlashObject embed
 * by Geoff Stearns (geoff@deconcept.com, http://www.deconcept.com/)
 *
 * v1.1.0 - 03-31-2005
 *
 * writes the embed code for a flash movie, includes plugin detection
 *
 * Usage:
 *
 *      myFlash = new FlashObject("path/to/swf.swf", "swfid", "width", "height", flashversion, "backgroundcolor");
 *      myFlash.write("objId");
 *
 * for best practices, see:
 *  http://blog.deconcept.com/2005/03/31/proper-flash-embedding-flashobject-best-practices/
 *
 */

var FlashObject = function(swf, id, w, h, ver, c) {
        this.swf = swf;
        this.id = id;
        this.width = w;
        this.height = h;
        this.version = ver;
        this.align = "middle";

        this.params = new Object();
        this.variables = new Object();

        this.redirect = "";
        this.sq = document.location.search.split("?")[1] || "";
        this.bypassTxt = "<p>Already have Macromedia Flash Player? <a href='/media/coverage/12-5-05%20CBS%205%20Green%20Bay%20Manure%20Slinging%20Erupts%20in%20Manitowoc%20County_files/?detectflash=false&%22+%20this.sq%20+%22'>Click here if you have Flash Player "+ this.version +" installed</a>.</p>";

        if (c) this.color = this.addParam('bgcolor', c);
        this.addParam('quality', 'high'); // default to high
        this.doDetect = getQueryParamValue('detectflash');
}

var FOP = FlashObject.prototype;

FOP.addParam = function(name, value) { this.params[name] = value; }

FOP.getParams = function() { return this.params; }

FOP.getParam = function(name) { return this.params[name]; }

FOP.addVariable = function(name, value) { this.variables[name] = value; }

FOP.getVariable = function(name) { return this.variables[name]; }

FOP.getVariables = function() { return this.variables; }

FOP.getParamTags = function() {
    var paramTags = "";
    for (var param in this.getParams()) {
        paramTags += '<param name="' + param + '" value="' + this.getParam(param) + '" />';
    }
    return (paramTags == "") ? false:paramTags;
}

FOP.getHTML = function() {
    var flashHTML = "";
    if (navigator.plugins && navigator.mimeTypes.length) { // netscape plugin architecture
        flashHTML += '<embed type="application/x-shockwave-flash" src="' + this.swf + '" width="' + this.width + '" height="' + this.height + '" id="' + this.id + '" align="' + this.align + '"';
        for (var param in this.getParams()) {
            flashHTML += ' ' + param + '="' + this.getParam(param) + '"';
        }
        if (this.getVariablePairs()) {
            flashHTML += ' flashVars="' + this.getVariablePairs() + '"';
        }
        flashHTML += '></embed>';
    } else { // PC IE
        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.width + '" height="' + this.height + '" id="' + this.id + '" align="' + this.align + '">';
        flashHTML += '<param name="movie" value="' + this.swf + '" />';
        if (this.getParamTags()) {
            flashHTML += this.getParamTags();
        }
        if (this.getVariablePairs() != null) {
            flashHTML += '<param name="flashVars" value="' + this.getVariablePairs() + '" />';
        }
        flashHTML += '</object>';
    }
    return flashHTML;
}

FOP.getVariablePairs = function() {
    var variablePairs = new Array();
    for (var name in this.getVariables()) {
        variablePairs.push(name + "=" + escape(this.getVariable(name)));
    }
    return (variablePairs.length > 0) ? variablePairs.join("&"):false;
}

FOP.write = function(elementId) {
        if(detectFlash(this.version) || this.doDetect=='false') {
                if (elementId) {
                        document.getElementById(elementId).innerHTML = this.getHTML();
                } else {
                        document.write(this.getHTML());
                }
        } else {
                if (this.redirect != "") {
                        document.location.replace(this.redirect);
                } else if (this.altTxt) {
                        if (elementId) {
                                document.getElementById(elementId).innerHTML = this.altTxt +""+ this.bypassTxt;
                        } else {
                                document.write(this.altTxt +""+ this.bypassTxt);
                        }
                }
        }
}

/* ---- detection functions ---- */
function getFlashVersion() {
        var flashversion = 0;
        if (navigator.plugins && navigator.mimeTypes.length) {
                var x = navigator.plugins["Shockwave Flash"];
                if(x && x.description) {
                        var y = x.description;
                        flashversion = y.charAt(y.indexOf('.')-1);
                }
        } else {
                result = false;
            for(var i = 15; i >= 3 && result != true; i--){
                        execScript('on error resume next: result = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.'+i+'"))','VBScript');
                        flashversion = i;
                }
        }
        return flashversion;
}

function detectFlash(ver) {     return (getFlashVersion() >= ver) ? true:false; }

// get value of query string param
function getQueryParamValue(param) {
        var q = document.location.search || document.location.href.split("#")[1];
        if (q) {
                var detectIndex = q.indexOf(param +"=");
                var endIndex = (q.indexOf("&", detectIndex) > -1) ? q.indexOf("&", detectIndex) : q.length;
                if (q.length > 1 && detectIndex > -1) {
                        return q.substring(q.indexOf("=", detectIndex)+1, endIndex);
                } else {
                        return "";
                }
        }
}

/* add Array.push if needed */
if(Array.prototype.push == null){
        Array.prototype.push = function(item) { this[this.length] = item; return this.length; }
}

// minmax.js: make IE5+/Win support CSS min/max-width/height
// version 1.0, 08-Aug-2003
// written by Andrew Clover <and@doxdesk.com>, use freely

/*@cc_on
@if (@_win32 && @_jscript_version>4)

var minmax_elements;

minmax_props= new Array(
  new Array('min-width', 'minWidth'),
  new Array('max-width', 'maxWidth'),
  new Array('min-height','minHeight'),
  new Array('max-height','maxHeight')
);

// Binding. Called on all new elements. If <body>, initialise; check all
// elements for minmax properties

function minmax_bind(el) {
  var i, em, ms;
  var st= el.style, cs= el.currentStyle;

  if (minmax_elements==window.undefined) {
    // initialise when body element has turned up, but only on IE
    if (!document.body || !document.body.currentStyle) return;
    minmax_elements= new Array();
    window.attachEvent('onresize', minmax_delayout);
    // make font size listener
    em= document.createElement('div');
    em.setAttribute('id', 'minmax_em');
    em.style.position= 'absolute'; em.style.visibility= 'hidden';
    em.style.fontSize= 'xx-large'; em.style.height= '5em';
    em.style.top='-5em'; em.style.left= '0';
    if (em.style.setExpression) {
      em.style.setExpression('width', 'minmax_checkFont()');
      document.body.insertBefore(em, document.body.firstChild);
    }
  }

  // transform hyphenated properties the browser has not caught to camelCase
  for (i= minmax_props.length; i-->0;)
    if (cs[minmax_props[i][0]])
      st[minmax_props[i][1]]= cs[minmax_props[i][0]];
  // add element with properties to list, store optimal size values
  for (i= minmax_props.length; i-->0;) {
    ms= cs[minmax_props[i][1]];
    if (ms && ms!='auto' && ms!='none' && ms!='0' && ms!='') {
      st.minmaxWidth= cs.width; st.minmaxHeight= cs.height;
      minmax_elements[minmax_elements.length]= el;
      // will need a layout later
      minmax_delayout();
      break;
  } }
}

// check for font size changes

var minmax_fontsize= 0;
function minmax_checkFont() {
  var fs= document.getElementById('minmax_em').offsetHeight;
  if (minmax_fontsize!=fs && minmax_fontsize!=0)
    minmax_delayout();
  minmax_fontsize= fs;
  return '5em';
}

// Layout. Called after window and font size-change. Go through elements we
// picked out earlier and set their size to the minimum, maximum and optimum,
// choosing whichever is appropriate

// Request re-layout at next available moment
var minmax_delaying= false;
function minmax_delayout() {
  if (minmax_delaying) return;
  minmax_delaying= true;
  window.setTimeout(minmax_layout, 0);
}

function minmax_stopdelaying() {
  minmax_delaying= false;
}

function minmax_layout() {
  window.setTimeout(minmax_stopdelaying, 100);
  var i, el, st, cs, optimal, inrange;
  for (i= minmax_elements.length; i-->0;) {
    el= minmax_elements[i]; st= el.style; cs= el.currentStyle;

    // horizontal size bounding
    st.width= st.minmaxWidth; optimal= el.offsetWidth;
    inrange= true;
    if (inrange && cs.minWidth && cs.minWidth!='0' && cs.minWidth!='auto' && cs.minWidth!='') {
      st.width= cs.minWidth;
      inrange= (el.offsetWidth<optimal);
    }
    if (inrange && cs.maxWidth && cs.maxWidth!='none' && cs.maxWidth!='auto' && cs.maxWidth!='') {
      st.width= cs.maxWidth;
      inrange= (el.offsetWidth>optimal);
    }
    if (inrange) st.width= st.minmaxWidth;

    // vertical size bounding
    st.height= st.minmaxHeight; optimal= el.offsetHeight;
    inrange= true;
    if (inrange && cs.minHeight && cs.minHeight!='0' && cs.minHeight!='auto' && cs.minHeight!='') {
      st.height= cs.minHeight;
      inrange= (el.offsetHeight<optimal);
    }
    if (inrange && cs.maxHeight && cs.maxHeight!='none' && cs.maxHeight!='auto' && cs.maxHeight!='') {
      st.height= cs.maxHeight;
      inrange= (el.offsetHeight>optimal);
    }
    if (inrange) st.height= st.minmaxHeight;
  }
}

// Scanning. Check document every so often until it has finished loading. Do
// nothing until <body> arrives, then call main init. Pass any new elements
// found on each scan to be bound

var minmax_SCANDELAY= 500;

function minmax_scan() {
  var el;
  for (var i= 0; i<document.all.length; i++) {
    el= document.all[i];
    if (!el.minmax_bound) {
      el.minmax_bound= true;
      minmax_bind(el);
  } }
}

var minmax_scanner;
function minmax_stop() {
  window.clearInterval(minmax_scanner);
  minmax_scan();
}

minmax_scan();
minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);
window.attachEvent('onload', minmax_stop);

@end @*/

Drawer.TOP = 0;
Drawer.RIGHT = 1;
Drawer.BOTTOM = 2;
Drawer.LEFT = 3;
Drawer.all = new Object();
Drawer.zIndex = 100;

function Drawer(id, speed, side, open, callback) {
    var outer = document.getElementById(id);

    this.id = id;
    this.speed = (speed % 100) / 100;
    this.side = side;
    this.open = open;
    this.callback = (typeof callback == "function") ? callback : function() {};
    this.moving = false;

    this.outer = outer;
    this.inner = outer.getElementsByTagName("div").item(0);
    this.width = outer.clientWidth || outer.offsetWidth;
    this.height = outer.clientHeight || outer.offsetHeight;

    switch (this.side) {
    case Drawer.TOP:
        this.clip = [this.height, this.width, this.height, 0];
        this.style = "top";
        this.start = 0;
        break;
    case Drawer.RIGHT:
        this.clip = [0, 0, this.height, 0];
        this.style = "left";
        this.start = -this.width;
        break;
    case Drawer.BOTTOM:
        this.clip = [0, this.width, 0, 0];
        this.style = "top";
        this.start = -this.height;
        break;
    case Drawer.LEFT:
        this.clip = [0, this.width, this.height, this.width];
        this.style = "left";
        this.start = 0;
        break;
    }

    this.inner.style.position = "relative";
    this.outer.style.visibility = this.open ? "visible" : "hidden";
    Drawer.all[id] = this;
}

Drawer.prototype.update = function() {
    var result, i = 0;
    var pattern = /\d+/g;

    this.width = this.outer.clientWidth || this.outer.offsetWidth;
    this.height = this.outer.clietHeight || this.outer.offsetHeight;

    while ((result = pattern.exec(this.outer.style.clip)) != null) {
        this.clip[i++] = Number(result[0]);
    }

    this.outer.style.visibility = "visible";
    if (!this.open) this.outer.style.zIndex = Drawer.zIndex++;
}

Drawer.prototype.activate = function() {
    this.update();
    this.move();
    this.moving = true;
}

Drawer.prototype.move = function() {
    var end;
    var dir;
    var i = this.side;

    switch (i) {
    case Drawer.TOP:
        end = this.open ? this.height : 0;
        dir = -1;
        break;
    case Drawer.RIGHT:
        end = this.open ? 0 : this.width;
        dir = 1;
        break;
    case Drawer.BOTTOM:
        end = this.open ? 0 : this.height;
        dir = 1;
        break;
    case Drawer.LEFT:
        end = this.open ? this.width : 0;
        dir = -1;
        break;
    }

    var by = Math.round((end - this.clip[i]) * this.speed) || 1;
    this.clip[i] += ((this.open ? -1 : 1) * Math.abs(by)) * dir;
    this.outer.style.clip = "rect(" + this.clip.join("px ") + "px)";
    this.inner.style[this.style] = (this.start + this.clip[i]) + "px";

    if (this.clip[i] == end) {
        this.open = !this.open;
        this.moving = false;
        this.callback(this);
        if (this.open == false) this.outer.style.visibility = "hidden";
        return;
    }

    setTimeout("Drawer.all['"+this.id+"'].move()", 10);
}

function getCookie(name) {
    if (new RegExp("\\b" + name + "=([^;]+)").test(document.cookie))
        return unescape(RegExp.$1);
    else
        return null;
}

function setCookie(name, value, days, path, domain, secure) {
    var c = name + "=" + escape(value);
    var expires = null;
    if (days)
        expires = new Date(new Date().getTime() + (days * 24 * 60 * 60 * 1000));
    if (expires)
        c += "; expires=" + expires.toUTCString();
    if (path)
        c += "; path=" + path;
    if (domain)
        c += "; domain=" + domain;
    if (secure)
        c += "; secure";
    document.cookie = c;
}

function addEvent(obj, evt, func) {
    if (obj.addEventListener)
        obj.addEventListener(evt, func, false);
    else if (obj.attachEvent)
        obj.attachEvent("on"+evt, func);
    else {
        var oldhandler = obj["on"+evt];
        obj["on"+evt] = (typeof oldhandler == "function")
            ? function() { oldhandler(); func(); } : func;
    }
}

function getElementsByTagNameFilter(root, tagName, filter) {
    var filtered = new Array();
    var elms = root.getElementsByTagName(tagName);
    for (var i = 0; i < elms.length; i++) {
        if (filter(elms[i])) {
            filtered[filtered.length] = elms[i];
        }
    }
    return filtered;
}

function hasClass(node, classname) {
    if (node) {
        var pattern = new RegExp("(?:^| )" + classname + "(?: |$)");
        return pattern.test(node.className);
    }
    return false;
}

function getParentByTagName(node, tagName) {
    var n = node;
    while (n && (n = n.parentNode) != null) {
        if (n.nodeType == 1 && n.tagName.toLowerCase() == tagName.toLowerCase())
            break;
    }
    return n;
}

function sethomepage(url) {
    window.open('http://static.viacomlocalnetworks.com/pages/sethomepage.html','sethomepage','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=562,height=550,left=100,top=100,screenX=100,screenY=100');
}

function setOpacity(obj, opacity) {
    opacity = (opacity == 100) ? 99.999 : opacity;
    // IE/Win
    obj.style.filter = "alpha(opacity:" + opacity + ")";
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity / 100;
    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity / 100;
    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity / 100;
}

function fadeIn(id, opacity) {
    obj = document.getElementById(id);
    if (obj == null) return;
    if (opacity < 100) {
        setOpacity(obj, opacity);
        opacity += 5;
        obj.fadeInTimeout = window.setTimeout("fadeIn('" + id + "'," + opacity + ")", 30);
        return;
    }
    // fix for Safari

}

function fadeOut(id, opacity) {
    obj = document.getElementById(id);
    if (obj == null) return;
    if (opacity > 0) {
        setOpacity(obj, opacity);
        opacity -= 5;
        obj.fadeOutTimeout = window.setTimeout("fadeOut('" + id + "'," + opacity + ")", 30);
        return;
    }
    obj.style.visibility = "hidden";
}

// /auto/<?cs var:AUTOBRAND.brand?>/geo/DefaultConfPop/cgi-bin/findweather/getForecast?query=zmw:<?cs var:DB.0.zip?>.<?cs var:DB.0.magic.padded?>.<?cs var:DB.0.wmo?>&SetDefaultLocation=<?cs var:DB.0.zip?>.<?cs var:DB.0.magic.padded?>.<?cs var:DB.0.wmo?>

function savezip(anchor) {
    var img = new Image();
    img.src = anchor.href;
    var message = document.getElementById("pop_saved_generic");
    setOpacity(message, 100);
    message.style.left = (getRealLeft(anchor) - (((message.clientWidth || message.offsetWidth) - (anchor.clientWidth || anchor.offsetWidth)) / 2)) + "px";
    message.style.top = (getRealTop(anchor) + 30) + "px";
    message.style.visibility = "visible";
    setTimeout("fadeOut('" + message.id + "', 95)", 15000);
    return false;
}

function showZip(linkid, boxid) {
    var ziplink = document.getElementById(linkid);
    var zipbox = document.getElementById(boxid);
    setOpacity(zipbox, 0);
    zipbox.style.display = "block";
    ziplink.style.display = "none";
    fadeIn(zipbox.getAttribute("id"), 5);
}

function isFirefoxPC() {
    var ua = navigator.userAgent;
    return (/Firefox/.test(ua) && /Windows/.test(ua));
}

function moveDrawer(id, actuator, direction) {
    if (actuator) actuator.blur();

    var drawer = Drawer.all[id];
    if (!drawer) {
        var speed = 50;
        if ((id == "popit" || id == "popit2") && isFirefoxPC()) {
            speed = 99.99; // fix for flickering iframe ads
        }
        drawer = new Drawer(id, speed, direction);
    }
    drawer.activate();

    var div = getParentByTagName(actuator, "div");
    if (hasClass(div, "pulldown")) {
        drawer.callback = function() {
            if (drawer.open) {
                actuator.parentNode.style.backgroundPosition = "left bottom";
                drawer.timeout = setTimeout("if (Drawer.all['" + drawer.id + "'].open) Drawer.all['" + drawer.id  + "'].activate()", 10000);
            } else {
                actuator.parentNode.style.backgroundPosition = "left top";
                clearTimeout(drawer.timeout);
            }
        }
    }

    if (id == "popit") {
        var other = Drawer.all["popit2"];
        if (other && other.open) other.activate();
    }
    if (drawer.id == "popit2") {
        var other = Drawer.all["popit"];
        if (other && other.open) other.activate();
    }
}

function setState(orig, dest, input) {
    var destEl = document.getElementById(dest);
    if (destEl) destEl.innerHTML = orig.innerHTML;
    var drawer = orig;
    while ((drawer = getParentByTagName(drawer, "div")) && !hasClass(drawer, "drawer-bottom"));
    moveDrawer(drawer.id);
    var hidden = document.getElementById(input);
    if (hidden) hidden.value = orig.innerHTML;
}

function selectTab(tabid, rest) {
    var tab = document.getElementById("tab" + tabid);
    var tabdata = document.getElementById("tab" + tabid + "data");
    if (tab && tabdata) {
        tab.className = "currenttab";
        tabdata.style.display = "block";
        for (var i = 1; i < arguments.length; i++) {
            var tab = document.getElementById("tab" + arguments[i]);
            var tabdata = document.getElementById("tab" + arguments[i] + "data");
            if (tab && tabdata) {
                tab.className = "";
                tabdata.style.display = "none"
            }
        }
    }
}

function selectCondition(anchor, max) {
    var id;
    var now = document.getElementById("now");
    if (anchor == null) {
        now.style.display = "block";
        id = 0;
    } else {
        id = anchor.getAttribute("id").substring(5) - 0;
        now.style.display = "none";
        anchor.className = "shown";
    }
    for (var i = 1; i <= max; i++) {
        var cond = document.getElementById("hr" + i);
        var anchor = document.getElementById("navhr" + i);
        if (i == id) {
            cond.style.display = "block";
        } else {
            cond.style.display = "none";
            anchor.className = "";
        }
    }
}

function showDetails(anchor, max) {
    var aid = anchor.getAttribute("id").substring(0,4);
    var detail = document.getElementById(aid + "detail");
    var display = detail.style.display;
    for (var i = 1; i <= max; i++) {
        var id = "day" + i;
        var trigger = document.getElementById(id + "trigger");
        var img = trigger.getElementsByTagName("img")[0];
        img.src = img.src.replace("_up_", "_down_");
        document.getElementById(id + "detail").style.display = "none";
    }
    if (display == "none" || display == "") {
        var trigger = document.getElementById(aid + "trigger");
        var img = trigger.getElementsByTagName("img")[0];
        img.src = img.src.replace("_down_", "_up_");
        detail.style.display = "block";
    }
}

function setDisplay(trigger, layerid, func) {
    var layer = document.getElementById(layerid);
    var display;
    if (layer) {
        display = layer.style.display;
        layer.style.display = (display == "block") ? "none" : "block";
    }
    if (typeof func == "function") {
        func(trigger, display);
    }
}

function setVisibility(trigger, layerid, func) {
    var layer = document.getElementById(layerid);
    var visibility;
    if (layer) {
        visibility = layer.style.visibility;
        layer.style.visibility = (visibility == "visible") ? "hidden" : "visible";
    }
    if (typeof func == "function") {
        func(trigger, visibility);
    }
}

function changeArrow(trigger, display) {
    if (trigger) {
        var id = trigger.getAttribute("id");
        var letter = id.substring(9);
        var arrow = document.getElementById("arrow_" + letter);
        if (arrow) {
            arrow.className = (display == "block") ? "showarrow" : "hidearrow";
            arrow.innerHTML = (display == "block") ? "Show" : "Hide";
        }
    }
}

function go(select) {
    if (select) {
        var index = select.selectedIndex;
        var value = select.options[index].value;
        if (value) {
            window.location = value;
        }
    }
}

function setFontSize(size) {
    var middle = document.getElementById("middle");
    var resultsbox = document.getElementById("resultsbox");
    var tdefault = document.getElementById("tdefault");
    var tmedium = document.getElementById("tmedium");
    var tlarge = document.getElementById("tlarge");
    switch (size) {
    case "medium":
        if (middle) middle.style.fontSize = "110%";
        if (resultsbox) resultsbox.style.fontSize = "110%";
        tdefault.style.backgroundPosition = "top left";
        tmedium.style.backgroundPosition = "bottom center";
        tlarge.style.backgroundPosition = "top right";
        setCookie("style", "medium", 365, "/");
        break;
    case "large":
        if (middle) middle.style.fontSize = "120%";
        if (resultsbox) resultsbox.style.fontSize = "120%";
        tdefault.style.backgroundPosition = "top left";
        tmedium.style.backgroundPosition = "top center";
        tlarge.style.backgroundPosition = "bottom right";
        setCookie("style", "large", 365, "/");
        break;
    default:
        if (middle) middle.style.fontSize = "100%";
        if (resultsbox) resultsbox.style.fontSize = "100%";
        tdefault.style.backgroundPosition = "bottom left";
        tmedium.style.backgroundPosition = "top center";
        tlarge.style.backgroundPosition = "top right";
        setCookie("style", "default", 365, "/");
        break;
    }
}

function hideShowDis(objOrId, hide) {
    var el = (typeof objOrId == "string")
        ? document.getElementById(id) : objOrId;
    if (el) {
        if (hide) el.style.display = "none";
        else el.style.display = (el.style.display == "none")
            ? "block" : "none";
    }
}

function hideShowVis(objOrId, hide) {
    var el = (typeof objOrId == "string")
        ? document.getElementById(id) : objOrId;
    if (el) {
        if (hide) el.style.visibility = "hidden";
        else el.style.visibility = (el.style.visibility == "hidden")
            ? "visible" : "hidden";
    }
}

function moveLoop(elementName, orgx, orgy, destx, desty, pct, destElementName) {
    var element = document.getElementById(elementName);
    var slope = -1 * (desty - orgy) / (destx - orgx);
    var dx = Math.round((desty - orgy) / slope * pct);
    var dy = Math.round(slope * (destx - orgx) * pct);

    element.style.left = (orgx - dx) + "px";
    element.style.top = (orgy - dy) + "px";

    if (pct >= 1.0) { motionFinished(elementName, destElementName, orgx, orgy); return; }

    var pct = pct + 0.05;
    setTimeout("moveLoop('" + elementName + "'," + orgx + "," + orgy + "," + destx + "," + desty + "," + pct + ",'" + destElementName + "')", 25);
}

function move(elementName, destx, desty, destElementName) {
    var element = document.getElementById(elementName);
    var currentX = element.offsetLeft;
    var currentY = element.offsetTop;
    moveLoop(elementName, currentX, currentY, destx, desty, 0.05, destElementName);
}

function moveToElement(elementName, destElementName) {
    var element = document.getElementById(destElementName);
    var currentX = getRealLeft(element);
    var currentY = getRealTop(element);
    move(elementName, currentX, currentY, destElementName);
}

function getRealLeft(element) {
    var xPos = element.offsetLeft;
    var tempElement = element.offsetParent;
    while (tempElement != null) {
        xPos += tempElement.offsetLeft;
        tempElement = tempElement.offsetParent;
    }
    return xPos;
}

function getRealTop(element) {
    var yPos = element.offsetTop;
    var tempElement = element.offsetParent;
    while (tempElement != null) {
        yPos += tempElement.offsetTop;
        tempElement = tempElement.offsetParent;
    }
    return yPos;
}

var readNews = getCookie("readnews");
var savedNews = getCookie("savednews");
var trackedNews = getCookie("trackednews");

if (readNews == null) readNews = "";
if (savedNews == null) savedNews = "";
if (trackedNews == null) trackedNews = "";

function clearRead() {
    var newsArray = readNews.split(",");
    var clipsArray = savedNews.split("|");

    for (var i = 0; i < clipsArray.length; i++) {
        var itemArray = clipsArray[i].split(";");
        for (var j = 0; j < newsArray.length; j++) {
            if (itemArray[1] == newsArray[j])
                deleteClipping(newsArray[j]);
        }
    }
    setCookie("savednews", savedNews, 365, "/");
    element = document.getElementById("savedItems");
    element.innerHTML = clippingsHTML();
    resizeDrawer("saveit");
}

function deleteReadNews(url) {
    var newsArray = readNews.split(",");
    readNews = "";
    for (var i = 0; i < newsArray.length; i++) {
        if (url != newsArray[i]) {
            if (readNews != "") readNews += ",";
            readNews += newsArray[i];
        }
    }
    setCookie("readnews", readNews, 365, "/");
}

function registerReadNews(url) {
    var newsArray = readNews.split(",");
    for (var i = 0; i < newsArray.length; i++) {
        if (url == newsArray[i])
            return true;
    }
    if (readNews != "") readNews += ",";
    readNews += url;
    setCookie("readnews", readNews, 365, "/");
}

registerReadNews(window.location.href);

function deleteClipping(url) {
    var clipsArray = savedNews.split("|");
    savedNews = "";
    for (var i = 0; i < clipsArray.length; i++) {
        var itemArray = clipsArray[i].split(";");

        if (savedNews != "") savedNews += "|";
        if (itemArray[1] != url) {
            savedNews += clipsArray[i];
        } else {
            var element = document.getElementById(url2id(itemArray[1]));
            if (element) element.innerHTML = '<img src="http://static.viacomlocalnetworks.com/img/icon_plus_on.gif" />';
        }
    }
    setCookie("savednews", savedNews, 365, "/");
    element = document.getElementById("savedItems");
    element.innerHTML = clippingsHTML();
    resizeDrawer("saveit");
}

function clearClippings(){
    var clipsArray = savedNews.split("|");
    for (var i = 0; i < clipsArray.length; i++) {
        var itemArray = clipsArray[i].split(";");
        var element = document.getElementById(url2id(itemArray[1]));
        if (element) element.innerHTML = '<img src="http://static.viacomlocalnetworks.com/img/icon_plus_on.gif" />';
    }
    savedNews = "";
    setCookie("savednews", savedNews, 365, "/");
    element = document.getElementById("savedItems");
    element.innerHTML = clippingsHTML();
    resizeDrawer("saveit");
}

function motionFinished(elementName, destElementName, orgx, orgy) {
    var element = document.getElementById(elementName);
    element.style.visibility = "hidden";
    if (destElementName == "saveit") {
        element = document.getElementById("savedItems");
        element.innerHTML = clippingsHTML();
    }
    if (destElementName == "trackit") {
        element = document.getElementById("trackedItems");
        element.innerHTML = trackedClippingsHTML();
    }
    resizeDrawer(destElementName);
    showSuccess(orgx, orgy, destElementName);
}

var instructTimeout;

function showInstructions(element, clipType) {
    var xpos = getRealLeft(element);
    var ypos = getRealTop(element);
    var message = document.getElementById("pop_" + clipType);
    if (message == null) return;
    if (clipType == "saveit" && savedNews != "") return;
    if (clipType == "trackit" && trackedNews != "") return;
    if (instructTimeout) clearTimeout(instructTimeout);
    if (message.fadeOutTimeout) clearTimeout(message.fadeOutTimeout);
    setOpacity(message, 100);
    message.style.visibility = "hidden";
    message.style.left = xpos + "px";
    message.style.top = (ypos - (message.clientHeight || message.offsetHeight) - 5) + "px";
    instructTimeout = setTimeout("document.getElementById('pop_" + clipType + "').style.visibility = 'visible'", 500);
}

function hideInstructions(element, clipType) {
    var message = document.getElementById("pop_" + clipType);
    if (message == null) return;
    if (clipType == "saveit" && savedNews != "") return;
    if (clipType == "trackit" && trackedNews != "") return;
    if (instructTimeout) clearTimeout(instructTimeout);
    fadeOut("pop_" + clipType, 95);
}

function showSuccess(x, y, clipType) {
    if (clipType == "saveit") {
        var clipsArray = savedNews.split("|");
        var message = document.getElementById("pop_saved");
    }
    if (clipType == "trackit") {
        var clipsArray = trackedNews.split("|");
        var message = document.getElementById("pop_tracked");
    }
    if (clipsArray.length > 1) return;
    var instruct = document.getElementById("pop_" + clipType);
    instruct.style.visibility = "hidden";
    if (message.fadeOutTimeout) clearTimeout(message.fadeOutTimeout);
    setOpacity(message, 100);
    message.style.left = x + "px";
    message.style.top = (y - (message.clientHeight || message.offsetHeight) - 5) + "px";
    message.style.visibility = "visible";
    setTimeout("fadeOut('" + message.id + "', 95)", 15000);
}

function resizeDrawer(destElementName) {
    if (destElementName == "saveit")
        var drawer = document.getElementById("popit");
    else if (destElementName == "trackit")
        var drawer = document.getElementById("popit2");
    var list = drawer.getElementsByTagName("ul")[0];
    var css = drawer.style.clip || "rect(0px 0px 0px 0px)";
    var result;
    if (result = css.match(/rect\((\d+)px,? (\d+)px,? (\d+)px,? (\d+)px\)/)) {
        drawer.style.clip = "rect(" + result[1] + "px " + result[2] + "px " +
            (Number(result[3]) + (list.clientHeight || list.offsetHeight)) + "px " + result[4] + "px)";
    }
}

function clippingsHTML() {
    var markup = "";
    var clipsArray = savedNews.split("|");
    var counter = document.getElementById("savedCount");
    var count = clipsArray.length;
    if (count == 1 && clipsArray[0] == "") count = 0;
    counter.innerHTML = count;
    for (var i = 0; i < clipsArray.length; i++) {
        if (clipsArray[i] != "") {
            var itemArray = clipsArray[i].split(";");
            markup += '<li><a name="&amp;lid=saveit_story" href="/media/coverage/12-5-05%20CBS%205%20Green%20Bay%20Manure%20Slinging%20Erupts%20in%20Manitowoc%20County_files/%27%20+%20itemArray%5B1%5D%20+%20%27">' + itemArray[0] + '</a></li>';
        }
    }
    if (markup == "") {
        markup = '<li id="popnote" style="padding-left:10px;"><h3 style="color:#CC000C; font-size:1.4em;">Save It!</h3>' +
                 '<p><strong>Save stories here using <img src="http://static.viacomlocalnetworks.com/img/icon_plus_on.gif" width="10" height="10" alt="" /></strong></p>' +
                 '<p>Note: A maximum of 25 headlines can be saved. Headlines will be deleted if your CBS cookie is removed.</p></li>' +
                 '<li id="popclear"><a href="javascript:moveDrawer(\'popit\')" id="si_c">Close</a></li>';
    } else {
        markup += '<li id="popclear"><a href="javascript:moveDrawer(\'popit\')" id="si_c">Close</a><span> | </span><div id="popclearlinks"><a href="javascript:clearRead(\'saveit\')" id="si_cv">Clear Visited</a><span> | </span><a href="javascript:clearClippings()" id="si_ca">Clear All</a></div></li>'

    }
    return '<ul>' + markup + '</ul>';
}

function trackedClippingsHTML() {
    var markup = "";
    var clipsArray = trackedNews.split("|");
    var counter = document.getElementById("trackedCount");
    var count = clipsArray.length;
    if (count == 1 && clipsArray[0] == "") count = 0;
    counter.innerHTML = count;
    for (var i = 0; i < clipsArray.length; i++) {
        if (clipsArray[i] != "") {
            var itemArray = clipsArray[i].split(";");
            markup += '<li><a href="/media/coverage/12-5-05%20CBS%205%20Green%20Bay%20Manure%20Slinging%20Erupts%20in%20Manitowoc%20County_files/%27%20+%20itemArray%5B1%5D%20+%20%27">' + itemArray[0] + '</a></li>';
        }
    }
    if (markup == "") {
        markup = '<li id="popnote2"><h3 style="color:#CC000C; font-size:1.4em;">Track It!</h3>' +
                 '<p><strong>Track news as it happens! Click on the <img src="http://static.viacomlocalnetworks.com/img/icon_plus_on.gif" width="10" height="10" alt="" /> next to Track It! topics to follow future stories.</strong></p>' +
                 '<p>Note: Your 25 latest additions will be shown here. The full list will be on your Track It! main page, where you can also create your own topics.</p></li>' +
                 '<li id="popclear2"><a href="javascript:moveDrawer(\'popit2\')" id="ti_c">Close</a><span> | </span><a href="/trackit" id="ti_mp">Track It! Main Page</a><span> </span></li>';
    } else {
        markup += '<li id="popclear2"><a href="javascript:moveDrawer(\'popit2\')" id="ti_c">Close</a><span> | </span><a href="/trackit" id="ti_mp">Track It! Main Page</a><span> </span></li>';

    }
    return '<ul>' + markup + '</ul>';
}

function refreshSaved() {
    var element = document.getElementById("savedItems");
    if (element) element.innerHTML = clippingsHTML();
}

function refreshTracked() {
    var element = document.getElementById("trackedItems");
    if (element) element.innerHTML = trackedClippingsHTML();
}

function clipExists(url) {
    var clipsArray = savedNews.split("|");
    for (var i = 0; i < clipsArray.length; i++) {
        var itemArray = clipsArray[i].split(";");
        if (itemArray[1] == url) {
            return true;
        }
    }
    return false;
}

function clipClick(element, headline, url, clipNum, clipType) {
    if (!clipExists(url)) {
        var xpos = getRealLeft(element);
        var ypos = getRealTop(element);

        clipElement = document.getElementById("fly");
        clipElement.style.left = xpos + "px";
        clipElement.style.top = ypos + "px";

        //destElement = document.getElementById("saveit");
        clipElement.style.visibility = "visible";

        if (clipType == "saveit") {
            if (savedNews != "") savedNews = "|" + savedNews;
            savedNews =  headline + ";" + url + savedNews;
            setCookie("savednews", savedNews, 365, "/");
        }
        if (clipType == "trackit") {
            if (trackedNews != "") trackedNews = "|" + trackedNews;
            trackedNews =  headline + ";" + url + trackedNews;
            setCookie("trackednews", trackedNews, 365, "/");
        }

        deleteReadNews(url);

        element.innerHTML = '<img src="http://static.viacomlocalnetworks.com/img/icon_plus_off.gif" width="10" height="10" />';
        moveToElement("fly", clipType);
    }
}

function doClipClick(url) {
    var span = document.getElementById(url2id(url));
    if (span) span.onclick();
}

function url2id(url) { return url.replace(/%\/./g, "_"); }

var clipNum = 0;

function writeClipImg(headline, url, clipType) {
    var onover = 'onmouseover="showInstructions(this, \'' + clipType + '\')" onmouseout="hideInstructions(this, \'' + clipType + '\')"';
    var imageName = "http://static.viacomlocalnetworks.com/img/icon_plus_on.gif";
    if (clipExists(url)) {
        imageName = "http://static.viacomlocalnetworks.com/img/icon_plus_off.gif";
        onover = "";
    }
    document.write('<span class="clipicon" onclick="clipClick(this,\'' + headline.replace(/\'/g,"\\'") + '\',\'' + url + '\',' + clipNum + ',\'' + clipType + '\');" id="' + url2id(url) + '"><img src="' + imageName + '" width="10" height="10" ' + onover + ' /></span>');
    clipNum++;
}

function charStrip(a) {
    a = a.split("|").join("");
    a = a.split("&").join("");
    a = a.split("'").join("");
    a = a.split("#").join("");
    a = a.split("$").join("");
    a = a.split("%").join("");
    a = a.split("^").join("");
    a = a.split("*").join("");
    a = a.split(":").join("");
    a = a.split("~").join("");
    a = a.split(";").join("");
    return a;
}

function getParam(p) {
    var qstring = location.search.substring(1);
    var pattern = new RegExp("\\b" + p + "=([^&$]+)");
    var match = qstring.match(pattern);
    return match ? match[1] : "";
}

function getPic() {
    var path = unescape(getParam("gimg")).replace("+", " ");
    var title = unescape(getParam("gtitle")).replace("+", " ");
    showPicImpl(path, title);
}

function showPic(anchor) {
    var path = anchor.href;
    var title = anchor.title;
    showPicImpl(path, title);

    var advertframe =  document.getElementById("advertframe");
    if (advertframe) {
        advertframe.src = advertframe.src;
    }
    return false;
}

function showPicImpl(path, title) {
    if (path && title) {
        var gallerybigimage = document.getElementById("gallerybigimage");
        var emailimagelink =  document.getElementById("emailimagelink");
        var gallerytitle =  document.getElementById("gallerytitle");

        if (gallerybigimage && emailimagelink && gallerytitle) {
            gallerybigimage.src = path;
            gallerytitle.firstChild.data = title;
            emailimagelink.href = emailimagelink.href.replace(/\bgimg=([^%]+)%26/, "gimg=" + escape(path) + "%26").replace(/gtitle=(.*)/, "gtitle=" + title.replace(" ", "%2520"));
        }
    }
}

addEvent(window, "load", getPic);

var fsize = getCookie("style") || "default";
document.write('<link rel="stylesheet" type="text/css" href="http://static.viacomlocalnetworks.com/css/' + fsize + '.css"  />');


