var baseURL = "http://" + window.location.host + "/initech/plugin/";
var InstallModuleURL =  baseURL + "dll/INIS60.vcs";
var nsPackageURL = baseURL + "down/INIS60.jar";
var iePackageURL = baseURL + "down/INIS60.cab";
var nsManualPackageURL	= baseURL + "down/INIS60.jar";
//var ieManualPackageURL	= baseURL + "down/INIS60.jar";
var ieManualPackageURL	= baseURL + "down/INIS60.exe";
var manualInstallURL	= baseURL + "down/download.html";
//var ieVersion = "6,0,0,6";
//var ieVersion = "6,1,0,5";
//var ieVersion = "6,2,0,4"
var ieVersion = "6,5,0,3"
var nsVersion = ieVersion;

// add 2004/09/01 wakano@initech.com
var InstallPluginURL = "http://" + window.location.host + "/initech/plugin/site/install.html";
//var CheckVersion     = "6,0,0,1";	//Á¢¼Ó°¡´É¹öÀüÀ» ¸í½Ã ieVersion°ú µ¿ÀÏÇÏ°Ô »ç¿ëÀ» ±ÇÀå
//var CheckVersion     = "6,1,0,5";
var CheckVersion     = "6,5,0,3";
//var CheckVersion   = ieVersion;

var componentName = "plugins/initech/INISAFE60/npINISAFEWeb60.dll";
var mimeType = "application/x-INISAFEWebv60"; 
var CLSID = "286A75C3-11FB-4FB4-AC4A-4DD1B0750050";

// wakano@initech.com 4.0»ç¿ë¿©ºÎ¸¦ È®ÀÎÇÏ¿© º¯°æ½ÃÅ°´Â ·ÎÁ÷ÀÓ
function _getCookie_( name )
{
	var nameOfCookie = name + "=";
	var x = 0;
	while ( x <= document.cookie.length )
	{
		var y = (x+nameOfCookie.length);
		if ( document.cookie.substring( x, y ) == nameOfCookie )
		{
			if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
				endOfCookie = document.cookie.length;
			return unescape( document.cookie.substring( y, endOfCookie ) );
		}
		x = document.cookie.indexOf( " ", x ) + 1;
		if ( x == 0 )
			break;
	}
	return "";
}
var getVer = _getCookie_("INISafeWeb");

if (getVer == "4.5") {
	baseURL = "http://download.initech.com/INIsafeWeb/plugin/45/";
	InstallModuleURL =  baseURL + "/dll/iniplugin40.vcs";

	nsPackageURL = baseURL + "npINIplugin40.jar";
	iePackageURL = baseURL + "axINIplugin40.cab";
	nsManualPackageURL	= baseURL + "INIplugin40.exe";
	ieManualPackageURL	= baseURL + "INIplugin40.exe";
	manualInstallURL	= baseURL + "download.html";
	nsVersion = "4,5,4,32";
	ieVersion = "4,5,4,32";

	// add 2004/09/01 wakano@initech.com
	InstallPluginURL = "http://" + window.location.host + "/initech/plugin/sample/install.html";
	CheckVersion   = ieVersion;

	var componentName = "plugins/initech/npINIplugin40/npINIplugin40.dll";
	var mimeType = "application/x-INIplugin128v40"; 
	var CLSID = "6AD92401-CE2D-452B-AA63-1291D60EC2D2";
}

function getIntVersion(versionStr)
{
	var version = new Array(4);
	versionArray = versionStr.split(",");	
	for(i=0;i<4;i++)
		version[i] = parseInt(versionArray[i], 10);

	return version;
}

function myVersionCompare()
{
	var myMimetype = navigator.mimeTypes[mimeType];
	var desc = myMimetype.enabledPlugin.description;
    var index = desc.indexOf('v.', 0);
    if (index < 0)
        return -5;
    desc += ' ';

    versionString = desc.substring(index+2, desc.length);
    arrayOfStrings = versionString.split('.');

	var existing = new Array(4);
	for(i=0; i<4; i++)
    	existing[i] = parseInt(arrayOfStrings[i], 10);

	var version = getIntVersion(nsVersion);

	for(i=0; i<4; i++)
	{
		if(existing[i]>version[i])
			return (4-i);
		else if(existing[i]<version[i])
			return -(4-i);
	}

    return 0;
}

//add  brson 2002/4/16
function getUserAgentVersion()
{	
	var s = navigator.userAgent.indexOf("/");
	var	e = navigator.userAgent.indexOf(" ");
	var	ver = navigator.userAgent.substring(s+1, s+4);
	return ver;
}

//change brson 2002/4/16
function startDownload() 
{
	var trigger;
	var version;
	var newVI;
	var existingVI;
	var myMimetype = navigator.mimeTypes[mimeType];
	// If some version is already installed on this machine...
	if ( myMimetype ) {
		if(getUserAgentVersion()>=5.0){
			if(myVersionCompare()<0){
				top.location = manualInstallURL;
				return true;
			} else{
				return true;
			}
		}
		trigger = netscape.softupdate.Trigger;
		version = getIntVersion(nsVersion);
		newVI = new netscape.softupdate.VersionInfo(version[0], version[1], version[2], version[3]);
		existingVI = netscape.softupdate.Trigger.GetVersionInfo(componentName);
		if ( existingVI==null)
		{
			if(myVersionCompare()<0)
			{
				alert("INIpluginÀ» ¼³Ä¡ÇÕ´Ï´Ù.");
				//return trigger.StartSoftwareUpdate(nsPackageURL, trigger.DEFAULT_MODE|trigger.SILENT_MODE);
				return trigger.StartSoftwareUpdate(nsPackageURL, trigger.DEFAULT_MODE);
			}
			else
			{
				return true;
			}
		}
		else if ( existingVI.compareTo(newVI)<0)
		{
			alert("INIpluginÀ» ¼³Ä¡ÇÕ´Ï´Ù.");
			//return trigger.ConditionalSoftwareUpdate(nsPackageURL, componentName, newVI, trigger.DEFAULT_MODE|trigger.SILENT_MODE);
			return trigger.ConditionalSoftwareUpdate(nsPackageURL, componentName, newVI, trigger.DEFAULT_MODE);
		}
		else
		{
			return true;
		}
	}
	else
	{
		if(getUserAgentVersion()>=5.0){
			top.location = manualInstallURL;
			return true;
		}
		else{
			trigger = netscape.softupdate.Trigger;
			alert("INIpluginÀ» ¼³Ä¡ÇÕ´Ï´Ù.");
			//return trigger.StartSoftwareUpdate(nsPackageURL, trigger.DEFAULT_MODE|trigger.SILENT_MODE);
			return trigger.StartSoftwareUpdate(nsPackageURL, trigger.DEFAULT_MODE);
		}
	}

	return false;
}



//change brson 2002/4/16
function isInstalled()
{
	var myMimetype = navigator.mimeTypes[mimeType];
	if ( myMimetype ){
		if(getUserAgentVersion()>=5.0){
			if(myVersionCompare()>=0){
				return true;
			}else{
				return false;
			}
		} else{
			var version = getIntVersion(nsVersion);
			var newVI = new netscape.softupdate.VersionInfo(version[0], version[1], version[2], version[3]);
			var existingVI = netscape.softupdate.Trigger.GetVersionInfo(componentName);
			if(existingVI==null) {
				if(myVersionCompare()>=0){
					return true;
				}else{
					return false;
				}
			}
			else if ( existingVI.compareTo(newVI)>=0){
				return true;
			}
		}
	}
	return false;
}

var loadOK;
function LoadPlugin()
{
	loadOK=true;	
	if (navigator.appName == 'Netscape') 
	{
		if(isInstalled())
		{
			document.writeln('<EMBED type=' + mimeType + ' name="INIplugin" width=2 height=2 style="visibility:hidden; position:absolute; top:0; left:0">INIplugin Load OK</EMBED>');
		}
		else
		{
			loadOK = startDownload();
			NS_Init();
		}
	}
	else
	{
		document.writeln('<OBJECT ID="INIplugin" CLASSID="CLSID:' + CLSID + '" width=1 height=1 style="visibility:hidden; position:absolute; top:0; left:0" ');
		document.writeln('CODEBASE='+ iePackageURL + '#Version=' + ieVersion +'>');
		document.writeln('</OBJECT>');	
	}
}

var loopCount=0;
function NS_Init()
{
	
	if(!loadOK)
	{
		alert("¼³Ä¡ ½ÇÆÐ");
	}
	else if(isLoaded())
	{
		return;
	}
	else if(isInstalled())
	{
		location.reload();
		//location.replace("./INIplugin.html");	
	}
	else
	{
		loopCount++;
		if(loopCount>60*10)
		{
			alert("¼³Ä¡ ½ÇÆÐ");
		}
		else
		{
			setTimeout("NS_Init()", 1000);
		}
	}
}

function isLoaded()
{
	if(navigator.appName == "Netscape")
	{
		if(document.INIplugin==null)
			return false;
		else
			return true;
	}
	else
	{
		if(frame.INIplugin==null || typeof(frame.INIplugin) == "undefined" || frame.INIplugin.object==null) return false;
		else 
			return true;
	}
}


// add 2004/09/01 wakano@initech.com
function CheckPlugin()
{
	var installOK = false;
	loadOK=true;

//alert(installOK + "=[start]");

	if (navigator.appName == 'Netscape') 
	{
		if(isInstalled()) {
			document.write('<EMBED type=' + mimeType + ' name="INIplugin" width=2 height=2 style="visibility:hidden; position:absolute; top:0; left:0">INIplugin Load OK</EMBED>');
			installOK = true;
		}
	} 
	else
	{
		//document.writeln('<OBJECT ID="INIplugin" CLASSID="CLSID:' + CLSID + '" width=1 height=1 ');
		//document.writeln('CODEBASE='+ iePackageURL + '#Version=' + ieVersion +'>');
		//document.writeln('</OBJECT>');	
		document.write('<OBJECT ID="INIplugin" CLASSID="CLSID:' + CLSID + '" width=1 height=1 style="visibility:hidden; position:absolute; top:0; left:0"></OBJECT>');

		//alert("check 1 = " + typeof(this.document.INIplugin));
		//alert("check 2 = " + this.document.INIplugin);
		//alert("check 3 = " + this.document.INIplugin);
		//alert("check 4 = " + this.document.INIplugin.object);

		if( !((typeof(this.document.INIplugin) == "undefined") || (this.document.INIplugin == "undefined") ||
				(this.document.INIplugin == null) || (this.document.INIplugin.object == null) ))
		{
			var thisArray = String(this.document.INIplugin.GetVersion()).split(',');
			var inputArray = CheckVersion.split(',');
			for (i=0; i<4; i++)
			{
//alert(thisArray[i] + "|" + inputArray[i]);
				if (parseInt(thisArray[i], 10) > parseInt(inputArray[i], 10)) {
					installOK = true;
					break;
				} else if (parseInt(thisArray[i], 10) < parseInt(inputArray[i], 10)) {
					break;
				} else {
					if (i==3) installOK = true;
				}
			}
//alert(installOK + "=[version check end]");

			if (installOK == true)
			{
				var inputArray2 = ieVersion.split(',');
				for (i=0; i<4; i++)
				{
//alert(thisArray[i] + "|" + inputArray2[i]);
					if (parseInt(thisArray[i], 10) > parseInt(inputArray2[i], 10)) {
						break;
					} else if (parseInt(thisArray[i], 10) < parseInt(inputArray2[i], 10)) {
						if (confirm("¾ÏÈ£È­¸ðµâ(INISAFE Web)ÀÌ ¾÷±×·¹ÀÌµå µÇ¾ú½À´Ï´Ù. ¾÷±×·¹ÀÌµå ÇÏ½Ã°Ú½À´Ï±î")) {
							installOK = false;
							break;
						}
						break;
					}
				}
//alert(installOK + "=[upgrade check end]");
			}
		}
	}
//alert(installOK + "=[end]");
	if (installOK == false) top.location = InstallPluginURL;
}

//var InitechGroupID = "60/pub/"; 
//var InitechBaseURL = "http://up.initech.com/web/plugin/" + InitechGroupID + "install.js?" + window.location.host; 
//var InitechInstall = "<script src='" + InitechBaseURL + "'><\/script>"; 
//document.write(InitechInstall); 

