﻿// install_js

includeJavascriptFile('/zorap_version.js');
addEventSimple(window, 'load', onLoad);
addEventSimple(window, 'unload', onUnload);
var install = false;

var qsParm = new Array();
qsParm['referrer'] = null;
qs(qsParm);
var referrer = qsParm['referrer'];
if(referrer) {
	referrer = unescape(referrer);
}

function onLoad() {
    var ready = false;
    try {
        if(requiredV1Win && requiredV1Mac) {
            ready = true;
        }
    }
    catch(e) {
    }
    if(!ready) {
        setTimeout(onLoad, 500);
        return;
    }
    
    setVersion();
	removeEventSimple(document, 'load', onLoad);
	var instCookie = readCookie('inst');
	if(instCookie && instCookie == 'true') {
		install = true;
	}
	eraseCookie('inst');
    doUI();
}

function onUnload() {
	if(install) {
		createCookie('inst', 'true', 10);
	}
}

function doUI() {
    clearUI();
    var main1 = createMain();
    var main2 = createMain();
	if(isCurrentVersion()) {
		if(referrer) {
			returnToRoom();
		}
		else {
			doUI_HasCurrent(main1);
		}
    }
    else {
        doUI_NeedsCurrent(main1, main2);
    }
}

function clearUI() {
    var main = document.getElementById('main');
    var main1 = document.getElementById('main1');
    if(main1) {
        main.removeChild(main1);
    }
    var main2 = document.getElementById('main2');
    if(main2) {
        main.removeChild(main2);
    }
}	

function createMain() {
	var main = document.getElementById('main');
	var main1 = document.createElement('main1');
	main1.id = 'main1';
	main.appendChild(main1);
	return main1;
}

function createMain2() {
	var main = document.getElementById('main');
	var main2 = document.createElement('main2');
	main2.id = 'main2';
	main.appendChild(main2);
	return main2;
}

function doUI_HasCurrent(main1) {
    var spanVer = document.createElement('span');
    spanVer.innerHTML = 'Zorap version ' + getVersionInstalledForUI() + ' installed.';
	main1.appendChild(spanVer);
	
	main1.appendChild(document.createElement('br'));

    var span = document.createElement('span');
    span.innerHTML = 'Get ready to Zorap!';
	main1.appendChild(span);

	main1.appendChild(document.createElement('br'));
	main1.appendChild(document.createElement('br'));
	
	createButton(main1);
}

function createButton(parent) {
	var button = document.createElement('input');
	button.type = 'button';
	button.value = 'Go to Zorap Room!';
	button.onclick = function() {
		returnToRoom();
	}
	parent.appendChild(button);
}

function createChromeSteps(main1)
{
	var imgStep1 = img();
	imgStep1.src = fixRoot('/Images/Install/Step1.png');
	imgStep1.style.position = 'absolute';
	imgStep1.style.left = '0';
	imgStep1.style.top = '80px';
	main1.appendChild(imgStep1);

    var a = document.createElement('a');
	a.style.position = 'absolute';
	a.style.left = '110px';
	a.style.top = '88px';
    a.style.fontWeight = 'bold';
    a.style.fontSize = '14pt';
    a.innerHTML = 'Click here to download npZorap.zip';
    if(isZorapInstalled())
    {
	    a.innerHTML += ' (version ' + pcurrentVersion + ')';
    }
   	a.href = codebaseZIP;
	main1.appendChild(a);
	
	var imgStep2 = img();
	imgStep2.src = fixRoot('/Images/Install/Step2.png');
	imgStep2.style.position = 'absolute';
	imgStep2.style.left = 0;
	imgStep2.style.top = '135px';
	main1.appendChild(imgStep2);

	spanAllow = document.createElement('span');
	spanAllow.id = 'spanAllow';
	spanAllow.innerHTML = 'Extract the contents of the zip file';
	spanAllow.style.position = 'absolute';
	spanAllow.style.left = '110px';
	spanAllow.style.top = '143px';
	spanAllow.style.fontSize = '14pt';
	main1.appendChild(spanAllow);
	
	spanAllow2 = document.createElement('span');
	spanAllow2.id = 'spanAllow2';
	spanAllow2.innerHTML = 'Extract to C:\\Documents and Settings\\[user]\\Local Settings\\Application Data\\Google\\Chrome\\Application\\Plugins (Windows XP) or<br/>C:\\Users\\[user] \\AppData\\Local\\Google\\Chrome\\Application\\Plugins (Windows Vista)<br/>where [user] is your Windows login name.';
	spanAllow2.style.position = 'absolute';
	spanAllow2.style.left = '110px';
	spanAllow2.style.top = '170px';
	spanAllow2.style.width = '580px';
	spanAllow2.style.fontSize = '10pt';
	spanAllow2.style.fontWeight = 'bold';
	main1.appendChild(spanAllow2);

	var imgStep3 = img();
	imgStep3.src = fixRoot('/Images/Install/Step3.png');
	imgStep3.style.position = 'absolute';
	imgStep3.style.left = 0;
	imgStep3.style.top = '250px';
	main1.appendChild(imgStep3);

    var aDone = document.createElement('a');
	aDone.style.position = 'absolute';
	aDone.style.left = '110px';
	aDone.style.top = '258px';
    aDone.style.fontWeight = 'bold';
    aDone.style.fontSize = '14pt';
    aDone.innerHTML = 'When you are done, click here to enter the Zorap Room';
	aDone.href = '#';
	aDone.onclick = function() {
		navigator.plugins.refresh(false);
		window.location.href = referrer;
		return false;
	}
	main1.appendChild(aDone);
}

function doUI_NeedsCurrent(main1, main2) {

	var spanWelcome = span();
	var textWelcome = 'To view _url you need to have the latest Zorap Plugin installed.'
	var thisPage = referrer ? referrer : 'this page';
	var iQ = thisPage.indexOf('?');
	if(iQ >= 0) {
		thisPage = thisPage.substring(0, iQ);
	}
	if(thisPage.indexOf('http://') == 0) {
		thisPage = thisPage.substring(7);
	}
	spanWelcome.innerHTML = textWelcome.replace('_url', thisPage);
	spanWelcome.style.position = 'absolute';
	spanWelcome.style.left = '0';
	spanWelcome.style.top = '26px';
	spanWelcome.style.fontSize = '10pt';
	main1.appendChild(spanWelcome);
	
	var aLearnMore = document.createElement('a');
	aLearnMore.innerHTML = 'Learn more';
	aLearnMore.target = '_blank';
	aLearnMore.href = fixRoot('/about/Contact.aspx');
	aLearnMore.style.position = 'absolute';
	aLearnMore.style.left = '3px';
	aLearnMore.style.top = '44px';
	aLearnMore.style.fontSize = '10pt';
	main1.appendChild(aLearnMore);

	if(BrowserDetect.browser == 'Chrome')
	{
		createChromeSteps(main1);
		return;
	}
			
	var imgStep1 = img();
	imgStep1.src = fixRoot('/Images/Install/Step1.png');
	imgStep1.style.position = 'absolute';
	imgStep1.style.left = '0';
	imgStep1.style.top = '80px';
	main1.appendChild(imgStep1);

    var a = document.createElement('a');
	a.style.position = 'absolute';
	a.style.left = '110px';
	a.style.top = '88px';
    a.style.fontWeight = 'bold';
    a.style.fontSize = '14pt';
    a.innerHTML = 'Click here to get started';
    if(isZorapInstalled()) {
	    a.innerHTML += ' installing version ' + pcurrentVersion;
    }
	main1.appendChild(a);
	if(install) {
		createZorapObject(main2);
		createAllowMessageActiveX(main2);
		setTimeout(lookForZorap, 500);
	}
	a.href = '#';
	a.onclick = function() {
		if(window.ActiveXObject) {
			install = true;
			removeChildren(main2);
			createZorapObject(main2);
			setTimeout(lookForZorap, 1500);
		}
		else {
			var xpi={'Install Zorap Plugin':codebaseXPI};
			InstallTrigger.install(xpi, xpinstallCallback);
			createAllowMessage(main1);
		}            
		return false;
	}
}

function createAllowMessage(main1) {
	var spanAllow = document.getElementById('spanAllow');
	if(!spanAllow) {
		var imgStep2 = img();
		imgStep2.src = fixRoot('/Images/Install/Step2.png');
		imgStep2.style.position = 'absolute';
		imgStep2.style.left = 0;
		imgStep2.style.top = '165px';
		main1.appendChild(imgStep2);

		spanAllow = document.createElement('span');
		spanAllow.id = 'spanAllow';
		spanAllow.innerHTML = 'Your browser may prompt you (above) to allow the installation';
		spanAllow.style.position = 'absolute';
		spanAllow.style.left = '110px';
		spanAllow.style.top = '173px';
		spanAllow.style.fontSize = '14pt';
		main1.appendChild(spanAllow);
		
		var imgStep3 = img();
		imgStep3.src = fixRoot('/Images/Install/Step3.png');
		imgStep3.style.position = 'absolute';
		imgStep3.style.left = 0;
		imgStep3.style.top = '250px';
		main1.appendChild(imgStep3);

		spanAllow1 = document.createElement('span');
		spanAllow1.innerHTML = 'When the Installation dialog appears, click the "Install Now" button';
		spanAllow1.style.position = 'absolute';
		spanAllow1.style.left = '110px';
		spanAllow1.style.top = '258px';
	    spanAllow1.style.fontSize = '14pt';
		main1.appendChild(spanAllow1);
	}
}

function createAllowMessageActiveX(main1) {
	var spanAllow = document.getElementById('spanAllow');
	if(!spanAllow) {
		var copyright = document.getElementById('ctl00_Copyright');
		if(copyright) copyright.parentNode.removeChild(copyright);
		
		var imgStep3 = img();
		imgStep3.src = fixRoot('/Images/Install/Step3.png');
		imgStep3.style.position = 'absolute';
		imgStep3.style.left = 0;
		imgStep3.style.top = '250px';
		main1.appendChild(imgStep3);

		spanAllow1 = document.createElement('span');
		spanAllow1.innerHTML = 'When the Security Warning dialog appears, click the "Install" button';
		spanAllow1.style.position = 'absolute';
		spanAllow1.style.left = '110px';
		spanAllow1.style.top = '258px';
	    spanAllow1.style.fontSize = '14pt';
		main1.appendChild(spanAllow1);
		
		var spanAllow2 = document.createElement('span');
		spanAllow2.innerHTML = "Note:";
		spanAllow2.style.position = 'absolute';
		spanAllow2.style.left = 0;
		spanAllow2.style.top = '346px';
		main1.appendChild(spanAllow2);

		var spanAllow3 = document.createElement('span');
		spanAllow3.innerHTML = "Your computer may require a reboot after installation of the Zorap control if Zorap was already in use during the installation process.";
		spanAllow3.style.position = 'absolute';
		spanAllow3.style.left = 0;
		spanAllow3.style.top = '364px';
		main1.appendChild(spanAllow3);

		var spanAllow4 = document.createElement('span');
		spanAllow4.innerHTML = "If you see this";
		spanAllow4.style.position = 'absolute';
		spanAllow4.style.left = 0;
		spanAllow4.style.top = '382px';
		main1.appendChild(spanAllow4);

		imgActiveXSecWar = document.createElement('img');
		imgActiveXSecWar.src = fixRoot('/images/install/activexfail.png');
		imgActiveXSecWar.style.position = 'absolute';
		imgActiveXSecWar.style.left = '84px';
		imgActiveXSecWar.style.top = '382px';
		imgActiveXSecWar.style.width = '14px';
		imgActiveXSecWar.style.height = '16px';
		main1.appendChild(imgActiveXSecWar);

		var spanallow5 = document.createElement('span');
		spanallow5.innerHTML = "for Step 2 the installation failed, probably because you do not have administrative rights on your computer.";
		spanallow5.style.position = 'absolute';
		spanallow5.style.left = '104px';
		spanallow5.style.top = '382px';
		main1.appendChild(spanallow5);
		
		var mailTo = document.createElement('a');
        mailTo.href = 'mailto:install@zorap.com?subject=Installation%20Problem%20(Windows)&body=<Please%20describe%20your%20problem%20and%20tell%20us%20about%20your%20computer.>';
        mailTo.target = '_blank';
        mailTo.innerHTML = "Send us an email letting us know about any installation problems.";
		mailTo.style.position = 'absolute';
		mailTo.style.left = 0;
		mailTo.style.top = '400px';
		main1.appendChild(mailTo);
	}
}

var nDots = 0;
function setDownloadingMessage() {
	var spanDownloading = document.getElementById('spanDownloading');
	if(spanDownloading) {
		spanDownloading.innerHTML = "Downloading Zorap ";
		for(var which = 0; which < nDots; which++) {
			spanDownloading.innerHTML += '.';
		}
		nDots += 1;
		nDots = nDots %20;
	}
	setTimeout(setDownloadingMessage, 500);
}

function createDownloadingMessage(main1) {
	var divDownloading = div();
	divDownloading.style.position = 'absolute';
	divDownloading.style.left = '140px';
	divDownloading.style.top = '172px';
	
	var spanDownloading = span();
	spanDownloading.id = 'spanDownloading';
	spanDownloading.style.fontWeight = '';
	spanDownloading.style.fontSize = '12pt';
	spanDownloading.style.color = '#0000ff';

    divDownloading.appendChild(spanDownloading);
    main1.appendChild(divDownloading);
	setTimeout(setDownloadingMessage, 500);
}

function createZorapObject(main1) {

	if(document.getElementById('ZorapCtrl')) return;
	
	var imgStep2 = img();
	imgStep2.src = fixRoot('/Images/Install/Step2.png');
	imgStep2.style.position = 'absolute';
	imgStep2.style.left = 0;
	imgStep2.style.top = '165px';
	main1.appendChild(imgStep2);
	
	createDownloadingMessage(main1);
	
	var objectString = '<object';
	objectString += ' id="ZorapCtrl"';
	objectString += ' width="300"';
	objectString += ' height="40"';
	objectString += ' classid="CLSID:74BDA0D0-1AD9-45C7-BDC6-7A1879CCBF06"';
	objectString += ' codebase="' + codebaseCAB + '"';
	objectString += '></object>';

    // try to make ActiveX version for IE
    var zorapObject = document.createElement(objectString);
	zorapObject.style.position = 'absolute';
	zorapObject.style.left = '110px';
	zorapObject.style.top = '165px';
    main1.appendChild(zorapObject);
}

function xpinstallCallback(url, status) {
	if(status == 0) {
		doUI();
	}
	else if(status == -210) {
	}
	else {
		alert("Install failed. Note: you must have Administrator privileges to install software.");
	}
}

function lookForZorap() {
	installedVersion = getZorapVersion();
	if(isCurrentVersion()) {
		returnToRoom();
		return;
	}
	setTimeout(lookForZorap, 500);
}

function returnToRoom() {
	if(referrer) {
		location.href = referrer;
	}
}