/*
 * $Id: global.js,v 1.5 2007-12-01 08:02:54 builder Exp $
 *
 * Copyright (c) 2006-2007, Juniper Networks, Inc.
 * All rights reserved.
 *
 * Global Javascript (included on every page)
 */

var Try = {
    these: function ()
    {
	var returnValue;

	for (var i = 0; i < arguments.length; i++) {
	    var lambda = arguments[i];
	    try {
		returnValue = lambda();
		break;
	    } catch (e) {}
	}

	return returnValue;
    }
}


function
parseXML (xml)
{
    var ajaxResponse = Try.these(
	function () 
	{ 
	    return new DOMParser().parseFromString(xml, 'text/xml');
	},
	function ()
	{
	    var xmldom = new ActiveXObject('Microsoft.XMLDOM');
	    xmldom.loadXML(xml);
	    return xmldom;
	}
    );

    return ajaxResponse;
}

function
detectBrowser ()
{
    var ua = navigator.userAgent.toLowerCase();
    
    this.isKonqueror   = (ua.indexOf('konqueror') != -1); 
    this.isSafari      = (ua.indexOf('safari') != - 1);
    this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
    this.isOpera       = (ua.indexOf('opera') != -1); 
    this.isIcab        = (ua.indexOf('icab') != -1); 
    this.isAol         = (ua.indexOf('aol') != -1); 
    this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); 
    this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
    this.isFirebird    = (ua.indexOf('firebird/') != -1);
    this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
    this.isFirefox    = (ua.indexOf('firefox/') != -1);
}

var browser = new detectBrowser();

function
openWindow (url, parent, target)
{
    if (parent && opener) {
	opener.location = url;
	return;
    }
    window.open(url, target);
}
