/***************************************************************************
/*
/* Safile strong client side encryption v1.0
/* 
/* Written by Alex Sirota (alex@elbrus.com), May 2004
/*
/* Copyright Alex Sirota 2004, all rights reserved
/*
/* Please ask for permission before using this code.
/*
/***************************************************************************/

function SetAppletText(text) {
	GetElem('text').value = text;	
}

function init() {
	if (QueryString('text') != null) {
		SetAppletText(unescape(unescape(QueryString('text'))));
	}
}

SafeAddOnload(init);

// ------ start general functions ------
function GetApplet() {
	return document.cryptapplet;
}

function GetElem(elem) {
	return document.getElementById(elem);
}

var origStatusColor = null;
function SetStatusWithColor(msg, color) {
	var status = GetElem("status");
	status.innerHTML = msg;	
	if (origStatusColor == null) {
		origStatusColor = status.style.color;
	}
	status.style.color = color;
}

function SetButtonsEnabledState() {
	if (GetApplet().IsShowingPlain()) {
		GetElem('saveButton').disabled = true;
		GetElem('sendButton').disabled = true;
	} else {
		GetElem('saveButton').disabled = false;
		GetElem('sendButton').disabled = false;
	//	GetElem('sendButton').className = 'button';
	}
}

function IsHTML(text) {
   var re = /<html>/ig;      
   if (text.search(re) != -1) {
	return true;
   } else {
	return false;
   }
}

function ShowAsHTML() {
	oPopup = window.open("", "_blank", 
				"width=640, height=280, top=250, left=10," +
				"channelmode=no, directories=no, fullscreen=no, location=no, menubar=yes, " + 
				"resizable=yes, scrollbars=yes," +
				"status=yes, titlebar=yes, toolbar=yes", 
				false);
	oPopup.document.write(GetElem('text').value);
	return false;
}

// ------ end general functions ------



// ------ start JavaScript -> Java ------
function DoEncrypt() {
	GetApplet().DoEncrypt(GetElem('text').value, GetElem('password').value);
	SetButtonsEnabledState();
}

function DoDecrypt() {
	GetApplet().DoDecrypt(GetElem('text').value, GetElem('password').value);
	SetButtonsEnabledState();
}

function DoLoad() {
	GetApplet().DoLoad(GetElem('url').value);
	SetButtonsEnabledState();
}

function DoSave() {
	GetApplet().DoSave(GetElem('url').value, GetElem('text').value);
}

function DoSend() {
	GetApplet().DoSend(GetElem('text').value, GetElem('recipient').value);
}



// ------ end JavaScript -> Java ------


// ------ start Java -> JavaScript ------

function SetStatus(msg) {
	SetStatusWithColor(msg, origStatusColor);
}

function SetStatusError(msg) {
	SetStatusWithColor(msg, 'red');
}

function SetText(text) {
	GetElem('text').value = text;
	if (IsHTML(text)) {
		ShowAsHTML();
	}
}

function RevealApplet() {
	GetElem('cryptapplet').style.visibility = 'visible';
	GetElem('downloadJava').style.display = 'none';
	SetStatus("Ready.");
}
// ------ end Java -> JavaScript ------

