// Copyright 2000 Adobe Systems Incorporated. All rights reserved. Permission
// to use, modify, distribute, and publicly display this file is hereby
// granted. This file is provided "AS-IS" with absolutely no warranties of any
// kind. Portions (C) Netscape Communications 1999.

// If you modify this file, please share your changes with Adobe and other SVG
// developers at http://www.adobe.com/svg/.

// Version 3/23/00

function getBrowser()
{
var agt=navigator.userAgent.toLowerCase();
var v_maj=parseInt(navigator.appVersion);
var v_min=parseFloat(navigator.appVersion);
is_opera=(agt.indexOf('opera')!=-1);
is_nav=((agt.indexOf('mozilla')!=-1)&&(agt.indexOf('spoofer')==-1)&&
	(agt.indexOf('compatible')==-1)&&(!is_opera)&&
	(agt.indexOf('webtv')==-1));
is_nav3=(is_nav&&(v_maj==3));
is_nav4up=(is_nav&&(v_maj>=4));
is_nav407up=(is_nav&&(v_min>=4.07));
is_nav408up=(is_nav&&(v_min>=4.08));
is_ie=((agt.indexOf("msie")!=-1)&&(!is_opera));
is_ie3=(is_ie&&(v_maj<4));
is_ie4=(is_ie&&(v_maj==4)&&(agt.indexOf("msie 5.0")==-1));
is_ie4up=(is_ie&&(v_maj>=4));
is_ie5=(is_ie&&(v_maj==4)&&(agt.indexOf("msie 5.0")!=-1)); 
is_ie5up=(is_ie&&!is_ie3&&!is_ie4);
is_win=((agt.indexOf("win")!=-1)||(agt.indexOf("16bit")!=-1));
is_win95=((agt.indexOf("win95")!=-1)||(agt.indexOf("windows 95")!=-1));
is_win98=((agt.indexOf("win98")!=-1)||(agt.indexOf("windows 98")!=-1));
is_winnt=((agt.indexOf("winnt")!=-1)||(agt.indexOf("windows nt")!=-1));
is_win32=(is_win95||is_winnt||is_win98||
	((v_maj>=4)&&(navigator.platform=="Win32"))||
	(agt.indexOf("win32")!=-1)||(agt.indexOf("32bit")!=-1));
is_mac=(agt.indexOf("mac")!=-1);
is_macPPC=(is_mac&&((agt.indexOf("ppc")!=-1)||(agt.indexOf("powerpc")!=-1)));
}

function setCookie(name, value, expires, path, domain, secure) {
var curCookie=name+"="+escape(value)+
	((expires)?"; expires="+expires.toGMTString():"")+
	((path)?"; path="+path:"")+
	((domain)?"; domain="+domain:"")+
	((secure)?"; secure":"");
document.cookie=curCookie;
}

// returns null if cookie not found
function 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 deleteCookie(name, path, domain) {
if(getCookie(name))
	document.cookie=name+"="+((path)?"; path="+path:"")+
	((domain)?"; domain="+domain:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function fixDate(date) {
var base=new Date(0);
var skew=base.getTime();
if(skew>0)
	date.setTime(date.getTime()-skew);
}

var svgInstallBase="http://www.adobe.com/svg/viewer/install/";
var svgInstallPage=svgInstallBase+"auto/";
var svgInfoPage="http://www.adobe.com/svg/";
var svgDownloadPage=svgInstallBase;
var checkIntervalDays=30;
var firstSVG=true; // Ask only once per page even without cookies
var userDeclined=false;

function getSVGInstallPage() {
return svgInstallPage+"?"+location;
}

function getCheckInterval() {
return checkIntervalDays*24*60*60*1000;
}

// The value of the cookie is '0'. We need some value, but it doesn't matter what.
// We set the cookie for the entire site by specifying the path '/'.
// We could include something from adobe.com and set the cookie for that site.
// This would enable only asking once no matter how many sites a user encounters
// with SVG.
function setSVGCookie() {
if(getCheckInterval()>0) {
	var expires=new Date();
	fixDate(expires); // NN2/Mac bug
	expires.setTime(expires.getTime()+getCheckInterval());
	setCookie('SVGCheck','0',expires,'/')
	}
}

function isSVGControlInstalled()
{
    try{
        var asv = new ActiveXObject("Adobe.SVGCtl");
        return true;
    }
    catch(e){
    }
    return false;
}

function isSVGPluginInstalled() {
	var svgElement=document.createElementNS('http://www.w3.org/2000/svg','svg');
	return (typeof svgElement.width != 'undefined');
/*return (navigator.mimeTypes["image/svg"]&&navigator.mimeTypes["image/svg"].enabledPlugin!=null)||
       (navigator.mimeTypes["image/svg-xml"]);
*/
}

function checkSVGViewer() {
window.askForSVGViewer=false;
if(window.svgInstalled)
	return;
getBrowser();
if(is_win32 && is_ie4up) {
	window.svgViewerAvailable=true;
	window.svgInstalled=isSVGControlInstalled();
	if(!window.svgInstalled)
		window.askForSVGViewer=true;
	}
else if((is_win32 && is_nav4up) || (is_macPPC && is_nav407up)) {
	window.svgViewerAvailable=true;
	window.svgInstalled=isSVGPluginInstalled();
	if(!window.svgInstalled&&is_nav408up&&navigator.javaEnabled())
		window.askForSVGViewer=true;
	}
else if(is_macPPC && is_ie5up)
	window.svgViewerAvailable=true;
else {
	var agt=navigator.userAgent.toLowerCase();
	var v_min;
	if (agt.indexOf('firefox')!=-1) {
		v_min=parseFloat(agt.substring(agt.indexOf('firefox')+8));
		if (v_min>=1.5) window.svgInstalled=true;
		}
	else if (agt.indexOf('opera')!=-1) {
		v_min=parseFloat(agt.substring(agt.indexOf('opera')+6));
		if (v_min>=8) window.svgInstalled=true;
		}
	}
}

function getSVGViewer() {
if(confirm('The Adobe SVG Viewer is not installed. Download now?'))
	location=getSVGInstallPage();
else userDeclined=true;
}

function checkAndGetSVGViewer() {
checkSVGViewer();
var svgCookie=getCookie('SVGCheck');
if(firstSVG&&!svgCookie) {
	if(window.askForSVGViewer) {
//		setSVGCookie();
		getSVGViewer();
		}
	firstSVG=false;
	}
}

function emitSVG(path,target) {
var temp;

if (!document.getElementById(target)) return false;
target=document.getElementById(target);
temp=target.getElementsByTagName("div")[0];
if (!temp) return false;
target.removeChild(target.getElementsByTagName("div")[0]);
if(window.svgInstalled) {
	if (!is_opera)
		target.innerHTML=target.innerHTML+'<embed src="'+path+'" />';
	else
		target.innerHTML=target.innerHTML+'<object data="'+path+'" />';
}
else if(window.askForSVGViewer)	{
	if(navigator.appName=='Netscape')
		target.innerHTML=target.innerHTML+'<p>To use this feature, you need an SVG viewer. <a href="'+getSVGInstallPage()+'">Click here</a> for more information.</p>';
	else if (userDeclined)
		target.innerHTML=target.innerHTML+'<p>Our dynamic mortgage calculators require the Adobe SVG plugin.</p><p>Please refresh the page and click "OK" to install or visit <a href="'+getSVGInstallPage()+'">Adobe</a> for more information.</p>';
	else target.innerHTML=target.innerHTML+'<p>Please wait while you are being redirected to the Adobe SVG plugin install page.</p><p>You can click <a href="'+getSVGInstallPage()+'">HERE</a> to also go there manually.</p>';
	}
else if(window.svgViewerAvailable)
	target.innerHTML=target.innerHTML+'<embed src="'+path+'" pluginspage="'+svgDownloadPage+'" />';
else
	target.innerHTML=target.innerHTML+'<p>To use this feature, you need an SVG viewer. There is currently no Adobe SVG Viewer available for your browser. <a href="'+svgInfoPage+'">Click here</a> for more information.</p>';
}