/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/ 
 * 
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License. 
 *
 * The Original Code is ChatZilla
 * 
 * The Initial Developer of the Original Code is
 * Robert Ginda
 * Portions created by Robert Ginda are Copyright (C) 2005 Robert Ginda.
 *
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU Public License (the "GPL"), in which case the
 * provisions of the GPL are applicable instead of those above.
 * If you wish to allow use of your version of this file only
 * under the terms of the GPL and not to allow others to use your
 * version of this file under the MPL, indicate your decision by
 * deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL.  If you do not delete
 * the provisions above, a recipient may use your version of this
 * file under either the MPL or the GPL.
 *
 * Contributor(s):
 *  Robert Ginda, <rginda@hacksrus`com>, original author
 */

plugin.id = "exchange-compat";
plugin.major = 1;
plugin.minor = 2;
plugin.version = plugin.major + "." + plugin.minor;
plugin.description = "Disables non-conforming PING messages, for use on " +
    "exchange IRC servers.";

plugin.init =
function initPlugin(glob)
{
    plugin.stockLagTimer = CIRCServer.prototype.updateLagTimer;
    plugin.stockNotifyTimeout = onNotifyTimeout;

    plugin.lagTimer = function exch_lagtimer() {};

    // ewwww
    var source = plugin.stockNotifyTimeout.toSource();

    source = source.replace('net.primServ.sendData("PING :ALIVECHECK\\n");',
                            "1;");
    source = source.replace("function onNotifyTimeout",
                            "function exch_notifyTimeout");
    eval("plugin.notifyTimeout = " + source);

    return true;
}

plugin.enable =
function exch_enable()
{
    CIRCServer.prototype.updateLagTimer = plugin.lagTimer;
    window.onNotifyTimeout = plugin.notifyTimeout;

    return true;
}

plugin.disable =
function exch_disable()
{
    CIRCServer.prototype.updateLagTimer = plugin.stockLagTimer;
    window.onNotifyTimeout = plugin.stockNotifyTimeout;

    return true;
}

