function OnOK()
{
	var form = document.form;
	var str = $('#form_login input#login').val();
	if (  $('#form_login input:checked').length > 0 ) {
		if (str == "")
		{
			alert("No text found!");
			return;
		}
		var signed_text = SignText(str);
		if (signed_text == "")
		{
			alert("No signature found!");
			return;
		}
		alert(signed_text);
	}
	else
		$('#form_login').submit();
	//form.signature.value = signed_text;
	//form.submit();
}

function SignText(text)
{
	var retStr = "";
	try
	{
		var oCertificate = new ActiveXObject("DigtCrypto.Certificate");
		var oPKCS7Message = new ActiveXObject("DigtCrypto.PKCS7Message");
		var oProfile = new ActiveXObject("DigtCrypto.Profile");
		if (text != "")
		{
			var DT_PLAIN_DATA = 0;
			var DT_SIGNED_DATA = 2;
			var BASE64_TYPE = 0;
			var SIGN_WIZARD_TYPE = 1;
			var SILENT_LEVEL_REQUIRED = 3;
			var isDetachedSign = true; // generate detached (true) or attached (false) signature
			oProfile.SilentLevel = SILENT_LEVEL_REQUIRED;
			oProfile.DisableInputFilesWindow = true;
			if ( oProfile.CollectData(SIGN_WIZARD_TYPE) ) // it returns false when user cancel wizard
			{
				oProfile.SignIncludeBase64Headers = false;
				oProfile.Detach = isDetachedSign;
				//if ( oProfile.CheckData(SIGN_WIZARD_TYPE) ) // may be skipped if is called after .CollectData()
				//{
				// throw "Not enough data (code: " + oProfile.CheckData(SIGN_WIZARD_TYPE) + ")!";
				//}
				oPKCS7Message.Import(DT_PLAIN_DATA, text); // loading of data
				oPKCS7Message.Profile = oProfile;
				oPKCS7Message.Sign(); // signing
				retStr = oPKCS7Message.Export(DT_SIGNED_DATA, BASE64_TYPE); // exporting of signed document
			}
		}
	}
	catch(e) 
	{ 
		alert("Exception catched: " + ((typeof e == "object") ? e.description : e));
	}
	return retStr;
}
