1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/c/access_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
1.3 @@ -0,0 +1,315 @@
1.4 +/******************************************************/
1.5 +/* interos Standard Document Header - CGI in C */
1.6 +/******************************************************/
1.7 +/* File: access */
1.8 +/* Source: access.c */
1.9 +/* Description: FastCGI for interos access checker */
1.10 +/* Author: Brent Angeline */
1.11 +/* CGI: FastCGI in ISO/ANSI C */
1.12 +/******************************************************/
1.13 +
1.14 +/* PREPROCESSOR DIRECTIVES */
1.15 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen() */
1.16 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
1.17 +#include <stdlib.h> /* free(), getenv(), malloc() */
1.18 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen(), strncmp() */
1.19 +#include <unistd.h> /* F_OK, access() */
1.20 +
1.21 +/* FUNCTION PROTOTYPE DECLARATIONS */
1.22 +static void DenyAccess(void);
1.23 +static void GrantAccess(void);
1.24 +
1.25 +/* BEGIN MAIN PROGRAM */
1.26 +int main(void) {
1.27 +
1.28 + /* BEGIN FASTCGI */
1.29 + while (FCGI_Accept() >= 0) {
1.30 +
1.31 + /* IF A URI REQUEST DOESN'T EXIST OR IS TOO LONG... */
1.32 + if (!getenv("REQUEST_URI") || (sizeof(strlen(getenv("REQUEST_URI"))) > sizeof(INT))) {
1.33 + /** ERROR | A URI REQUEST DOES NOT EXIST OR IS TOO LONG > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.34 + DenyAccess();
1.35 +
1.36 + /* OTHERWISE, IF A URI REQUEST DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
1.37 + } else {
1.38 +
1.39 + /* IF THE URI REQUEST IS FOR A PUBLIC FILE IN THE SERVER ROOT... */
1.40 + if (!(strcmp(getenv("REQUEST_URI"), "/") && strcmp(getenv("REQUEST_URI"), "/favicon.ico") &&
1.41 + strcmp(getenv("REQUEST_URI"), "/index.html") && strcmp(getenv("REQUEST_URI"), "/index.xhtml") &&
1.42 + strcmp(getenv("REQUEST_URI"), "/about") && strcmp(getenv("REQUEST_URI"), "/about/") &&
1.43 + strcmp(getenv("REQUEST_URI"), "/blog") && strcmp(getenv("REQUEST_URI"), "/blog/") &&
1.44 + strcmp(getenv("REQUEST_URI"), "/code") && strcmp(getenv("REQUEST_URI"), "/code/") &&
1.45 + strcmp(getenv("REQUEST_URI"), "/demo") && strcmp(getenv("REQUEST_URI"), "/demo/") &&
1.46 + strcmp(getenv("REQUEST_URI"), "/e-mail") && strcmp(getenv("REQUEST_URI"), "/e-mail/") &&
1.47 + strcmp(getenv("REQUEST_URI"), "/email") && strcmp(getenv("REQUEST_URI"), "/email/") &&
1.48 + strcmp(getenv("REQUEST_URI"), "/f.a.q.") && strcmp(getenv("REQUEST_URI"), "/f.a.q./") &&
1.49 + strcmp(getenv("REQUEST_URI"), "/faq") && strcmp(getenv("REQUEST_URI"), "/faq/") &&
1.50 + strcmp(getenv("REQUEST_URI"), "/gear") && strcmp(getenv("REQUEST_URI"), "/gear/") &&
1.51 + strcmp(getenv("REQUEST_URI"), "/help") && strcmp(getenv("REQUEST_URI"), "/help/") &&
1.52 + strcmp(getenv("REQUEST_URI"), "/home") && strcmp(getenv("REQUEST_URI"), "/home/") &&
1.53 + strcmp(getenv("REQUEST_URI"), "/bottom") && strcmp(getenv("REQUEST_URI"), "/bottom/") &&
1.54 + strcmp(getenv("REQUEST_URI"), "/browse") && strcmp(getenv("REQUEST_URI"), "/browse/") &&
1.55 + strcmp(getenv("REQUEST_URI"), "/content") && strcmp(getenv("REQUEST_URI"), "/content/") &&
1.56 + strcmp(getenv("REQUEST_URI"), "/login") && strcmp(getenv("REQUEST_URI"), "/login/") &&
1.57 + strcmp(getenv("REQUEST_URI"), "/logout") && strcmp(getenv("REQUEST_URI"), "/logout/") &&
1.58 + strcmp(getenv("REQUEST_URI"), "/main") && strcmp(getenv("REQUEST_URI"), "/main/") &&
1.59 + strcmp(getenv("REQUEST_URI"), "/interos") && strcmp(getenv("REQUEST_URI"), "/interos/") &&
1.60 + strcmp(getenv("REQUEST_URI"), "/menu") && strcmp(getenv("REQUEST_URI"), "/menu/") &&
1.61 + strcmp(getenv("REQUEST_URI"), "/new") && strcmp(getenv("REQUEST_URI"), "/new/") &&
1.62 + strcmp(getenv("REQUEST_URI"), "/new_user") && strcmp(getenv("REQUEST_URI"), "/new_user/") &&
1.63 + strcmp(getenv("REQUEST_URI"), "/newuser") && strcmp(getenv("REQUEST_URI"), "/newuser/") &&
1.64 + strcmp(getenv("REQUEST_URI"), "/next") && strcmp(getenv("REQUEST_URI"), "/next/") &&
1.65 + strcmp(getenv("REQUEST_URI"), "/open") && strcmp(getenv("REQUEST_URI"), "/open/") &&
1.66 + strcmp(getenv("REQUEST_URI"), "/settings") && strcmp(getenv("REQUEST_URI"), "/settings/") &&
1.67 + strcmp(getenv("REQUEST_URI"), "/top") && strcmp(getenv("REQUEST_URI"), "/top/") &&
1.68 + strcmp(getenv("REQUEST_URI"), "/upload") && strcmp(getenv("REQUEST_URI"), "/upload/") &&
1.69 + strcmp(getenv("REQUEST_URI"), "/user") && strcmp(getenv("REQUEST_URI"), "/user/") &&
1.70 + strcmp(getenv("REQUEST_URI"), "/welcome") && strcmp(getenv("REQUEST_URI"), "/welcome/") &&
1.71 + strcmp(getenv("REQUEST_URI"), "/welcome_back") && strcmp(getenv("REQUEST_URI"), "/welcome_back/") &&
1.72 + strcmp(getenv("REQUEST_URI"), "/welcomeback") && strcmp(getenv("REQUEST_URI"), "/welcomeback/"))) {
1.73 + /** STATUS | PUBLIC FILE > GRANT ACCESS **/
1.74 + GrantAccess();
1.75 +
1.76 + /* OTHERWISE, IF THE URI REQUEST IS FOR A PUBLIC SYSTEM FILE... */
1.77 + } else if (!(strncmp(getenv("REQUEST_URI"), "/dtd/", 5) &&
1.78 + strncmp(getenv("REQUEST_URI"), "/flash/", 7) &&
1.79 + strncmp(getenv("REQUEST_URI"), "/flex/", 6) &&
1.80 + strncmp(getenv("REQUEST_URI"), "/html/", 6) &&
1.81 + strncmp(getenv("REQUEST_URI"), "/icons/", 7) &&
1.82 + strncmp(getenv("REQUEST_URI"), "/images/", 8) &&
1.83 + strncmp(getenv("REQUEST_URI"), "/java/", 6) &&
1.84 + strncmp(getenv("REQUEST_URI"), "/javafx/", 8) &&
1.85 + strncmp(getenv("REQUEST_URI"), "/js/", 4) &&
1.86 + strncmp(getenv("REQUEST_URI"), "/markup/", 8) &&
1.87 + strncmp(getenv("REQUEST_URI"), "/style/", 7) &&
1.88 + strncmp(getenv("REQUEST_URI"), "/sys/", 5) &&
1.89 + strncmp(getenv("REQUEST_URI"), "/xhtml/", 7) &&
1.90 + strncmp(getenv("REQUEST_URI"), "/xml/", 5))) {
1.91 + /** STATUS | PUBLIC SYSTEM FILE > GRANT ACCESS **/
1.92 + GrantAccess();
1.93 +
1.94 + /* OTHERWISE, THE PROPER COOKIES ARE REQUIRED FOR ACCESS... */
1.95 + } else {
1.96 +
1.97 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
1.98 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
1.99 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
1.100 + DenyAccess();
1.101 +
1.102 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
1.103 + } else {
1.104 +
1.105 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
1.106 + char *cookie;
1.107 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
1.108 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
1.109 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.110 + DenyAccess();
1.111 + } else {
1.112 + char *variableName;
1.113 + if (!(variableName = malloc(cookieLength + 1))) {
1.114 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.115 + DenyAccess();
1.116 + } else {
1.117 + char *variableValue;
1.118 + if (!(variableValue = malloc(cookieLength + 1))) {
1.119 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.120 + DenyAccess();
1.121 +
1.122 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
1.123 + } else {
1.124 +
1.125 + /* PROCESS COOKIE DATA */
1.126 + char *login, *password;
1.127 + INT c, i;
1.128 + login = password = NULL;
1.129 + c = 0;
1.130 + strcpy(cookie, getenv("HTTP_COOKIE"));
1.131 + while ((c < cookieLength) && (cookie[c] != '\0')) {
1.132 + i = 0;
1.133 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
1.134 + variableName[i] = cookie[c];
1.135 + ++c;
1.136 + ++i;
1.137 + }
1.138 + variableName[i] = '\0';
1.139 + ++c;
1.140 + i = 0;
1.141 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
1.142 + variableValue[i] = cookie[c];
1.143 + ++c;
1.144 + ++i;
1.145 + }
1.146 + variableValue[i] = '\0';
1.147 + ++c;
1.148 + while ((c < cookieLength) && (cookie[c] == ' ')) {
1.149 + ++c;
1.150 + }
1.151 + if (!login && !strcmp(variableName, "login")) {
1.152 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
1.153 + strcpy(login, variableValue);
1.154 + }
1.155 + } else if (!password && !strcmp(variableName, "password")) {
1.156 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
1.157 + strcpy(password, variableValue);
1.158 + }
1.159 + }
1.160 + }
1.161 +
1.162 + /* IF LOGIN VALUE IS MISSING... */
1.163 + if (!login) {
1.164 + /** ERROR | LOGIN VALUE IS MISSING > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.165 + DenyAccess();
1.166 +
1.167 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
1.168 + } else {
1.169 +
1.170 + /* VERIFY LOGIN AND PASSWORD */
1.171 + char *directory;
1.172 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
1.173 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.174 + DenyAccess();
1.175 + } else {
1.176 + char *systemDirectory;
1.177 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
1.178 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.179 + DenyAccess();
1.180 + } else {
1.181 + strcpy(directory, DIRECTORY);
1.182 + strcat(directory, login);
1.183 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
1.184 + strcat(systemDirectory, login);
1.185 +
1.186 + /* IF DIRECTORY CAN'T BE ACCESSED... */
1.187 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
1.188 + /** ERROR | CANNOT ACCESS DIRECTORY > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.189 + DenyAccess();
1.190 +
1.191 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
1.192 + } else {
1.193 +
1.194 + /* ATTEMPT TO ACCESS PASSWORD FILE */
1.195 + char *passwordFileName;
1.196 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
1.197 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.198 + DenyAccess();
1.199 + } else {
1.200 + strcpy(passwordFileName, systemDirectory);
1.201 + strcat(passwordFileName, PASSWORD_FILE_NAME);
1.202 +
1.203 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
1.204 + if (access(passwordFileName, F_OK)) {
1.205 + /** ERROR | CANNOT ACCESS FILE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.206 + DenyAccess();
1.207 +
1.208 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
1.209 + } else {
1.210 +
1.211 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
1.212 + FILE *passwordFile;
1.213 +
1.214 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
1.215 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
1.216 + /** ERROR | CANNOT READ FILE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.217 + DenyAccess();
1.218 +
1.219 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
1.220 + } else {
1.221 + char *filePassword;
1.222 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
1.223 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE **/
1.224 + /** > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.225 + DenyAccess();
1.226 + } else {
1.227 + char c;
1.228 + i = 0;
1.229 +
1.230 + /* READ PASSWORD FROM PASSWORD FILE */
1.231 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
1.232 + filePassword[i] = c;
1.233 + ++i;
1.234 + }
1.235 + filePassword[i] = '\0';
1.236 + fclose(passwordFile);
1.237 +
1.238 + /* IF PASSWORD FAILS COMPARISON... */
1.239 + if (strcmp(filePassword, password)) {
1.240 + /** ERROR | PASSWORD FAILED > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.241 + DenyAccess();
1.242 +
1.243 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
1.244 + } else {
1.245 + char *loginDirectory;
1.246 + if (!(loginDirectory = malloc(strlen(login) + 3))) {
1.247 + /** ERROR | CANNOT ALLOCATE MEMORY FOR LOGIN DIRECTORY NAME **/
1.248 + /** > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.249 + DenyAccess();
1.250 + } else {
1.251 + strcpy(loginDirectory, "/");
1.252 + strcat(loginDirectory, login);
1.253 + strcat(loginDirectory, "/");
1.254 + if (strncmp(loginDirectory, getenv("REQUEST_URI"), (strlen(login) + 2))) {
1.255 + /** STATUS | FILE DOES NOT BELONG TO USER > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
1.256 + DenyAccess();
1.257 + } else {
1.258 + /** STATUS | FILE DOES BELONG TO USER > GRANT ACCESS **/
1.259 + GrantAccess();
1.260 + }
1.261 + free(loginDirectory);
1.262 + }
1.263 + }
1.264 + free(filePassword);
1.265 + }
1.266 + }
1.267 + }
1.268 + free(passwordFileName);
1.269 + }
1.270 + }
1.271 + free(systemDirectory);
1.272 + }
1.273 + free(directory);
1.274 + }
1.275 + free(login);
1.276 + }
1.277 + free(password);
1.278 + free(variableValue);
1.279 + }
1.280 + free(variableName);
1.281 + }
1.282 + free(cookie);
1.283 + }
1.284 + }
1.285 + }
1.286 + }
1.287 + }
1.288 + return 0;
1.289 +}
1.290 +
1.291 +/* FUNCTION | DENY ACCESS */
1.292 +static void DenyAccess(void) {
1.293 + printf("Status: 403\r\n\r\n");
1.294 +}
1.295 +
1.296 +/* FUNCTION | GRANT ACCESS */
1.297 +static void GrantAccess(void) {
1.298 + printf("Status: 200\r\n\r\n");
1.299 +}
1.300 +
1.301 +/***********************************************************************/
1.302 +/* Copyright and Trademark Statement */
1.303 +/***********************************************************************/
1.304 +/* */
1.305 +/* All original textual and graphical site content: */
1.306 +/* */
1.307 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
1.308 +/* reserved. Reproduction in whole or in part without written */
1.309 +/* permission is prohibited. interos and the interos logos are */
1.310 +/* trademarks of Brent Angeline and interos LLC. All other company, */
1.311 +/* product, and service names mentioned herein may be the properties */
1.312 +/* of their respective owners. Comments in the interos.org forums */
1.313 +/* are the properties of their respective authors. All software */
1.314 +/* developed in the forums is open source and belongs to everyone. */
1.315 +/* */
1.316 +/***********************************************************************/
1.317 +/* e-mail: info@interos.com */
1.318 +/***********************************************************************/
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/c/bottom_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
2.3 @@ -0,0 +1,514 @@
2.4 +/******************************************************/
2.5 +/* interos Standard Document Header - CGI in C */
2.6 +/******************************************************/
2.7 +/* URIs: https://interos.com/bottom */
2.8 +/* https://www.interos.com/bottom */
2.9 +/* Source: bottom.c */
2.10 +/* Description: FastCGI for interos bottom toolbar */
2.11 +/* Author: Brent Angeline */
2.12 +/* CGI: FastCGI in ISO/ANSI C */
2.13 +/******************************************************/
2.14 +
2.15 +/* PREPROCESSOR DIRECTIVES */
2.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
2.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
2.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
2.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
2.20 +#include <unistd.h> /* F_OK, access() */
2.21 +
2.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
2.23 +static void RedirectToLoginPanel(void);
2.24 +static void OutputBottom(char *status);
2.25 +static void OutputNewMenuButton(void);
2.26 +static void OutputSettingsMenuButton(void);
2.27 +static void BeginXHTMLOutput(void);
2.28 +static void BeginBottomOutput(void);
2.29 +static void FinishXHTMLOutput(void);
2.30 +
2.31 +/* BEGIN MAIN PROGRAM */
2.32 +int main(void) {
2.33 +
2.34 + /* BEGIN FASTCGI */
2.35 + while (FCGI_Accept() >= 0) {
2.36 +
2.37 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
2.38 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
2.39 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
2.40 + RedirectToLoginPanel();
2.41 +
2.42 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
2.43 + } else {
2.44 +
2.45 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
2.46 + char *cookie;
2.47 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
2.48 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
2.49 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
2.50 + RedirectToLoginPanel();
2.51 + } else {
2.52 + char *variableName;
2.53 + if (!(variableName = malloc(cookieLength + 1))) {
2.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
2.55 + RedirectToLoginPanel();
2.56 + } else {
2.57 + char *variableValue;
2.58 + if (!(variableValue = malloc(cookieLength + 1))) {
2.59 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
2.60 + RedirectToLoginPanel();
2.61 +
2.62 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
2.63 + } else {
2.64 +
2.65 + /* PROCESS COOKIE DATA */
2.66 + char *login, *password;
2.67 + INT c, i;
2.68 + login = password = NULL;
2.69 + c = 0;
2.70 + strcpy(cookie, getenv("HTTP_COOKIE"));
2.71 + while ((c < cookieLength) && (cookie[c] != '\0')) {
2.72 + i = 0;
2.73 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
2.74 + variableName[i] = cookie[c];
2.75 + ++c;
2.76 + ++i;
2.77 + }
2.78 + variableName[i] = '\0';
2.79 + ++c;
2.80 + i = 0;
2.81 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
2.82 + variableValue[i] = cookie[c];
2.83 + ++c;
2.84 + ++i;
2.85 + }
2.86 + variableValue[i] = '\0';
2.87 + ++c;
2.88 + while ((c < cookieLength) && (cookie[c] == ' ')) {
2.89 + ++c;
2.90 + }
2.91 + if (!login && !strcmp(variableName, "login")) {
2.92 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
2.93 + strcpy(login, variableValue);
2.94 + }
2.95 + } else if (!password && !strcmp(variableName, "password")) {
2.96 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
2.97 + strcpy(password, variableValue);
2.98 + }
2.99 + }
2.100 + }
2.101 +
2.102 + /* IF LOGIN VALUE IS MISSING... */
2.103 + if (!login) {
2.104 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
2.105 + RedirectToLoginPanel();
2.106 +
2.107 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
2.108 + } else {
2.109 +
2.110 + /* VERIFY LOGIN AND PASSWORD */
2.111 + char *directory;
2.112 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
2.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
2.114 + RedirectToLoginPanel();
2.115 + } else {
2.116 + char *systemDirectory;
2.117 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
2.118 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
2.119 + RedirectToLoginPanel();
2.120 + } else {
2.121 + strcpy(directory, DIRECTORY);
2.122 + strcat(directory, login);
2.123 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
2.124 + strcat(systemDirectory, login);
2.125 +
2.126 + /* IF DIRECTORY CAN'T BE ACCESSED... */
2.127 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
2.128 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
2.129 + RedirectToLoginPanel();
2.130 +
2.131 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
2.132 + } else {
2.133 +
2.134 + /* ATTEMPT TO ACCESS PASSWORD FILE */
2.135 + char *passwordFileName;
2.136 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
2.137 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
2.138 + RedirectToLoginPanel();
2.139 + } else {
2.140 + strcpy(passwordFileName, systemDirectory);
2.141 + strcat(passwordFileName, PASSWORD_FILE_NAME);
2.142 +
2.143 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
2.144 + if (access(passwordFileName, F_OK)) {
2.145 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
2.146 + RedirectToLoginPanel();
2.147 +
2.148 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
2.149 + } else {
2.150 +
2.151 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
2.152 + FILE *passwordFile;
2.153 +
2.154 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
2.155 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
2.156 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
2.157 + RedirectToLoginPanel();
2.158 +
2.159 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
2.160 + } else {
2.161 + char *filePassword;
2.162 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
2.163 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
2.164 + RedirectToLoginPanel();
2.165 + } else {
2.166 + char c;
2.167 + i = 0;
2.168 +
2.169 + /* READ PASSWORD FROM PASSWORD FILE */
2.170 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
2.171 + filePassword[i] = c;
2.172 + ++i;
2.173 + }
2.174 + filePassword[i] = '\0';
2.175 + fclose(passwordFile);
2.176 +
2.177 + /* IF PASSWORD FAILS COMPARISON... */
2.178 + if (strcmp(filePassword, password)) {
2.179 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
2.180 + RedirectToLoginPanel();
2.181 +
2.182 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
2.183 + } else {
2.184 +
2.185 + /* LOAD SETTINGS VALUES FROM FILES */
2.186 +
2.187 + /* LOAD interos BOTTOM COMPONENTS FROM FILES */
2.188 +
2.189 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
2.190 + char *status, *button;
2.191 + status = button = NULL;
2.192 +
2.193 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
2.194 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
2.195 + char *query;
2.196 + INT queryLength = strlen(getenv("QUERY_STRING"));
2.197 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
2.198 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
2.199 + } else {
2.200 + strcpy(query, getenv("QUERY_STRING"));
2.201 + free(variableName);
2.202 + if (!(variableName = malloc(queryLength + 1))) {
2.203 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
2.204 + } else {
2.205 + free(variableValue);
2.206 + if (!(variableValue = malloc(queryLength + 1))) {
2.207 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
2.208 +
2.209 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
2.210 + } else {
2.211 +
2.212 + /* PROCESS QUERY DATA */
2.213 + INT q = 0;
2.214 + i = 0;
2.215 + while ((q < queryLength) && (query[q] != '\0')) {
2.216 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
2.217 + variableName[i] = query[q];
2.218 + ++q;
2.219 + ++i;
2.220 + }
2.221 + variableName[i] = '\0';
2.222 + ++q;
2.223 + i = 0;
2.224 + while ((query[q] != '&') && (query[q] != '\0')) {
2.225 + variableValue[i] = query[q];
2.226 + ++q;
2.227 + ++i;
2.228 + }
2.229 + variableValue[i] = '\0';
2.230 + if (query[q] != '\0') {
2.231 + ++q;
2.232 + }
2.233 + if (!status && !strcmp(variableName, "status")) {
2.234 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
2.235 + strcpy(status, variableValue);
2.236 + }
2.237 + } else if (!button && !strcmp(variableName, "button")) {
2.238 + if ((button = malloc(strlen(variableValue) + 1)) != 0) {
2.239 + strcpy(button, variableValue);
2.240 + }
2.241 + }
2.242 + }
2.243 + }
2.244 + }
2.245 + free(query);
2.246 + }
2.247 + }
2.248 +
2.249 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
2.250 + if (button) {
2.251 + if (!strcmp(button, "new")) {
2.252 + OutputNewMenuButton();
2.253 + } else if (!strcmp(button, "settings")) {
2.254 + OutputSettingsMenuButton();
2.255 + } else {
2.256 +
2.257 + /* OUTPUT XHTML FOR interos BOTTOM BAR */
2.258 + OutputBottom(status);
2.259 + }
2.260 + } else {
2.261 +
2.262 + /* OUTPUT XHTML FOR interos BOTTOM BAR */
2.263 + OutputBottom(status);
2.264 + }
2.265 + free(button);
2.266 + free(status);
2.267 + }
2.268 + free(filePassword);
2.269 + }
2.270 + }
2.271 + }
2.272 + free(passwordFileName);
2.273 + }
2.274 + }
2.275 + free(systemDirectory);
2.276 + }
2.277 + free(directory);
2.278 + }
2.279 + free(login);
2.280 + }
2.281 + free(password);
2.282 + free(variableValue);
2.283 + }
2.284 + free(variableName);
2.285 + }
2.286 + free(cookie);
2.287 + }
2.288 + }
2.289 + }
2.290 + return 0;
2.291 +}
2.292 +
2.293 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
2.294 +static void RedirectToLoginPanel(void) {
2.295 + BeginXHTMLOutput();
2.296 + BeginBottomOutput();
2.297 + printf(" <a href=\"/login\" \n");
2.298 + printf(" target=\"_top\">click here to login for interos bottom toolbar</a>\n");
2.299 + FinishXHTMLOutput();
2.300 +}
2.301 +
2.302 +/* FUNCTION | OUTPUT XHTML FOR interos BOTTOM TOOLBAR */
2.303 +static void OutputBottom(char *status) {
2.304 + BeginXHTMLOutput();
2.305 + BeginBottomOutput();
2.306 + printf(" <table id=\"bottomToolbar\" width=\"100%%\" \n");
2.307 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2.308 + printf(" <tr>\n");
2.309 + printf(" <td width=\"72\" \n");
2.310 + printf(" height=\"72\"><center>\n");
2.311 + printf(" <a id=\"newButton\" \n");
2.312 + printf(" href=\"/interos?menu=new\" \n");
2.313 + printf(" style=\"padding: 26px 0 27px\" \n");
2.314 + printf(" target=\"_top\"><strong>new</strong></a>\n");
2.315 + printf(" </center></td>\n");
2.316 + printf(" <td><center>\n");
2.317 + printf(" <span class=\"hidden\">|</span> \n");
2.318 + printf(" </center></td>\n");
2.319 + printf(" <td width=\"72\" \n");
2.320 + printf(" height=\"72\"><center>\n");
2.321 + printf(" <a id=\"settingsButton\" \n");
2.322 + printf(" href=\"/interos?menu=settings\" \n");
2.323 + printf(" style=\"padding: 26px 0 27px\" \n");
2.324 + printf(" target=\"_top\"><strong>settings</strong></a>\n");
2.325 + printf(" </center></td>\n");
2.326 + printf(" </tr>\n");
2.327 + printf(" </table>\n");
2.328 + FinishXHTMLOutput();
2.329 +}
2.330 +
2.331 +/* FUNCTION | OUTPUT XHTML FOR NEW MENU BUTTON */
2.332 +static void OutputNewMenuButton(void) {
2.333 + BeginXHTMLOutput();
2.334 + printf(" <!--======================================================-->\n");
2.335 + printf(" <!-- interos Standard Document Header - Markup -->\n");
2.336 + printf(" <!--======================================================-->\n");
2.337 + printf(" <!-- URIs: https://interos.com/bottom?button=new -->\n");
2.338 + printf(" <!-- https://www.interos.com/bottom?button=new -->\n");
2.339 + printf(" <!-- Title: interos new menu button -->\n");
2.340 + printf(" <!-- Author: Brent Angeline -->\n");
2.341 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
2.342 + printf(" <!--======================================================-->\n");
2.343 + printf(" <head>\n");
2.344 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
2.345 + printf(" <meta name=\"title\" content=\"interos new menu button\" />\n");
2.346 + printf(" <meta name=\"description\" content=\"button for interos new menu\" />\n");
2.347 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
2.348 + printf(" <meta name=\"copyright\" \n");
2.349 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
2.350 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
2.351 + printf(" <title>interos new menu button</title>\n");
2.352 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
2.353 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
2.354 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
2.355 + printf(" media=\"screen, projection\" />\n");
2.356 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
2.357 + printf(" </head>\n");
2.358 + printf(" <body id=\"body\">\n");
2.359 + printf(" <center>\n");
2.360 + printf(" <table id=\"bottomToolbarFaded\" width=\"100%%\" \n");
2.361 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2.362 + printf(" <tr>\n");
2.363 + printf(" <td width=\"72\" \n");
2.364 + printf(" height=\"72\"><center>\n");
2.365 + printf(" <a id=\"newMenuButton\" \n");
2.366 + printf(" href=\"/main\" \n");
2.367 + printf(" style=\"padding: 26px 0 27px\" \n");
2.368 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
2.369 + printf(" </center></td>\n");
2.370 + printf(" <td><center>\n");
2.371 + printf(" <span class=\"hidden\">|</span> \n");
2.372 + printf(" </center></td>\n");
2.373 + printf(" <td id=\"bottomToolbarCornerFaded\" \n");
2.374 + printf(" width=\"72\" \n");
2.375 + printf(" height=\"72\"><p>\n");
2.376 + printf(" <br />\n");
2.377 + printf(" </p></td>\n");
2.378 + printf(" </tr>\n");
2.379 + printf(" </table>\n");
2.380 + FinishXHTMLOutput();
2.381 +}
2.382 +
2.383 +/* FUNCTION | OUTPUT XHTML FOR SETTINGS MENU BUTTON */
2.384 +static void OutputSettingsMenuButton(void) {
2.385 + BeginXHTMLOutput();
2.386 + printf(" <!--===========================================================-->\n");
2.387 + printf(" <!-- interos Standard Document Header - Markup -->\n");
2.388 + printf(" <!--===========================================================-->\n");
2.389 + printf(" <!-- URIs: https://interos.com/bottom?button=settings -->\n");
2.390 + printf(" <!-- https://www.interos.com/bottom?button=settings -->\n");
2.391 + printf(" <!-- Title: interos settings menu button -->\n");
2.392 + printf(" <!-- Author: Brent Angeline -->\n");
2.393 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
2.394 + printf(" <!--===========================================================-->\n");
2.395 + printf(" <head>\n");
2.396 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
2.397 + printf(" <meta name=\"title\" content=\"interos settings menu button\" />\n");
2.398 + printf(" <meta name=\"description\" content=\"button for interos settings menu\" />\n");
2.399 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
2.400 + printf(" <meta name=\"copyright\" \n");
2.401 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
2.402 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
2.403 + printf(" <title>interos settings menu button</title>\n");
2.404 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
2.405 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
2.406 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
2.407 + printf(" media=\"screen, projection\" />\n");
2.408 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
2.409 + printf(" </head>\n");
2.410 + printf(" <body id=\"body\">\n");
2.411 + printf(" <center>\n");
2.412 + printf(" <table id=\"bottomToolbarFaded\" width=\"100%%\" \n");
2.413 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2.414 + printf(" <tr>\n");
2.415 + printf(" <td id=\"bottomToolbarCornerFaded\" \n");
2.416 + printf(" width=\"72\" \n");
2.417 + printf(" height=\"72\"><p>\n");
2.418 + printf(" <br />\n");
2.419 + printf(" </p></td>\n");
2.420 + printf(" <td><center>\n");
2.421 + printf(" <span class=\"hidden\">|</span> \n");
2.422 + printf(" </center></td>\n");
2.423 + printf(" <td width=\"72\" \n");
2.424 + printf(" height=\"72\"><center>\n");
2.425 + printf(" <a id=\"settingsMenuButton\" \n");
2.426 + printf(" href=\"/main\" \n");
2.427 + printf(" style=\"padding: 26px 0 27px\" \n");
2.428 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
2.429 + printf(" </center></td>\n");
2.430 + printf(" </tr>\n");
2.431 + printf(" </table>\n");
2.432 + FinishXHTMLOutput();
2.433 +}
2.434 +
2.435 +/* FUNCTION | BEGIN XHTML OUTPUT */
2.436 +static void BeginXHTMLOutput(void) {
2.437 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
2.438 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
2.439 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
2.440 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
2.441 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
2.442 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
2.443 +}
2.444 +
2.445 +/* FUNCTION | BEGIN interos BOTTOM TOOLBAR OUTPUT */
2.446 +static void BeginBottomOutput(void) {
2.447 + printf(" <!--=================================================-->\n");
2.448 + printf(" <!-- interos Standard Document Header - Markup -->\n");
2.449 + printf(" <!--=================================================-->\n");
2.450 + printf(" <!-- URIs: https://interos.com/bottom -->\n");
2.451 + printf(" <!-- https://www.interos.com/bottom -->\n");
2.452 + printf(" <!-- Title: interos bottom toolbar -->\n");
2.453 + printf(" <!-- Author: Brent Angeline -->\n");
2.454 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
2.455 + printf(" <!--=================================================-->\n");
2.456 + printf(" <head>\n");
2.457 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
2.458 + printf(" <meta name=\"title\" content=\"interos bottom toolbar\" />\n");
2.459 + printf(" <meta name=\"description\" content=\"bottom toolbar for interos\" />\n");
2.460 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
2.461 + printf(" <meta name=\"copyright\" \n");
2.462 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
2.463 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
2.464 + printf(" <title>interos bottom</title>\n");
2.465 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
2.466 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
2.467 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
2.468 + printf(" media=\"screen, projection\" />\n");
2.469 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
2.470 + printf(" </head>\n");
2.471 + printf(" <body id=\"body\">\n");
2.472 + printf(" <center>\n");
2.473 +}
2.474 +
2.475 +/* FUNCTION | FINISH XHTML OUTPUT */
2.476 +static void FinishXHTMLOutput(void) {
2.477 + printf(" </center>\n");
2.478 + printf(" </body>\n");
2.479 + printf(" <!--=====================================================================-->\n");
2.480 + printf(" <!-- Copyright and Trademark Statement -->\n");
2.481 + printf(" <!--=====================================================================-->\n");
2.482 + printf(" <!-- -->\n");
2.483 + printf(" <!-- All original textual and graphical site content: -->\n");
2.484 + printf(" <!-- -->\n");
2.485 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
2.486 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
2.487 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
2.488 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
2.489 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
2.490 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
2.491 + printf(" <!-- are the properties of their respective authors. All software -->\n");
2.492 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
2.493 + printf(" <!-- -->\n");
2.494 + printf(" <!--=====================================================================-->\n");
2.495 + printf(" <!-- e-mail: info@interos.com -->\n");
2.496 + printf(" <!--=====================================================================-->\n");
2.497 + printf("</html>");
2.498 +}
2.499 +
2.500 +/***********************************************************************/
2.501 +/* Copyright and Trademark Statement */
2.502 +/***********************************************************************/
2.503 +/* */
2.504 +/* All original textual and graphical site content: */
2.505 +/* */
2.506 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
2.507 +/* reserved. Reproduction in whole or in part without written */
2.508 +/* permission is prohibited. interos and the interos logos are */
2.509 +/* trademarks of Brent Angeline and interos LLC. All other company, */
2.510 +/* product, and service names mentioned herein may be the properties */
2.511 +/* of their respective owners. Comments in the interos.org forums */
2.512 +/* are the properties of their respective authors. All software */
2.513 +/* developed in the forums is open source and belongs to everyone. */
2.514 +/* */
2.515 +/***********************************************************************/
2.516 +/* e-mail: info@interos.com */
2.517 +/***********************************************************************/
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/c/browse_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
3.3 @@ -0,0 +1,374 @@
3.4 +/**************************************************/
3.5 +/* interos Standard Document Header - CGI in C */
3.6 +/**************************************************/
3.7 +/* URIs: https://interos.com/browse */
3.8 +/* https://www.interos.com/browse */
3.9 +/* Source: browse.c */
3.10 +/* Description: FastCGI for interos browse */
3.11 +/* Author: Brent Angeline */
3.12 +/* CGI: FastCGI in ISO/ANSI C */
3.13 +/**************************************************/
3.14 +
3.15 +/* PREPROCESSOR DIRECTIVES */
3.16 +#include "fcgi_stdio.h" /* EOF, FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
3.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
3.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
3.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
3.20 +#include <unistd.h> /* F_OK, access() */
3.21 +
3.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
3.23 +static void RedirectToLoginPanel(void);
3.24 +static void BeginXHTMLOutput(void);
3.25 +static void FinishXHTMLOutput(void);
3.26 +
3.27 +/* BEGIN MAIN PROGRAM */
3.28 +int main(void) {
3.29 +
3.30 + /* BEGIN FASTCGI */
3.31 + while (FCGI_Accept() >= 0) {
3.32 +
3.33 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
3.34 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
3.35 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
3.36 + RedirectToLoginPanel();
3.37 +
3.38 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
3.39 + } else {
3.40 +
3.41 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
3.42 + char *cookie;
3.43 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
3.44 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
3.45 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
3.46 + RedirectToLoginPanel();
3.47 + } else {
3.48 + char *variableName;
3.49 + if (!(variableName = malloc(cookieLength + 1))) {
3.50 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
3.51 + RedirectToLoginPanel();
3.52 + } else {
3.53 + char *variableValue;
3.54 + if (!(variableValue = malloc(cookieLength + 1))) {
3.55 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
3.56 + RedirectToLoginPanel();
3.57 +
3.58 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
3.59 + } else {
3.60 +
3.61 + /* PROCESS COOKIE DATA */
3.62 + char *login, *password;
3.63 + INT c, i;
3.64 + login = password = NULL;
3.65 + c = 0;
3.66 + strcpy(cookie, getenv("HTTP_COOKIE"));
3.67 + while ((c < cookieLength) && (cookie[c] != '\0')) {
3.68 + i = 0;
3.69 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
3.70 + variableName[i] = cookie[c];
3.71 + ++c;
3.72 + ++i;
3.73 + }
3.74 + variableName[i] = '\0';
3.75 + ++c;
3.76 + i = 0;
3.77 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
3.78 + variableValue[i] = cookie[c];
3.79 + ++c;
3.80 + ++i;
3.81 + }
3.82 + variableValue[i] = '\0';
3.83 + ++c;
3.84 + while ((c < cookieLength) && (cookie[c] == ' ')) {
3.85 + ++c;
3.86 + }
3.87 + if (!login && !strcmp(variableName, "login")) {
3.88 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
3.89 + strcpy(login, variableValue);
3.90 + }
3.91 + } else if (!password && !strcmp(variableName, "password")) {
3.92 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
3.93 + strcpy(password, variableValue);
3.94 + }
3.95 + }
3.96 + }
3.97 +
3.98 + /* IF LOGIN VALUE IS MISSING... */
3.99 + if (!login) {
3.100 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
3.101 + RedirectToLoginPanel();
3.102 +
3.103 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
3.104 + } else {
3.105 +
3.106 + /* VERIFY LOGIN AND PASSWORD */
3.107 + char *directory;
3.108 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
3.109 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
3.110 + RedirectToLoginPanel();
3.111 + } else {
3.112 + char *systemDirectory;
3.113 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
3.114 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
3.115 + RedirectToLoginPanel();
3.116 + } else {
3.117 + strcpy(directory, DIRECTORY);
3.118 + strcat(directory, login);
3.119 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
3.120 + strcat(systemDirectory, login);
3.121 +
3.122 + /* IF DIRECTORY CAN'T BE ACCESSED... */
3.123 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
3.124 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
3.125 + RedirectToLoginPanel();
3.126 +
3.127 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
3.128 + } else {
3.129 +
3.130 + /* ATTEMPT TO ACCESS PASSWORD FILE */
3.131 + char *passwordFileName;
3.132 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
3.133 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
3.134 + RedirectToLoginPanel();
3.135 + } else {
3.136 + strcpy(passwordFileName, systemDirectory);
3.137 + strcat(passwordFileName, PASSWORD_FILE_NAME);
3.138 +
3.139 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
3.140 + if (access(passwordFileName, F_OK)) {
3.141 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
3.142 + RedirectToLoginPanel();
3.143 +
3.144 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
3.145 + } else {
3.146 +
3.147 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
3.148 + FILE *passwordFile;
3.149 +
3.150 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
3.151 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
3.152 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
3.153 + RedirectToLoginPanel();
3.154 +
3.155 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
3.156 + } else {
3.157 + char *filePassword;
3.158 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
3.159 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
3.160 + RedirectToLoginPanel();
3.161 + } else {
3.162 + char c;
3.163 + i = 0;
3.164 +
3.165 + /* READ PASSWORD FROM PASSWORD FILE */
3.166 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
3.167 + filePassword[i] = c;
3.168 + ++i;
3.169 + }
3.170 + filePassword[i] = '\0';
3.171 + fclose(passwordFile);
3.172 +
3.173 + /* IF PASSWORD FAILS COMPARISON... */
3.174 + if (strcmp(filePassword, password)) {
3.175 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
3.176 + RedirectToLoginPanel();
3.177 +
3.178 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
3.179 + } else {
3.180 +
3.181 + /* LOAD SETTINGS VALUES FROM FILE(S) */
3.182 +
3.183 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
3.184 + char *address, *search;
3.185 + address = search = NULL;
3.186 +
3.187 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
3.188 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
3.189 + char *query;
3.190 + INT queryLength = strlen(getenv("QUERY_STRING"));
3.191 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
3.192 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
3.193 + } else {
3.194 + strcpy(query, getenv("QUERY_STRING"));
3.195 + free(variableName);
3.196 + if (!(variableName = malloc(queryLength + 1))) {
3.197 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
3.198 + } else {
3.199 + free(variableValue);
3.200 + if (!(variableValue = malloc(queryLength + 1))) {
3.201 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
3.202 +
3.203 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
3.204 + } else {
3.205 +
3.206 + /* PROCESS QUERY DATA */
3.207 + INT q = 0;
3.208 + i = 0;
3.209 + while ((q < queryLength) && (query[q] != '\0')) {
3.210 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
3.211 + variableName[i] = query[q];
3.212 + ++q;
3.213 + ++i;
3.214 + }
3.215 + variableName[i] = '\0';
3.216 + ++q;
3.217 + i = 0;
3.218 + while ((query[q] != '&') && (query[q] != '\0')) {
3.219 + variableValue[i] = query[q];
3.220 + ++q;
3.221 + ++i;
3.222 + }
3.223 + variableValue[i] = '\0';
3.224 + if (query[q] != '\0') {
3.225 + ++q;
3.226 + }
3.227 + if (!address && !strcmp(variableName, "address")) {
3.228 + if ((address = malloc(strlen(variableValue) + 1)) != 0) {
3.229 + strcpy(address, variableValue);
3.230 + }
3.231 + } else if (!search && !strcmp(variableName, "search")) {
3.232 + if ((search = malloc(strlen(variableValue) + 1)) != 0) {
3.233 + strcpy(search, variableValue);
3.234 + for (c = 0; c < strlen(search); ++c) {
3.235 + if (search[c] == ' ') {
3.236 + search[c] = '+';
3.237 + }
3.238 + }
3.239 + }
3.240 + }
3.241 + }
3.242 + free(variableValue);
3.243 + variableValue = NULL;
3.244 + }
3.245 + free(variableName);
3.246 + variableName = NULL;
3.247 + }
3.248 + free(query);
3.249 + }
3.250 + }
3.251 +
3.252 + /* IF THIS IS A CONTINUED SESSION... */
3.253 +
3.254 + /* LOAD SESSION FROM FILE */
3.255 +
3.256 + /* OUTPUT GUI COMPONENTS BASED ON VARIABLES */
3.257 + printf("Content-type: text/html\n\n");
3.258 + printf("<!--=======================================================-->\n");
3.259 + printf("<!-- interos.com Standard Document Model Header - Markup -->\n");
3.260 + printf("<!--=======================================================-->\n");
3.261 + printf("<!-- URIs: https://www.interos.com/sys/browser -->\n");
3.262 + printf("<!-- interos.com/sys/browser -->\n");
3.263 + printf("<!-- Title: interos browser -->\n");
3.264 + printf("<!-- Author: Brent Angeline -->\n");
3.265 + printf("<!-- Markup: Dynamic XHTML -->\n");
3.266 + printf("<!--=======================================================-->\n");
3.267 + printf("<html>");
3.268 + printf("<head>");
3.269 + printf("<title>interos > %s > browser</title>", login);
3.270 + printf("</head>");
3.271 + printf("<frameset rows=\"72,*,72\" border=\"0\">");
3.272 + printf("<frame name=\"top\" src=\"top\" scrolling=\"no\" noresize=\"noresize\">");
3.273 + if (address != NULL) {
3.274 + printf("<frame name=\"content\" src=\"http://%s\" scrolling=\"yes\" noresize=\"noresize\">", address);
3.275 + } else {
3.276 + printf("<frame name=\"content\" src=\"http://www.google.com/search?hl=en&q=%s&btnG=Google+Search\" scrolling=\"yes\" noresize=\"noresize\">", search);
3.277 + }
3.278 + printf("<frame name=\"bottom\" src=\"bottom\" scrolling=\"no\" noresize=\"noresize\">");
3.279 + printf("</frameset>");
3.280 + printf("<noframes>");
3.281 + printf("</noframes>");
3.282 + printf("</html>\n");
3.283 + printf("<!--===========================================================================-->\n");
3.284 + printf("<!-- Copyright and Trademark Legal Notice -->\n");
3.285 + printf("<!--===========================================================================-->\n");
3.286 + printf("<!-- -->\n");
3.287 + printf("<!-- All textual and graphical site content: -->\n");
3.288 + printf("<!-- -->\n");
3.289 + printf("<!-- Copyright (C) 2001 - 2010 Brent Angeline / interos.com / interos. -->\n");
3.290 + printf("<!-- Reproduction in whole or part without written permission is prohibited. -->\n");
3.291 + printf("<!-- All rights reserved. interos.com and the interos logos are -->\n");
3.292 + printf("<!-- trademarks of Brent Angeline / interos.com / interos. -->\n");
3.293 + printf("<!-- All other company names, product names and services mentioned herein -->\n");
3.294 + printf("<!-- may be the property of their respective owners. -->\n");
3.295 + printf("<!-- -->\n");
3.296 + printf("<!--===========================================================================-->\n");
3.297 + printf("<!-- e-mail: info@interos.com -->\n");
3.298 + printf("<!--===========================================================================-->");
3.299 +
3.300 + free(address);
3.301 + free(search);
3.302 + }
3.303 + free(filePassword);
3.304 + }
3.305 + }
3.306 + }
3.307 + free(passwordFileName);
3.308 + }
3.309 + }
3.310 + free(systemDirectory);
3.311 + }
3.312 + free(directory);
3.313 + }
3.314 + free(login);
3.315 + }
3.316 + free(password);
3.317 + free(variableValue);
3.318 + }
3.319 + free(variableName);
3.320 + }
3.321 + free(cookie);
3.322 + }
3.323 + }
3.324 + }
3.325 + return 0;
3.326 +}
3.327 +
3.328 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
3.329 +static void RedirectToLoginPanel(void) {
3.330 + printf("Location: login\r\n\r\n");
3.331 +}
3.332 +
3.333 +static void BeginXHTMLOutput(void) {
3.334 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
3.335 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
3.336 +}
3.337 +
3.338 +static void FinishXHTMLOutput(void) {
3.339 + printf(" <!--=====================================================================-->\n");
3.340 + printf(" <!-- Copyright and Trademark Statement -->\n");
3.341 + printf(" <!--=====================================================================-->\n");
3.342 + printf(" <!-- -->\n");
3.343 + printf(" <!-- All original textual and graphical site content: -->\n");
3.344 + printf(" <!-- -->\n");
3.345 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
3.346 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
3.347 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
3.348 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
3.349 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
3.350 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
3.351 + printf(" <!-- are the properties of their respective authors. All software -->\n");
3.352 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
3.353 + printf(" <!-- -->\n");
3.354 + printf(" <!--=====================================================================-->\n");
3.355 + printf(" <!-- e-mail: info@interos.com -->\n");
3.356 + printf(" <!--=====================================================================-->\n");
3.357 + printf("</html>");
3.358 +}
3.359 +
3.360 +/***********************************************************************/
3.361 +/* Copyright and Trademark Statement */
3.362 +/***********************************************************************/
3.363 +/* */
3.364 +/* All original textual and graphical site content: */
3.365 +/* */
3.366 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
3.367 +/* reserved. Reproduction in whole or in part without written */
3.368 +/* permission is prohibited. interos and the interos logos are */
3.369 +/* trademarks of Brent Angeline and interos LLC. All other company, */
3.370 +/* product, and service names mentioned herein may be the properties */
3.371 +/* of their respective owners. Comments in the interos.org forums */
3.372 +/* are the properties of their respective authors. All software */
3.373 +/* developed in the forums is open source and belongs to everyone. */
3.374 +/* */
3.375 +/***********************************************************************/
3.376 +/* e-mail: info@interos.com */
3.377 +/***********************************************************************/
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/c/content_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
4.3 @@ -0,0 +1,390 @@
4.4 +/***************************************************/
4.5 +/* interos Standard Document Header - CGI in C */
4.6 +/***************************************************/
4.7 +/* URIs: https://interos.com/content */
4.8 +/* https://www.interos.com/content */
4.9 +/* Source: content.c */
4.10 +/* Description: FastCGI for interos content */
4.11 +/* Author: Brent Angeline */
4.12 +/* CGI: FastCGI in ISO/ANSI C */
4.13 +/***************************************************/
4.14 +
4.15 +/* PREPROCESSOR DIRECTIVES */
4.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
4.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
4.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
4.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
4.20 +#include <unistd.h> /* F_OK, access() */
4.21 +
4.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
4.23 +static void RedirectToLoginPanel(void);
4.24 +static void OutputContent(const char *variableName, char *variableValue);
4.25 +
4.26 +/* BEGIN MAIN PROGRAM */
4.27 +int main(void) {
4.28 +
4.29 + /* BEGIN FASTCGI */
4.30 + while (FCGI_Accept() >= 0) {
4.31 +
4.32 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
4.33 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
4.34 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
4.35 + RedirectToLoginPanel();
4.36 +
4.37 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
4.38 + } else {
4.39 +
4.40 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
4.41 + char *cookie;
4.42 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
4.43 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
4.44 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
4.45 + RedirectToLoginPanel();
4.46 + } else {
4.47 + char *variableName;
4.48 + if (!(variableName = malloc(cookieLength + 1))) {
4.49 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
4.50 + RedirectToLoginPanel();
4.51 + } else {
4.52 + char *variableValue;
4.53 + if (!(variableValue = malloc(cookieLength + 1))) {
4.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
4.55 + RedirectToLoginPanel();
4.56 +
4.57 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
4.58 + } else {
4.59 +
4.60 + /* PROCESS COOKIE DATA */
4.61 + char *login, *password;
4.62 + INT c, i;
4.63 + login = password = NULL;
4.64 + c = 0;
4.65 + strcpy(cookie, getenv("HTTP_COOKIE"));
4.66 + while ((c < cookieLength) && (cookie[c] != '\0')) {
4.67 + i = 0;
4.68 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
4.69 + variableName[i] = cookie[c];
4.70 + ++c;
4.71 + ++i;
4.72 + }
4.73 + variableName[i] = '\0';
4.74 + ++c;
4.75 + i = 0;
4.76 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
4.77 + variableValue[i] = cookie[c];
4.78 + ++c;
4.79 + ++i;
4.80 + }
4.81 + variableValue[i] = '\0';
4.82 + ++c;
4.83 + while ((c < cookieLength) && (cookie[c] == ' ')) {
4.84 + ++c;
4.85 + }
4.86 + if (!login && !strcmp(variableName, "login")) {
4.87 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
4.88 + strcpy(login, variableValue);
4.89 + }
4.90 + } else if (!password && !strcmp(variableName, "password")) {
4.91 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
4.92 + strcpy(password, variableValue);
4.93 + }
4.94 + }
4.95 + }
4.96 +
4.97 + /* IF LOGIN VALUE IS MISSING... */
4.98 + if (!login) {
4.99 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
4.100 + RedirectToLoginPanel();
4.101 +
4.102 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
4.103 + } else {
4.104 +
4.105 + /* VERIFY LOGIN AND PASSWORD */
4.106 + char *directory;
4.107 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
4.108 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
4.109 + RedirectToLoginPanel();
4.110 + } else {
4.111 + char *systemDirectory;
4.112 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
4.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
4.114 + RedirectToLoginPanel();
4.115 + } else {
4.116 + strcpy(directory, DIRECTORY);
4.117 + strcat(directory, login);
4.118 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
4.119 + strcat(systemDirectory, login);
4.120 +
4.121 + /* IF DIRECTORY CAN'T BE ACCESSED... */
4.122 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
4.123 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
4.124 + RedirectToLoginPanel();
4.125 +
4.126 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
4.127 + } else {
4.128 +
4.129 + /* ATTEMPT TO ACCESS PASSWORD FILE */
4.130 + char *passwordFileName;
4.131 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
4.132 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
4.133 + RedirectToLoginPanel();
4.134 + } else {
4.135 + strcpy(passwordFileName, systemDirectory);
4.136 + strcat(passwordFileName, PASSWORD_FILE_NAME);
4.137 +
4.138 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
4.139 + if (access(passwordFileName, F_OK)) {
4.140 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
4.141 + RedirectToLoginPanel();
4.142 +
4.143 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
4.144 + } else {
4.145 +
4.146 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
4.147 + FILE *passwordFile;
4.148 +
4.149 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
4.150 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
4.151 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
4.152 + RedirectToLoginPanel();
4.153 +
4.154 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
4.155 + } else {
4.156 + char *filePassword;
4.157 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
4.158 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
4.159 + RedirectToLoginPanel();
4.160 + } else {
4.161 + char c;
4.162 + i = 0;
4.163 +
4.164 + /* READ PASSWORD FROM PASSWORD FILE */
4.165 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
4.166 + filePassword[i] = c;
4.167 + ++i;
4.168 + }
4.169 + filePassword[i] = '\0';
4.170 + fclose(passwordFile);
4.171 +
4.172 + /* IF PASSWORD FAILS COMPARISON... */
4.173 + if (strcmp(filePassword, password)) {
4.174 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
4.175 + RedirectToLoginPanel();
4.176 +
4.177 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
4.178 + } else {
4.179 +
4.180 + /* LOAD SETTINGS VALUES FROM FILES */
4.181 +
4.182 + /* LOAD interos CONTENT COMPONENTS FROM FILES */
4.183 +
4.184 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
4.185 + char *new, *open, *text_file, *status;
4.186 + new = open = text_file = status = NULL;
4.187 +
4.188 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
4.189 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
4.190 + char *query;
4.191 + INT queryLength = strlen(getenv("QUERY_STRING"));
4.192 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
4.193 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
4.194 + } else {
4.195 + free(variableName);
4.196 + strcpy(query, getenv("QUERY_STRING"));
4.197 + if (!(variableName = malloc(queryLength + 1))) {
4.198 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
4.199 + } else {
4.200 + free(variableValue);
4.201 + if (!(variableValue = malloc(queryLength + 1))) {
4.202 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
4.203 +
4.204 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
4.205 + } else {
4.206 +
4.207 + /* PROCESS QUERY DATA */
4.208 + INT q = 0;
4.209 + i = 0;
4.210 + while ((q < queryLength) && (query[q] != '\0')) {
4.211 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
4.212 + variableName[i] = query[q];
4.213 + ++q;
4.214 + ++i;
4.215 + }
4.216 + variableName[i] = '\0';
4.217 + ++q;
4.218 + i = 0;
4.219 + while ((query[q] != '&') && (query[q] != '\0')) {
4.220 + variableValue[i] = query[q];
4.221 + ++q;
4.222 + ++i;
4.223 + }
4.224 + variableValue[i] = '\0';
4.225 + if (query[q] != '\0') {
4.226 + ++q;
4.227 + }
4.228 + if (!new && !strcmp(variableName, "new")) {
4.229 + if ((new = malloc(strlen(variableValue) + 1)) != 0) {
4.230 + strcpy(new, variableValue);
4.231 + }
4.232 + } else if (!open && !strcmp(variableName, "open")) {
4.233 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
4.234 + strcpy(open, variableValue);
4.235 + }
4.236 + } else if (!text_file && !strcmp(variableName, "text_file")) {
4.237 + if ((text_file = malloc(strlen(variableValue) + 1)) != 0) {
4.238 + strcpy(text_file, variableValue);
4.239 + }
4.240 + } else if (!status && !strcmp(variableName, "status")) {
4.241 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
4.242 + strcpy(status, variableValue);
4.243 + }
4.244 + }
4.245 + }
4.246 + free(variableValue);
4.247 + variableValue = NULL;
4.248 + }
4.249 + free(variableName);
4.250 + variableName = NULL;
4.251 + }
4.252 + free(query);
4.253 + }
4.254 + }
4.255 +
4.256 + /* OUTPUT XHTML FOR interos CONTENT */
4.257 + if (new) {
4.258 + OutputContent("new", new);
4.259 + } else if (open) {
4.260 + OutputContent("open", open);
4.261 + } else if (text_file) {
4.262 + OutputContent("text_file", text_file);
4.263 + } else if (status) {
4.264 + OutputContent("status", status);
4.265 + } else {
4.266 + OutputContent(NULL, NULL);
4.267 + }
4.268 + free(status);
4.269 + free(text_file);
4.270 + free(open);
4.271 + free(new);
4.272 + }
4.273 + free(filePassword);
4.274 + }
4.275 + }
4.276 + }
4.277 + free(passwordFileName);
4.278 + }
4.279 + }
4.280 + free(systemDirectory);
4.281 + }
4.282 + free(directory);
4.283 + }
4.284 + free(login);
4.285 + }
4.286 + free(password);
4.287 + free(variableValue);
4.288 + }
4.289 + free(variableName);
4.290 + }
4.291 + free(cookie);
4.292 + }
4.293 + }
4.294 + }
4.295 + return 0;
4.296 +}
4.297 +
4.298 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
4.299 +static void RedirectToLoginPanel(void) {
4.300 + printf("Location: login\r\n\r\n");
4.301 +}
4.302 +
4.303 +/* FUNCTION | OUTPUT XHTML FOR interos CONTENT */
4.304 +static void OutputContent(const char *variableName, char *variableValue) {
4.305 + printf("Content-Type: text/html\r\n\r\n");
4.306 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
4.307 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/content.css\"?>\n");
4.308 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
4.309 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
4.310 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
4.311 + printf(" <!--=================================================-->\n");
4.312 + printf(" <!-- interos Standard Document Header - Markup -->\n");
4.313 + printf(" <!--=================================================-->\n");
4.314 + printf(" <!-- URIs: https://interos.com/content -->\n");
4.315 + printf(" <!-- https://www.interos.com/content -->\n");
4.316 + printf(" <!-- Title: interos content -->\n");
4.317 + printf(" <!-- Author: Brent Angeline -->\n");
4.318 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
4.319 + printf(" <!--=================================================-->\n");
4.320 + printf(" <head>\n");
4.321 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
4.322 + printf(" <meta name=\"title\" content=\"interos content\" />\n");
4.323 + printf(" <meta name=\"description\" content=\"middle frame for interos content\" />\n");
4.324 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
4.325 + printf(" <meta name=\"copyright\" \n");
4.326 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
4.327 + printf(" <meta name=\"robots\" content=\"noindex,nofollow,noarchive\" />\n");
4.328 + printf(" <title>interos content</title>\n");
4.329 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
4.330 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
4.331 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/content.css\" />\n");
4.332 + printf(" <script type=\"text/javascript\" src=\"/js/content.js\"></script>\n");
4.333 + printf(" </head>\n");
4.334 + printf(" <body>\n");
4.335 + printf(" <div id=\"content\">\n");
4.336 + if (variableName && variableValue) {
4.337 + if (!strcmp(variableName, "new")) {
4.338 + if (!strcmp(variableValue, "text_file")) {
4.339 + printf(" <applet code=\"text_editor\" \n");
4.340 + printf(" archive=\"/java/text_editor.jar,/java/interos_connect.jar\" \n");
4.341 + printf(" width=\"100%%\" \n");
4.342 + printf(" height=\"100%%\"></applet>\n");
4.343 + }
4.344 + } else if (!strcmp(variableName, "text_file")) {
4.345 + printf(" <applet code=\"text_editor\" \n");
4.346 + printf(" archive=\"/java/text_editor.jar,/java/interos_connect.jar\" \n");
4.347 + printf(" width=\"100%%\" \n");
4.348 + printf(" height=\"100%%\">\n");
4.349 + printf(" <param name=\"text_file\" value=\"%s\" />\n", variableValue);
4.350 + printf(" </applet>\n");
4.351 + }
4.352 + }
4.353 + printf(" </div>\n");
4.354 + printf(" </body>\n");
4.355 + printf(" <!--=====================================================================-->\n");
4.356 + printf(" <!-- Copyright and Trademark Statement -->\n");
4.357 + printf(" <!--=====================================================================-->\n");
4.358 + printf(" <!-- -->\n");
4.359 + printf(" <!-- All original textual and graphical site content: -->\n");
4.360 + printf(" <!-- -->\n");
4.361 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
4.362 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
4.363 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
4.364 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
4.365 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
4.366 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
4.367 + printf(" <!-- are the properties of their respective authors. All software -->\n");
4.368 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
4.369 + printf(" <!-- -->\n");
4.370 + printf(" <!--=====================================================================-->\n");
4.371 + printf(" <!-- e-mail: info@interos.com -->\n");
4.372 + printf(" <!--=====================================================================-->\n");
4.373 + printf("</html>");
4.374 +}
4.375 +
4.376 +/***********************************************************************/
4.377 +/* Copyright and Trademark Statement */
4.378 +/***********************************************************************/
4.379 +/* */
4.380 +/* All original textual and graphical site content: */
4.381 +/* */
4.382 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
4.383 +/* reserved. Reproduction in whole or in part without written */
4.384 +/* permission is prohibited. interos and the interos logos are */
4.385 +/* trademarks of Brent Angeline and interos LLC. All other company, */
4.386 +/* product, and service names mentioned herein may be the properties */
4.387 +/* of their respective owners. Comments in the interos.org forums */
4.388 +/* are the properties of their respective authors. All software */
4.389 +/* developed in the forums is open source and belongs to everyone. */
4.390 +/* */
4.391 +/***********************************************************************/
4.392 +/* e-mail: info@interos.com */
4.393 +/***********************************************************************/
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/c/interos.c Sat May 01 16:19:36 2010 -0400
5.3 @@ -0,0 +1,1 @@
5.4 +interos_interos.com_ssl.c
5.5 \ No newline at end of file
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/c/interos.h Sat May 01 16:19:36 2010 -0400
6.3 @@ -0,0 +1,1 @@
6.4 +interos_interos.com_ssl.h
6.5 \ No newline at end of file
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/c/interos.org.h Sat May 01 16:19:36 2010 -0400
7.3 @@ -0,0 +1,1 @@
7.4 +interos.org_interos.org_ssl.h
7.5 \ No newline at end of file
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/c/interos_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
8.3 @@ -0,0 +1,229 @@
8.4 +#include "fcgi_stdio.h"
8.5 +#include "interos.h"
8.6 +#include <stdlib.h>
8.7 +#include <string.h>
8.8 +#include <dirent.h>
8.9 +#include <langinfo.h>
8.10 +#include <sys/stat.h>
8.11 +#include <unistd.h>
8.12 +
8.13 +/* */
8.14 +void outputErrorXML(const char *errorMessage) {
8.15 + printf("Content-Type: text/xml\r\n\r\n");
8.16 + printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
8.17 + printf("<directory>\n");
8.18 + printf(" <errorCode error=\"true\">\n");
8.19 + printf(" <description>%s</description>\n", errorMessage);
8.20 + printf(" </errorCode>\n");
8.21 + printf("</directory>");
8.22 +}
8.23 +
8.24 +POSTDATA *getPostData(){
8.25 + POSTDATA* postdata = (POSTDATA*)(malloc(sizeof(POSTDATA)));
8.26 + postdata->postData = NULL;
8.27 + postdata->length = 0;
8.28 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
8.29 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
8.30 + /** ERROR | POST DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
8.31 + outputErrorXML("No post data was received by the web server.");
8.32 + free(postdata);
8.33 + postdata = NULL;
8.34 +
8.35 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
8.36 + } else {
8.37 +
8.38 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
8.39 + void* post;
8.40 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
8.41 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
8.42 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR POST DATA! > OUTPUT ERROR XML **/
8.43 + outputErrorXML("The length of the post data string received by the web server was indicated to be less than 1 byte.");
8.44 + free(postdata);
8.45 + postdata = NULL;
8.46 + } else {
8.47 + /* PROCESS POST DATA */
8.48 + fread(post, postLength, 1, stdin);
8.49 + postdata->postData = post;
8.50 + postdata->length = postLength;
8.51 + }
8.52 + }
8.53 + return postdata;
8.54 +}
8.55 +
8.56 +char* validateCookie() {
8.57 + char *username = NULL;
8.58 +
8.59 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
8.60 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
8.61 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
8.62 + outputErrorXML("No cookie data was received by the web server.");
8.63 +
8.64 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
8.65 + } else {
8.66 +
8.67 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
8.68 + char *cookie;
8.69 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
8.70 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
8.71 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > OUTPUT ERROR XML **/
8.72 + outputErrorXML("The length of the cookie data string received by the web server was indicated to be less than 1 byte.");
8.73 + } else {
8.74 + char *variableName;
8.75 + if (!(variableName = malloc(cookieLength + 1))) {
8.76 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > OUTPUT ERROR XML **/
8.77 + outputErrorXML("Sufficient memory could not be allocated on the server for cookie variable names.");
8.78 + } else {
8.79 + char *variableValue;
8.80 + if (!(variableValue = malloc(cookieLength + 1))) {
8.81 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > OUTPUT ERROR XML **/
8.82 + outputErrorXML("Sufficient memory could not be allocated on the server for cookie variable values.");
8.83 +
8.84 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
8.85 + } else {
8.86 +
8.87 + /* PROCESS COOKIE DATA */
8.88 + char *login, *password;
8.89 + INT i, c;
8.90 + login = password = NULL;
8.91 + c = 0;
8.92 + strcpy(cookie, getenv("HTTP_COOKIE"));
8.93 + while ((c < cookieLength) && (cookie[c] != '\0')) {
8.94 + i = 0;
8.95 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
8.96 + variableName[i] = cookie[c];
8.97 + ++c;
8.98 + ++i;
8.99 + }
8.100 + variableName[i] = '\0';
8.101 + ++c;
8.102 + i = 0;
8.103 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
8.104 + variableValue[i] = cookie[c];
8.105 + ++c;
8.106 + ++i;
8.107 + }
8.108 + variableValue[i] = '\0';
8.109 + ++c;
8.110 + while ((c < cookieLength) && (cookie[c] == ' ')) {
8.111 + ++c;
8.112 + }
8.113 + if (!login && !strcmp(variableName, "login")) {
8.114 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
8.115 + strcpy(login, variableValue);
8.116 + }
8.117 + } else if (!password && !strcmp(variableName, "password")) {
8.118 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
8.119 + strcpy(password, variableValue);
8.120 + }
8.121 + }
8.122 + }
8.123 +
8.124 + /* IF LOGIN VALUE IS MISSING... */
8.125 + if (!login) {
8.126 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT ERROR XML */
8.127 + outputErrorXML("No login value was received.");
8.128 +
8.129 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
8.130 + } else {
8.131 +
8.132 + /* VERIFY LOGIN AND PASSWORD */
8.133 + char *directory;
8.134 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
8.135 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT ERROR XML **/
8.136 + outputErrorXML("Sufficient memory could not be allocated on the server for the user's home directory name.");
8.137 + } else {
8.138 + char *systemDirectory;
8.139 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
8.140 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT ERROR XML **/
8.141 + outputErrorXML("Sufficient memory could not be allocated on the server for the user's system directory name.");
8.142 + } else {
8.143 + strcpy(directory, DIRECTORY);
8.144 + strcat(directory, login);
8.145 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
8.146 + strcat(systemDirectory, login);
8.147 +
8.148 + /* IF DIRECTORY CAN'T BE ACCESSED... */
8.149 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
8.150 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT ERROR XML **/
8.151 + outputErrorXML("The user's home directory on the server could not be accessed.");
8.152 +
8.153 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
8.154 + } else {
8.155 +
8.156 + /* ATTEMPT TO ACCESS PASSWORD FILE */
8.157 + char *passwordFileName;
8.158 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
8.159 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT ERROR XML **/
8.160 + outputErrorXML("Sufficient memory could not be allocated on the server for the name of the user's password file.");
8.161 + } else {
8.162 + strcpy(passwordFileName, systemDirectory);
8.163 + strcat(passwordFileName, PASSWORD_FILE_NAME);
8.164 +
8.165 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
8.166 + if (access(passwordFileName, F_OK)) {
8.167 + /** ERROR | CANNOT ACCESS FILE > OUTPUT ERROR XML **/
8.168 + outputErrorXML("The user's password file on the server cannot be accessed.");
8.169 +
8.170 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
8.171 + } else {
8.172 +
8.173 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
8.174 + FILE *passwordFile;
8.175 +
8.176 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
8.177 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
8.178 + /** ERROR | CANNOT READ FILE > OUTPUT ERROR XML **/
8.179 + outputErrorXML("The user's password file on the server cannot be opened for reading.");
8.180 +
8.181 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
8.182 + } else {
8.183 + char *filePassword;
8.184 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
8.185 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT ERROR XML **/
8.186 + outputErrorXML("Sufficient memory could not be allocated on the server for reading the user's password.");
8.187 + } else {
8.188 + char c;
8.189 + i = 0;
8.190 +
8.191 + /* READ PASSWORD FROM PASSWORD FILE */
8.192 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
8.193 + filePassword[i] = c;
8.194 + ++i;
8.195 + }
8.196 + filePassword[i] = '\0';
8.197 + fclose(passwordFile);
8.198 +
8.199 + /* IF PASSWORD FAILS COMPARISON... */
8.200 + if (strcmp(filePassword, password)) {
8.201 + /** ERROR | PASSWORD FAILED > OUTPUT ERROR XML **/
8.202 + outputErrorXML("The password provided failed comparison with the password stored on the server.");
8.203 +
8.204 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
8.205 + } else {
8.206 + username = login;
8.207 + }
8.208 + free(filePassword);
8.209 + }
8.210 + }
8.211 + }
8.212 + free(passwordFileName);
8.213 + }
8.214 + }
8.215 + free(systemDirectory);
8.216 + }
8.217 + free(directory);
8.218 + }
8.219 + if(!username && login)
8.220 + free(login);
8.221 +
8.222 + }
8.223 + free(password);
8.224 + free(variableValue);
8.225 + }
8.226 + free(variableName);
8.227 + }
8.228 + free(cookie);
8.229 + }
8.230 + }
8.231 + return username;
8.232 +}
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/c/interos_interos.com_ssl.h Sat May 01 16:19:36 2010 -0400
9.3 @@ -0,0 +1,117 @@
9.4 +/*************************************************************/
9.5 +/* interos Standard Document Header - CGI in C Header File */
9.6 +/*************************************************************/
9.7 +/* Source: interos.h */
9.8 +/* Description: FastCGI Header for interos */
9.9 +/* Author: Brent Angeline */
9.10 +/* CGI: FastCGI in ISO/ANSI C */
9.11 +/*************************************************************/
9.12 +
9.13 +/* PREPROCESSOR DIRECTIVES */
9.14 +# ifndef INTEROS_H
9.15 +
9.16 +# define INTEROS_H
9.17 +
9.18 + /* HEADER FILES INCLUDED BY C SOURCE */
9.19 +# ifndef INTEROS_H
9.20 +
9.21 +# include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
9.22 +# include <ctype.h> /* tolower() */
9.23 +# include <stdlib.h> /* free(), getenv(), malloc(), strtoul() */
9.24 +# include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
9.25 +# include <unistd.h> /* F_OK, access() */
9.26 +
9.27 +# endif
9.28 +
9.29 + /* DEFINITION DIRECTIVES */
9.30 +# define INT unsigned long
9.31 +# define STRING_TO_INT strtoul
9.32 +# define DIRECTORY "/srv/https/interos.com/"
9.33 +# define SYSTEM_DIRECTORY "/srv/data/interos/"
9.34 +# define PASSWORD_FILE_NAME "/.htpasswd"
9.35 +# define MAX_PASSWORD_SIZE 16
9.36 +
9.37 + /* NEW USER DEFINITION DIRECTIVES */
9.38 +# define SYSTEM_DIRECTORY_COMMAND "cp -pRP /srv/data/interos/sys/data /srv/data/interos/"
9.39 +# define DIRECTORY_COMMAND "cp -pRP /srv/data/interos/sys/user /srv/https/interos.com/"
9.40 +# define ECHO_COMMAND "echo "
9.41 +# define PASSWORD_OUT " > /srv/data/interos/"
9.42 +
9.43 + /* TYPE DEFINITION */
9.44 + typedef struct {
9.45 + char *name;
9.46 + char *link;
9.47 + char *icon;
9.48 + struct MENU_ITEM *next;
9.49 + } MENU_ITEM;
9.50 +
9.51 + /**
9.52 + Used by getPOSTData for storage of the POST data.
9.53 +
9.54 +
9.55 + length: The number of bytes allocated for postData.
9.56 +
9.57 + postData: Allocated chunk of memory containing the POST data. The interpretation of that data
9.58 + depends on what the CGI program getting the data is expecting.
9.59 + */
9.60 + typedef struct{
9.61 + void *postData;
9.62 + INT length;
9.63 + }POSTDATA;
9.64 +
9.65 + /**
9.66 + Obtains the POST data that was sent by the client connecting to the HTTP(S) server and stores it
9.67 + in POSTDATA struct. The POSTDATA->postData is a chunk of memory copied from the client. If the data
9.68 + is to be interpreted as a string, one should not expect it to be null terminated, which is why length
9.69 + is part of the POSTDATA struct.
9.70 +
9.71 + One more byte of memory is allocated for POSTDATA->postData for conveniance. In the event that the
9.72 + POST data is interpreted as a string, one may set POSTDATA->postData[POSTDATA->length] = '\0' without
9.73 + having to use realloc.
9.74 +
9.75 + @return An allocated struct POSTDATA with allocated postData of size length+1. If there is no POST data,
9.76 + it will return an allocated struct POSTDATA with length 0 and postData NULL. If there was an error
9.77 + getting the post data, it will call outputErrorXML() with the apropriate error and return NULL.
9.78 + */
9.79 + POSTDATA *getPOSTData();
9.80 +
9.81 + /**
9.82 + Obtains cookie data from the HTTP header and validates it with the appropriate login.
9.83 + If the cookie data has the correct username and password, the function will return
9.84 + the username. If validation fails, it will automatically call outputErrorXML with
9.85 + the appropriate error information and return NULL.
9.86 +
9.87 + @return An allocated string containing the username from the cookie data, or NULL
9.88 + if validation failed.
9.89 +
9.90 + */
9.91 + char *validateCookie();
9.92 +
9.93 + /**
9.94 + Prints an error XML.
9.95 +
9.96 + @param errorMessage A string that contains the description of the error.
9.97 + */
9.98 + void outputErrorXML(const char *errorMessage);
9.99 +
9.100 +
9.101 +# endif
9.102 +
9.103 +/***********************************************************************/
9.104 +/* Copyright and Trademark Statement */
9.105 +/***********************************************************************/
9.106 +/* */
9.107 +/* All original textual and graphical site content: */
9.108 +/* */
9.109 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
9.110 +/* reserved. Reproduction in whole or in part without written */
9.111 +/* permission is prohibited. interos and the interos logos are */
9.112 +/* trademarks of Brent Angeline and interos LLC. All other company, */
9.113 +/* product, and service names mentioned herein may be the properties */
9.114 +/* of their respective owners. Comments in the interos.org forums */
9.115 +/* are the properties of their respective authors. All software */
9.116 +/* developed in the forums is open source and belongs to everyone. */
9.117 +/* */
9.118 +/***********************************************************************/
9.119 +/* e-mail: info@interos.com */
9.120 +/***********************************************************************/
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/c/login_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
10.3 @@ -0,0 +1,359 @@
10.4 +/*************************************************/
10.5 +/* interos Standard Document Header - CGI in C */
10.6 +/*************************************************/
10.7 +/* URIs: https://interos.com/login */
10.8 +/* https://www.interos.com/login */
10.9 +/* Source: login.c */
10.10 +/* Description: FastCGI for interos login */
10.11 +/* Author: Brent Angeline */
10.12 +/* CGI: FastCGI in ISO/ANSI C */
10.13 +/*************************************************/
10.14 +
10.15 +/* PREPROCESSOR DIRECTIVES */
10.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
10.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, STRING_TO_INT, SYSTEM_DIRECTORY */
10.18 +#include <ctype.h> /* tolower() */
10.19 +#include <stdlib.h> /* free(), getenv(), malloc(), strtoul() */
10.20 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
10.21 +#include <unistd.h> /* F_OK, access() */
10.22 +
10.23 +/* FUNCTION PROTOTYPE DECLARATION */
10.24 +static void OutputLoginPanel(void);
10.25 +
10.26 +/* BEGIN MAIN PROGRAM */
10.27 +int main(void) {
10.28 +
10.29 + /* BEGIN FASTCGI */
10.30 + while (FCGI_Accept() >= 0) {
10.31 +
10.32 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
10.33 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
10.34 +
10.35 + /* OUTPUT XHTML FOR LOGIN PANEL */
10.36 + OutputLoginPanel();
10.37 +
10.38 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
10.39 + } else {
10.40 +
10.41 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
10.42 + char *post;
10.43 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
10.44 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
10.45 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR POST DATA! > OUTPUT XHTML FOR LOGIN PANEL **/
10.46 + OutputLoginPanel();
10.47 + } else {
10.48 + char *variableName;
10.49 + if (!(variableName = malloc(postLength + 1))) {
10.50 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE NAME > OUTPUT XHTML FOR LOGIN PANEL **/
10.51 + OutputLoginPanel();
10.52 + } else {
10.53 + char *variableValue;
10.54 + if (!(variableValue = malloc(postLength + 1))) {
10.55 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE VALUE > OUTPUT XHTML FOR LOGIN PANEL **/
10.56 + OutputLoginPanel();
10.57 +
10.58 + /* IF SUFFICIENT MEMORY FOR POST VARIABLES... */
10.59 + } else {
10.60 +
10.61 + /* PROCESS POST DATA */
10.62 + char *login, *password;
10.63 + INT p, i;
10.64 + login = password = NULL;
10.65 + p = 0;
10.66 + fread(post, postLength, 1, stdin);
10.67 + post[postLength] = '\0';
10.68 + while ((p < postLength) && (post[p] != '\0')) {
10.69 + i = 0;
10.70 + while ((p < postLength) && (post[p] != '=') && (post[p] != '\0')) {
10.71 + variableName[i] = post[p];
10.72 + ++p;
10.73 + ++i;
10.74 + }
10.75 + variableName[i] = '\0';
10.76 + ++p;
10.77 + i = 0;
10.78 + while ((p < postLength) && (post[p] != '&') && (post[p] != '\0')) {
10.79 + variableValue[i] = post[p];
10.80 + ++p;
10.81 + ++i;
10.82 + }
10.83 + variableValue[i] = '\0';
10.84 + if (post[p] != '\0') {
10.85 + ++p;
10.86 + }
10.87 + if (!login && !strcmp(variableName, "login")) {
10.88 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
10.89 + strcpy(login, variableValue);
10.90 + for (i = 0; i < strlen(login); ++i) {
10.91 + login[i] = tolower(login[i]);
10.92 + }
10.93 + }
10.94 + } else if (!password && !strcmp(variableName, "password")) {
10.95 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
10.96 + strcpy(password, variableValue);
10.97 + }
10.98 + }
10.99 + }
10.100 +
10.101 + /* IF LOGIN VALUE IS MISSING... */
10.102 + if (!login) {
10.103 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT XHTML FOR LOGIN PANEL **/
10.104 + OutputLoginPanel();
10.105 +
10.106 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
10.107 + } else {
10.108 +
10.109 + /* VERIFY LOGIN AND PASSWORD */
10.110 + char *directory;
10.111 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
10.112 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT XHTML FOR LOGIN PANEL **/
10.113 + OutputLoginPanel();
10.114 + } else {
10.115 + char *systemDirectory;
10.116 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
10.117 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT XHTML FOR LOGIN PANEL **/
10.118 + OutputLoginPanel();
10.119 + } else {
10.120 + strcpy(directory, DIRECTORY);
10.121 + strcat(directory, login);
10.122 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
10.123 + strcat(systemDirectory, login);
10.124 +
10.125 + /* IF DIRECTORY CAN'T BE ACCESSED... */
10.126 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
10.127 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT XHTML FOR LOGIN PANEL **/
10.128 + OutputLoginPanel();
10.129 +
10.130 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
10.131 + } else {
10.132 +
10.133 + /* ATTEMPT TO ACCESS PASSWORD FILE */
10.134 + char *passwordFileName;
10.135 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
10.136 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT XHTML FOR LOGIN PANEL **/
10.137 + OutputLoginPanel();
10.138 + } else {
10.139 + strcpy(passwordFileName, systemDirectory);
10.140 + strcat(passwordFileName, PASSWORD_FILE_NAME);
10.141 +
10.142 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
10.143 + if (access(passwordFileName, F_OK)) {
10.144 + /** ERROR | CANNOT ACCESS FILE > OUTPUT XHTML FOR LOGIN PANEL **/
10.145 + OutputLoginPanel();
10.146 +
10.147 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
10.148 + } else {
10.149 +
10.150 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
10.151 + FILE *passwordFile;
10.152 +
10.153 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
10.154 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
10.155 + /** ERROR | CANNOT READ FILE > OUTPUT XHTML FOR LOGIN PANEL **/
10.156 + OutputLoginPanel();
10.157 +
10.158 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
10.159 + } else {
10.160 + char *filePassword;
10.161 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
10.162 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT XHTML FOR LOGIN PANEL **/
10.163 + OutputLoginPanel();
10.164 + } else {
10.165 + char c;
10.166 + i = 0;
10.167 +
10.168 + /* READ PASSWORD FROM PASSWORD FILE */
10.169 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
10.170 + filePassword[i] = c;
10.171 + ++i;
10.172 + }
10.173 + filePassword[i] = '\0';
10.174 + fclose(passwordFile);
10.175 +
10.176 + /* IF NO PASSWORD FROM POST VARIABLES... */
10.177 + if (!password) {
10.178 + password = malloc(1);
10.179 + password[0] = '\0';
10.180 + }
10.181 +
10.182 + /* IF PASSWORD FAILS COMPARISON... */
10.183 + if (strcmp(filePassword, password)) {
10.184 + /** ERROR | PASSWORD FAILED > OUTPUT XHTML FOR LOGIN PANEL **/
10.185 + OutputLoginPanel();
10.186 +
10.187 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
10.188 + } else {
10.189 +
10.190 + /* SET COOKIES */
10.191 + printf("Set-Cookie: login=%s; path=/; secure\r\n", login);
10.192 + printf("Set-Cookie: password=%s; path=/; secure\r\n", password);
10.193 +
10.194 + /* REDIRECT LOGGED INTO interos */
10.195 + printf("Location: welcome\r\n\r\n");
10.196 + }
10.197 + free(filePassword);
10.198 + }
10.199 + }
10.200 + }
10.201 + free(passwordFileName);
10.202 + }
10.203 + }
10.204 + free(systemDirectory);
10.205 + }
10.206 + free(directory);
10.207 + }
10.208 + free(login);
10.209 + }
10.210 + free(password);
10.211 + free(variableValue);
10.212 + }
10.213 + free(variableName);
10.214 + }
10.215 + free(post);
10.216 + }
10.217 + }
10.218 + }
10.219 + return 0;
10.220 +}
10.221 +
10.222 +/* FUNCTION | OUTPUT XHTML FOR LOGIN PANEL */
10.223 +static void OutputLoginPanel(void) {
10.224 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
10.225 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
10.226 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/login.css\"?>\n");
10.227 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
10.228 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
10.229 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
10.230 + printf(" <!--=================================================-->\n");
10.231 + printf(" <!-- interos Standard Document Header - Markup -->\n");
10.232 + printf(" <!--=================================================-->\n");
10.233 + printf(" <!-- URIs: https://interos.com/login -->\n");
10.234 + printf(" <!-- https://www.interos.com/login -->\n");
10.235 + printf(" <!-- Title: interos login -->\n");
10.236 + printf(" <!-- Author: Brent Angeline -->\n");
10.237 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
10.238 + printf(" <!--=================================================-->\n");
10.239 + printf(" <head>\n");
10.240 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
10.241 + printf(" <meta name=\"title\" content=\"interos login\" />\n");
10.242 + printf(" <meta name=\"description\" content=\"enter into interos\" />\n");
10.243 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
10.244 + printf(" <meta name=\"copyright\" \n");
10.245 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
10.246 + printf(" <meta name=\"robots\" content=\"index, nofollow, noarchive\" />\n");
10.247 + printf(" <title>interos login</title>\n");
10.248 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
10.249 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
10.250 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/login.css\" \n");
10.251 + printf(" media=\"screen, projection\" />\n");
10.252 + printf(" <script type=\"text/javascript\" src=\"/js/login.js\"></script>\n");
10.253 + printf(" </head>\n");
10.254 + printf(" <body id=\"body\">\n");
10.255 + printf(" <center>\n");
10.256 + printf(" <p id=\"navigation\">\n");
10.257 + printf(" <a href=\"/about\">about</a> | \n");
10.258 + printf(" <a href=\"/blog\">blog</a> | \n");
10.259 + printf(" <a href=\"/code\">code</a> | \n");
10.260 + printf(" <a href=\"https://interos.org/\">develop</a> | \n");
10.261 + printf(" <a href=\"/e-mail\">e-mail</a> | \n");
10.262 + printf(" <a href=\"/f.a.q.\">f.a.q.</a> | \n");
10.263 + printf(" <a href=\"/gear\">gear</a> | \n");
10.264 + printf(" <a href=\"/help\">help</a>\n");
10.265 + printf(" </p>\n");
10.266 + printf(" <form id=\"loginForm\" name=\"loginForm\" action=\"/login\" method=\"post\">\n");
10.267 + printf(" <table id=\"mainPanel\">\n");
10.268 + printf(" <thead>\n");
10.269 + printf(" <tr>\n");
10.270 + printf(" <th colspan=\"3\"><center>\n");
10.271 + printf(" <div id=\"title\">\n");
10.272 + printf(" <h1>\n");
10.273 + printf(" <a href=\"/\">interos</a>\n");
10.274 + printf(" </h1>\n");
10.275 + printf(" </div>\n");
10.276 + printf(" <h2>\n");
10.277 + printf(" internet operating system\n");
10.278 + printf(" </h2>\n");
10.279 + printf(" </center></th>\n");
10.280 + printf(" </tr>\n");
10.281 + printf(" </thead>\n");
10.282 + printf(" <tfoot>\n");
10.283 + printf(" <tr>\n");
10.284 + printf(" <td colspan=\"3\"><br /></td>\n");
10.285 + printf(" </tr>\n");
10.286 + printf(" </tfoot>\n");
10.287 + printf(" <tbody>\n");
10.288 + printf(" <tr>\n");
10.289 + printf(" <td><label for=\"login\">login:</label> </td>\n");
10.290 + printf(" <td><input id=\"login\" name=\"login\" \n");
10.291 +/*
10.292 + printf(" value=\"guest\" readonly=\"readonly\" \n");
10.293 +*/
10.294 + printf(" value=\"guest\" \n");
10.295 + printf(" size=\"16\" maxlength=\"16\" \n");
10.296 + printf(" type=\"text\" /></td>\n");
10.297 + printf(" </tr>\n");
10.298 + printf(" <tr>\n");
10.299 + printf(" <td><label for=\"password\">password:</label> </td>\n");
10.300 + printf(" <td><input id=\"password\" name=\"password\" \n");
10.301 + printf(" disabled=\"disabled\" \n");
10.302 + printf(" size=\"16\" maxlength=\"16\" \n");
10.303 + printf(" type=\"password\" /></td>\n");
10.304 + printf(" <td rowspan=\"2\"><div id=\"submitButton\">\n");
10.305 + printf(" <input type=\"submit\" \n");
10.306 + printf(" value=\"login »\" />\n");
10.307 + printf(" </div></td>\n");
10.308 + printf(" </tr>\n");
10.309 + printf(" </tbody>\n");
10.310 + printf(" </table>\n");
10.311 + printf(" </form>\n");
10.312 + printf(" <p id=\"newUser\">\n");
10.313 + printf(" <a href=\"/new_user\"><strong>new users click here</strong><br />\n");
10.314 + printf(" to create your login</a>\n");
10.315 + printf(" </p>\n");
10.316 + printf(" <p>\n");
10.317 + printf(" <br />\n");
10.318 + printf(" </p>\n");
10.319 + printf(" <p id=\"copyrightDates\">\n");
10.320 + printf(" © 2001–2010 interos\n");
10.321 + printf(" </p>\n");
10.322 + printf(" </center>\n");
10.323 + printf(" </body>\n");
10.324 + printf(" <!--=====================================================================-->\n");
10.325 + printf(" <!-- Copyright and Trademark Statement -->\n");
10.326 + printf(" <!--=====================================================================-->\n");
10.327 + printf(" <!-- -->\n");
10.328 + printf(" <!-- All original textual and graphical site content: -->\n");
10.329 + printf(" <!-- -->\n");
10.330 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
10.331 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
10.332 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
10.333 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
10.334 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
10.335 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
10.336 + printf(" <!-- are the properties of their respective authors. All software -->\n");
10.337 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
10.338 + printf(" <!-- -->\n");
10.339 + printf(" <!--=====================================================================-->\n");
10.340 + printf(" <!-- e-mail: info@interos.com -->\n");
10.341 + printf(" <!--=====================================================================-->\n");
10.342 + printf("</html>");
10.343 +}
10.344 +
10.345 +/***********************************************************************/
10.346 +/* Copyright and Trademark Statement */
10.347 +/***********************************************************************/
10.348 +/* */
10.349 +/* All original textual and graphical site content: */
10.350 +/* */
10.351 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
10.352 +/* reserved. Reproduction in whole or in part without written */
10.353 +/* permission is prohibited. interos and the interos logos are */
10.354 +/* trademarks of Brent Angeline and interos LLC. All other company, */
10.355 +/* product, and service names mentioned herein may be the properties */
10.356 +/* of their respective owners. Comments in the interos.org forums */
10.357 +/* are the properties of their respective authors. All software */
10.358 +/* developed in the forums is open source and belongs to everyone. */
10.359 +/* */
10.360 +/***********************************************************************/
10.361 +/* e-mail: info@interos.com */
10.362 +/***********************************************************************/
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/c/logout_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
11.3 @@ -0,0 +1,48 @@
11.4 +/**************************************************/
11.5 +/* interos Standard Document Header - CGI in C */
11.6 +/**************************************************/
11.7 +/* URIs: https://interos.com/logout */
11.8 +/* https://www.interos.com/logout */
11.9 +/* Source: logout.c */
11.10 +/* Description: FastCGI for interos logout */
11.11 +/* Author: Brent Angeline */
11.12 +/* CGI: FastCGI in ISO/ANSI C */
11.13 +/**************************************************/
11.14 +
11.15 +/* PREPROCESSOR DIRECTIVE */
11.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), printf() */
11.17 +
11.18 +/* BEGIN MAIN PROGRAM */
11.19 +int main(void) {
11.20 +
11.21 + /* BEGIN FASTCGI */
11.22 + while (FCGI_Accept() >= 0) {
11.23 +
11.24 + /* SET COOKIES */
11.25 + printf("Set-Cookie: login=; path=/; secure\r\n");
11.26 + printf("Set-Cookie: password=; path=/; secure\r\n");
11.27 +
11.28 + /* REDIRECT TO LOGIN PANEL */
11.29 + printf("Location: login\r\n\r\n");
11.30 + }
11.31 + return 0;
11.32 +}
11.33 +
11.34 +/***********************************************************************/
11.35 +/* Copyright and Trademark Statement */
11.36 +/***********************************************************************/
11.37 +/* */
11.38 +/* All original textual and graphical site content: */
11.39 +/* */
11.40 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
11.41 +/* reserved. Reproduction in whole or in part without written */
11.42 +/* permission is prohibited. interos and the interos logos are */
11.43 +/* trademarks of Brent Angeline and interos LLC. All other company, */
11.44 +/* product, and service names mentioned herein may be the properties */
11.45 +/* of their respective owners. Comments in the interos.org forums */
11.46 +/* are the properties of their respective authors. All software */
11.47 +/* developed in the forums is open source and belongs to everyone. */
11.48 +/* */
11.49 +/***********************************************************************/
11.50 +/* e-mail: info@interos.com */
11.51 +/***********************************************************************/
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/c/main_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
12.3 @@ -0,0 +1,724 @@
12.4 +/*************************************************/
12.5 +/* interos Standard Document Header - CGI in C */
12.6 +/*************************************************/
12.7 +/* URIs: https://interos.com/ */
12.8 +/* https://interos.com/main */
12.9 +/* https://www.interos.com/ */
12.10 +/* https://www.interos.com/main */
12.11 +/* Source: main.c */
12.12 +/* Description: FastCGI for interos main */
12.13 +/* Author: Brent Angeline */
12.14 +/* CGI: FastCGI in ISO/ANSI C */
12.15 +/*************************************************/
12.16 +
12.17 +/* PREPROCESSOR DIRECTIVES */
12.18 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
12.19 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
12.20 +#include <stdlib.h> /* free(), getenv(), malloc() */
12.21 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
12.22 +#include <unistd.h> /* F_OK, access() */
12.23 +
12.24 +#ifndef INTEROS_H
12.25 +
12.26 + /* TYPE DEFINITION */
12.27 + typedef struct {
12.28 + char *name;
12.29 + char *link;
12.30 + char *icon;
12.31 + struct MENU_ITEM *next;
12.32 + } MENU_ITEM;
12.33 +
12.34 +#endif
12.35 +
12.36 +/* FUNCTION PROTOTYPE DECLARATIONS */
12.37 +static void RedirectToLoginPanel(void);
12.38 +static void OutputGUI(const char *variableName, char *variableValue);
12.39 +static void OutputNewMenu(void);
12.40 +static void OutputOpenMenu(char *open);
12.41 +static void OutputNextMenu(char *next);
12.42 +static void OutputSettingsMenu(char *settings);
12.43 +static void BeginXHTMLOutput(void);
12.44 +static void FinishXHTMLOutput(void);
12.45 +
12.46 +/* BEGIN MAIN PROGRAM */
12.47 +int main(void) {
12.48 +
12.49 + /* BEGIN FASTCGI */
12.50 + while (FCGI_Accept() >= 0) {
12.51 +
12.52 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
12.53 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
12.54 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
12.55 + RedirectToLoginPanel();
12.56 +
12.57 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
12.58 + } else {
12.59 +
12.60 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
12.61 + char *cookie;
12.62 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
12.63 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
12.64 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
12.65 + RedirectToLoginPanel();
12.66 + } else {
12.67 + char *variableName;
12.68 + if (!(variableName = malloc(cookieLength + 1))) {
12.69 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
12.70 + RedirectToLoginPanel();
12.71 + } else {
12.72 + char *variableValue;
12.73 + if (!(variableValue = malloc(cookieLength + 1))) {
12.74 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
12.75 + RedirectToLoginPanel();
12.76 +
12.77 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
12.78 + } else {
12.79 +
12.80 + /* PROCESS COOKIE DATA */
12.81 + char *login, *password;
12.82 + INT c, i;
12.83 + login = password = NULL;
12.84 + c = 0;
12.85 + strcpy(cookie, getenv("HTTP_COOKIE"));
12.86 + while ((c < cookieLength) && (cookie[c] != '\0')) {
12.87 + i = 0;
12.88 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
12.89 + variableName[i] = cookie[c];
12.90 + ++c;
12.91 + ++i;
12.92 + }
12.93 + variableName[i] = '\0';
12.94 + ++c;
12.95 + i = 0;
12.96 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
12.97 + variableValue[i] = cookie[c];
12.98 + ++c;
12.99 + ++i;
12.100 + }
12.101 + variableValue[i] = '\0';
12.102 + ++c;
12.103 + while ((c < cookieLength) && (cookie[c] == ' ')) {
12.104 + ++c;
12.105 + }
12.106 + if (!login && !strcmp(variableName, "login")) {
12.107 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
12.108 + strcpy(login, variableValue);
12.109 + }
12.110 + } else if (!password && !strcmp(variableName, "password")) {
12.111 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
12.112 + strcpy(password, variableValue);
12.113 + }
12.114 + }
12.115 + }
12.116 +
12.117 + /* IF LOGIN VALUE IS MISSING... */
12.118 + if (!login) {
12.119 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
12.120 + RedirectToLoginPanel();
12.121 +
12.122 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
12.123 + } else {
12.124 +
12.125 + /* VERIFY LOGIN AND PASSWORD */
12.126 + char *directory;
12.127 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
12.128 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
12.129 + RedirectToLoginPanel();
12.130 + } else {
12.131 + char *systemDirectory;
12.132 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
12.133 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
12.134 + RedirectToLoginPanel();
12.135 + } else {
12.136 + strcpy(directory, DIRECTORY);
12.137 + strcat(directory, login);
12.138 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
12.139 + strcat(systemDirectory, login);
12.140 +
12.141 + /* IF DIRECTORY CAN'T BE ACCESSED... */
12.142 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
12.143 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
12.144 + RedirectToLoginPanel();
12.145 +
12.146 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
12.147 + } else {
12.148 +
12.149 + /* ATTEMPT TO ACCESS PASSWORD FILE */
12.150 + char *passwordFileName;
12.151 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
12.152 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
12.153 + RedirectToLoginPanel();
12.154 + } else {
12.155 + strcpy(passwordFileName, systemDirectory);
12.156 + strcat(passwordFileName, PASSWORD_FILE_NAME);
12.157 +
12.158 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
12.159 + if (access(passwordFileName, F_OK)) {
12.160 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
12.161 + RedirectToLoginPanel();
12.162 +
12.163 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
12.164 + } else {
12.165 +
12.166 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
12.167 + FILE *passwordFile;
12.168 +
12.169 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
12.170 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
12.171 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
12.172 + RedirectToLoginPanel();
12.173 +
12.174 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
12.175 + } else {
12.176 + char *filePassword;
12.177 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
12.178 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
12.179 + RedirectToLoginPanel();
12.180 + } else {
12.181 + char c;
12.182 + i = 0;
12.183 +
12.184 + /* READ PASSWORD FROM PASSWORD FILE */
12.185 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
12.186 + filePassword[i] = c;
12.187 + ++i;
12.188 + }
12.189 + filePassword[i] = '\0';
12.190 + fclose(passwordFile);
12.191 +
12.192 + /* IF PASSWORD FAILS COMPARISON... */
12.193 + if (strcmp(filePassword, password)) {
12.194 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
12.195 + RedirectToLoginPanel();
12.196 +
12.197 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
12.198 + } else {
12.199 +
12.200 + /* LOAD SETTINGS VALUES FROM FILE(S) */
12.201 +
12.202 + /* LOAD MENU ITEMS FROM FILES */
12.203 +
12.204 + /* READ NEW MENU FILE */
12.205 +
12.206 + /* READ OPEN MENU FILE */
12.207 +
12.208 + /* READ NEXT MENU FILE */
12.209 +
12.210 + /* READ SETTINGS MENU FILE */
12.211 +
12.212 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
12.213 + char *menu, *new, *open, *next, *settings, *text_file, *status;
12.214 + menu = new = open = next = settings = text_file = status = NULL;
12.215 +
12.216 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
12.217 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
12.218 + char *query;
12.219 + INT queryLength = strlen(getenv("QUERY_STRING"));
12.220 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
12.221 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
12.222 + } else {
12.223 + free(variableName);
12.224 + strcpy(query, getenv("QUERY_STRING"));
12.225 + if (!(variableName = malloc(queryLength + 1))) {
12.226 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
12.227 + } else {
12.228 + free(variableValue);
12.229 + if (!(variableValue = malloc(queryLength + 1))) {
12.230 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
12.231 +
12.232 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
12.233 + } else {
12.234 +
12.235 + /* PROCESS QUERY DATA */
12.236 + INT q = 0;
12.237 + i = 0;
12.238 + while ((q < queryLength) && (query[q] != '\0')) {
12.239 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
12.240 + variableName[i] = query[q];
12.241 + ++q;
12.242 + ++i;
12.243 + }
12.244 + variableName[i] = '\0';
12.245 + ++q;
12.246 + i = 0;
12.247 + while ((query[q] != '&') && (query[q] != '\0')) {
12.248 + variableValue[i] = query[q];
12.249 + ++q;
12.250 + ++i;
12.251 + }
12.252 + variableValue[i] = '\0';
12.253 + if (query[q] != '\0') {
12.254 + ++q;
12.255 + }
12.256 + if (!menu && !strcmp(variableName, "menu")) {
12.257 + if ((menu = malloc(strlen(variableValue) + 1)) != 0) {
12.258 + strcpy(menu, variableValue);
12.259 + }
12.260 + } else if (!new && !strcmp(variableName, "new")) {
12.261 + if ((new = malloc(strlen(variableValue) + 1)) != 0) {
12.262 + strcpy(new, variableValue);
12.263 + }
12.264 + } else if (!open && !strcmp(variableName, "open")) {
12.265 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
12.266 + strcpy(open, variableValue);
12.267 + }
12.268 + } else if (!next && !strcmp(variableName, "next")) {
12.269 + if ((next = malloc(strlen(variableValue) + 1)) != 0) {
12.270 + strcpy(next, variableValue);
12.271 + }
12.272 + } else if (!settings && !strcmp(variableName, "settings")) {
12.273 + if ((settings = malloc(strlen(variableValue) + 1)) != 0) {
12.274 + strcpy(settings, variableValue);
12.275 + }
12.276 + } else if (!text_file && !strcmp(variableName, "text_file")) {
12.277 + if ((text_file = malloc(strlen(variableValue) + 1)) != 0) {
12.278 + strcpy(text_file, variableValue);
12.279 + }
12.280 + } else if (!status && !strcmp(variableName, "says")) {
12.281 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
12.282 + strcpy(status, variableValue);
12.283 + }
12.284 + }
12.285 + }
12.286 + free(variableValue);
12.287 + variableValue = NULL;
12.288 + }
12.289 + free(variableName);
12.290 + variableName = NULL;
12.291 + }
12.292 + free(query);
12.293 + }
12.294 + }
12.295 +
12.296 + /* IF THIS IS A CONTINUED SESSION... */
12.297 +
12.298 + /* LOAD SESSION FROM FILE */
12.299 +
12.300 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
12.301 + if (settings) {
12.302 + OutputSettingsMenu(settings);
12.303 + } else if (new) {
12.304 + if (!strcmp(new, "text_file")) {
12.305 + OutputGUI("new", new);
12.306 + } else {
12.307 + OutputNewMenu();
12.308 + }
12.309 + } else if (open) {
12.310 + OutputOpenMenu(open);
12.311 + } else if (next) {
12.312 + if (!strcmp(next, "save_as")) {
12.313 +
12.314 + } else if (!strcmp(next, "save")) {
12.315 +
12.316 + } else if (!strcmp(next, "close")) {
12.317 +
12.318 + } else if (!strcmp(next, "bookmark")) {
12.319 +
12.320 + } else if (!strcmp(next, "logout")) {
12.321 +
12.322 + /* SET COOKIES */
12.323 + printf("Set-Cookie: login=; path=/; secure\r\n");
12.324 + printf("Set-Cookie: password=; path=/; secure\r\n");
12.325 +
12.326 + /* REDIRECT TO LOGIN PANEL */
12.327 + printf("Location: login\r\n\r\n");
12.328 + } else if (status) {
12.329 + OutputGUI("status", status);
12.330 + } else {
12.331 + OutputGUI(NULL, NULL);
12.332 + }
12.333 + } else if (menu) {
12.334 + if (!strcmp(menu, "settings")) {
12.335 + OutputSettingsMenu(settings);
12.336 + } else if (!strcmp(menu, "new")) {
12.337 + OutputNewMenu();
12.338 + } else if (!strcmp(menu, "open")) {
12.339 + OutputOpenMenu(open);
12.340 + } else if (!strcmp(menu, "next")) {
12.341 + OutputNextMenu(next);
12.342 + } else if (status) {
12.343 + OutputGUI("status", status);
12.344 + } else {
12.345 + OutputGUI(NULL, NULL);
12.346 + }
12.347 + } else if (text_file) {
12.348 + OutputGUI("text_file", text_file);
12.349 + } else {
12.350 + if (status) {
12.351 + OutputGUI("status", status);
12.352 + } else {
12.353 + OutputGUI(NULL, NULL);
12.354 + }
12.355 + }
12.356 + free(status);
12.357 + free(text_file);
12.358 + free(settings);
12.359 + free(next);
12.360 + free(open);
12.361 + free(new);
12.362 + free(menu);
12.363 + }
12.364 + free(filePassword);
12.365 + }
12.366 + }
12.367 + }
12.368 + free(passwordFileName);
12.369 + }
12.370 + }
12.371 + free(systemDirectory);
12.372 + }
12.373 + free(directory);
12.374 + }
12.375 + free(login);
12.376 + }
12.377 + free(password);
12.378 + free(variableValue);
12.379 + }
12.380 + free(variableName);
12.381 + }
12.382 + free(cookie);
12.383 + }
12.384 + }
12.385 + }
12.386 + return 0;
12.387 +}
12.388 +
12.389 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
12.390 +static void RedirectToLoginPanel(void) {
12.391 + printf("Location: login\r\n\r\n");
12.392 +}
12.393 +
12.394 +/* FUNCTION | OUTPUT XHTML FOR interos GRAPHICAL USER INTERFACE */
12.395 +static void OutputGUI(const char *variableName, char *variableValue) {
12.396 + BeginXHTMLOutput();
12.397 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
12.398 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
12.399 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
12.400 + printf(" <!--========================================================-->\n");
12.401 + printf(" <!-- interos Standard Document Header - Markup -->\n");
12.402 + printf(" <!--========================================================-->\n");
12.403 + printf(" <!-- URIs: https://interos.com/ -->\n");
12.404 + printf(" <!-- https://interos.com/main -->\n");
12.405 + printf(" <!-- https://www.interos.com/ -->\n");
12.406 + printf(" <!-- https://www.interos.com/main -->\n");
12.407 + printf(" <!-- Title: interos -->\n");
12.408 + printf(" <!-- Author: Brent Angeline -->\n");
12.409 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
12.410 + printf(" <!--========================================================-->\n");
12.411 + printf(" <head>\n");
12.412 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
12.413 + printf(" <meta name=\"title\" content=\"interos\" />\n");
12.414 + printf(" <meta name=\"description\" content=\"internet operating system\" />\n");
12.415 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
12.416 + printf(" <meta name=\"copyright\" \n");
12.417 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
12.418 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
12.419 + printf(" <title>interos</title>\n");
12.420 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
12.421 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
12.422 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
12.423 + printf(" media=\"screen, projection\" />\n");
12.424 + printf(" <script type=\"text/javascript\" src=\"/js/interos.js\"></script>\n");
12.425 + printf(" </head>\n");
12.426 + printf(" <frameset rows=\"72,*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
12.427 + printf(" <frame name=\"top\" src=\"/top\" \n");
12.428 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.429 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.430 + if (variableName && variableValue) {
12.431 + printf(" <frame name=\"content\" src=\"/content?%s=%s\" \n", variableName, variableValue);
12.432 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.433 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.434 + } else {
12.435 + printf(" <frame name=\"content\" src=\"/content\" \n");
12.436 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.437 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.438 + }
12.439 + printf(" <frame name=\"bottom\" src=\"/bottom\" \n");
12.440 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.441 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.442 + printf(" <noframes>\n");
12.443 + printf(" <body id=\"body\">\n");
12.444 + printf(" <h3>\n");
12.445 + printf(" menu\n");
12.446 + printf(" </h3>\n");
12.447 + printf(" <p>\n");
12.448 + printf(" <a id=\"newLink\" href=\"/main?menu=new\">new</a>\n");
12.449 + printf(" </p>\n");
12.450 + printf(" <p>\n");
12.451 + printf(" <a id=\"openLink\" href=\"/main?menu=open\">open</a>\n");
12.452 + printf(" </p>\n");
12.453 + printf(" <p>\n");
12.454 + printf(" <a id=\"nextLink\" href=\"/main?menu=next\">next</a>\n");
12.455 + printf(" </p>\n");
12.456 + printf(" <p>\n");
12.457 + printf(" <a id=\"settingsLink\" href=\"/main?menu=settings\">settings</a>");
12.458 + printf(" </p>\n");
12.459 + printf(" </body>\n");
12.460 + printf(" </noframes>\n");
12.461 + printf(" </frameset>\n");
12.462 + FinishXHTMLOutput();
12.463 +}
12.464 +
12.465 +/* FUNCTION | OUTPUT XHTML FOR NEW MENU */
12.466 +static void OutputNewMenu(void) {
12.467 + BeginXHTMLOutput();
12.468 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
12.469 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
12.470 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
12.471 + printf(" <!--========================================================-->\n");
12.472 + printf(" <!-- interos Standard Document Header - Markup -->\n");
12.473 + printf(" <!--========================================================-->\n");
12.474 + printf(" <!-- URIs: https://interos.com/main?menu=new -->\n");
12.475 + printf(" <!-- https://interos.com/interos?menu=new -->\n");
12.476 + printf(" <!-- https://www.interos.com/main?menu=new -->\n");
12.477 + printf(" <!-- https://www.interos.com/interos?menu=new -->\n");
12.478 + printf(" <!-- Title: interos new -->\n");
12.479 + printf(" <!-- Author: Brent Angeline -->\n");
12.480 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
12.481 + printf(" <!--========================================================-->\n");
12.482 + printf(" <head>\n");
12.483 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
12.484 + printf(" <meta name=\"title\" content=\"interos new\" />\n");
12.485 + printf(" <meta name=\"description\" content=\"new menu for interos\" />\n");
12.486 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
12.487 + printf(" <meta name=\"copyright\" \n");
12.488 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
12.489 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
12.490 + printf(" <title>interos new</title>\n");
12.491 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
12.492 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
12.493 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
12.494 + printf(" media=\"screen, projection\" />\n");
12.495 + printf(" <script type=\"text/javascript\" src=\"/js/interos_new.js\"></script>\n");
12.496 + printf(" </head>\n");
12.497 + printf(" <frameset rows=\"*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
12.498 + printf(" <frame name=\"menu\" src=\"/menu?name=new\" \n");
12.499 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.500 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.501 + printf(" <frame name=\"button\" src=\"/bottom?button=new\" \n");
12.502 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.503 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.504 + printf(" <noframes>\n");
12.505 + printf(" <body id=\"body\">\n");
12.506 + printf(" <div id=\"newEntries\">\n");
12.507 + printf(" <p>\n");
12.508 + printf(" <a href=\"/main?new=text_file\">text file</a>\n");
12.509 + printf(" </p>\n");
12.510 + printf(" </div>\n");
12.511 + printf(" <div id=\"newLink\"><a href=\"/main\">new</a></div>\n");
12.512 + printf(" </body>\n");
12.513 + printf(" </noframes>\n");
12.514 + printf(" </frameset>\n");
12.515 + FinishXHTMLOutput();
12.516 +}
12.517 +
12.518 +/* FUNCTION | OUTPUT XHTML FOR OPEN MENU */
12.519 +static void OutputOpenMenu(char *open) {
12.520 + BeginXHTMLOutput();
12.521 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
12.522 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
12.523 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
12.524 + printf(" <!--========================================================-->\n");
12.525 + printf(" <!-- interos Standard Document Header - Markup -->\n");
12.526 + printf(" <!--========================================================-->\n");
12.527 + printf(" <!-- URIs: https://interos.com/main?menu=open -->\n");
12.528 + printf(" <!-- https://interos.com/interos?menu=open -->\n");
12.529 + printf(" <!-- https://www.interos.com/main?menu=open -->\n");
12.530 + printf(" <!-- https://www.interos.com/interos?menu=open -->\n");
12.531 + printf(" <!-- Title: interos open -->\n");
12.532 + printf(" <!-- Author: Brent Angeline -->\n");
12.533 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
12.534 + printf(" <!--========================================================-->\n");
12.535 + printf(" <head>\n");
12.536 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
12.537 + printf(" <meta name=\"title\" content=\"interos open\" />\n");
12.538 + printf(" <meta name=\"description\" content=\"open menu for interos\" />\n");
12.539 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
12.540 + printf(" <meta name=\"copyright\" \n");
12.541 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
12.542 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
12.543 + printf(" <title>interos open</title>\n");
12.544 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
12.545 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
12.546 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
12.547 + printf(" media=\"screen, projection\" />\n");
12.548 + printf(" <script type=\"text/javascript\" src=\"/js/interos_open.js\"></script>\n");
12.549 + printf(" </head>\n");
12.550 + printf(" <frameset rows=\"72,*\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
12.551 + printf(" <frame name=\"button\" src=\"/top?button=open\" \n");
12.552 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.553 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.554 + if (open) {
12.555 + if (!strcmp(open, "text_file")) {
12.556 + printf(" <frame name=\"menu\" src=\"/menu?open=text_file\" \n");
12.557 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.558 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.559 + } else {
12.560 + printf(" <frame name=\"menu\" src=\"/menu?name=open\" \n");
12.561 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.562 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.563 + }
12.564 + } else {
12.565 + printf(" <frame name=\"menu\" src=\"/menu?name=open\" \n");
12.566 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.567 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.568 + }
12.569 + printf(" <noframes>\n");
12.570 + printf(" <body id=\"body\">\n");
12.571 + printf(" <div id=\"openLink\"><a href=\"/main\">open</a></div>\n");
12.572 + printf(" <div id=\"openEntries\">\n");
12.573 + printf(" <p><a href=\"/main?open=text_file\">text file</a></p>\n");
12.574 + printf(" </div>\n");
12.575 + printf(" </body>\n");
12.576 + printf(" </noframes>\n");
12.577 + printf(" </frameset>\n");
12.578 + FinishXHTMLOutput();
12.579 +}
12.580 +
12.581 +/* FUNCTION | OUTPUT XHTML FOR NEXT MENU */
12.582 +static void OutputNextMenu(char *next) {
12.583 + BeginXHTMLOutput();
12.584 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
12.585 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
12.586 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
12.587 + printf(" <!--========================================================-->\n");
12.588 + printf(" <!-- interos Standard Document Header - Markup -->\n");
12.589 + printf(" <!--========================================================-->\n");
12.590 + printf(" <!-- URIs: https://interos.com/main?menu=next -->\n");
12.591 + printf(" <!-- https://interos.com/interos?menu=next -->\n");
12.592 + printf(" <!-- https://www.interos.com/main?menu=next -->\n");
12.593 + printf(" <!-- https://www.interos.com/interos?menu=next -->\n");
12.594 + printf(" <!-- Title: interos next -->\n");
12.595 + printf(" <!-- Author: Brent Angeline -->\n");
12.596 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
12.597 + printf(" <!--========================================================-->\n");
12.598 + printf(" <head>\n");
12.599 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
12.600 + printf(" <meta name=\"title\" content=\"interos next\" />\n");
12.601 + printf(" <meta name=\"description\" content=\"next menu for interos\" />\n");
12.602 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
12.603 + printf(" <meta name=\"copyright\" \n");
12.604 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
12.605 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
12.606 + printf(" <title>interos next</title>\n");
12.607 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
12.608 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
12.609 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
12.610 + printf(" media=\"screen, projection\" />\n");
12.611 + printf(" <script type=\"text/javascript\" src=\"/js/interos_next.js\"></script>\n");
12.612 + printf(" </head>\n");
12.613 + printf(" <frameset rows=\"72,*\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
12.614 + printf(" <frame name=\"button\" src=\"/top?button=next\" \n");
12.615 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.616 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.617 + printf(" <frame name=\"menu\" src=\"/menu?name=next\" \n");
12.618 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.619 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.620 + printf(" <noframes>\n");
12.621 + printf(" <body id=\"body\">\n");
12.622 + printf(" <div id=\"nextLink\"><a href=\"/main\">next</a></div>\n");
12.623 + printf(" <div id=\"nextEntries\">\n");
12.624 + printf(" <p><a href=\"/logout\">logout</a></p>\n");
12.625 + printf(" </div>\n");
12.626 + printf(" </body>\n");
12.627 + printf(" </noframes>\n");
12.628 + printf(" </frameset>\n");
12.629 + FinishXHTMLOutput();
12.630 +}
12.631 +
12.632 +/* FUNCTION | OUTPUT XHTML FOR SETTINGS MENU */
12.633 +void OutputSettingsMenu(char *settings) {
12.634 + BeginXHTMLOutput();
12.635 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
12.636 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
12.637 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
12.638 + printf(" <!--==========================================================-->\n");
12.639 + printf(" <!-- interos Standard Document Header - Markup -->\n");
12.640 + printf(" <!--==========================================================-->\n");
12.641 + printf(" <!-- URIs: https://interos.com/main?menu=settings -->\n");
12.642 + printf(" <!-- https://interos.com/interos?menu=settings -->\n");
12.643 + printf(" <!-- https://www.interos.com/menu?menu=settings -->\n");
12.644 + printf(" <!-- https://www.interos.com/interos?menu=settings -->\n");
12.645 + printf(" <!-- Title: interos settings -->\n");
12.646 + printf(" <!-- Author: Brent Angeline -->\n");
12.647 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
12.648 + printf(" <!--==========================================================-->\n");
12.649 + printf(" <head>\n");
12.650 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
12.651 + printf(" <meta name=\"title\" content=\"interos - settings\" />\n");
12.652 + printf(" <meta name=\"description\" content=\"interos settings menu\" />\n");
12.653 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
12.654 + printf(" <meta name=\"copyright\" \n");
12.655 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
12.656 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
12.657 + printf(" <title>interos settings</title>\n");
12.658 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
12.659 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
12.660 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
12.661 + printf(" media=\"screen, projection\" />\n");
12.662 + printf(" <script type=\"text/javascript\" src=\"/js/interos_settings.js\"></script>\n");
12.663 + printf(" </head>\n");
12.664 + printf(" <frameset rows=\"*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
12.665 + printf(" <frame name=\"menu\" src=\"/menu?name=settings\" \n");
12.666 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.667 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.668 + printf(" <frame name=\"button\" src=\"/bottom?button=settings\" \n");
12.669 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
12.670 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
12.671 + printf(" <noframes>\n");
12.672 + printf(" <body id=\"body\">\n");
12.673 + printf(" <div id=\"settingsEntries\">\n");
12.674 + printf(" <p><a href=\"/main?settings=button_size\">button size</a></p>\n");
12.675 + printf(" </div>\n");
12.676 + printf(" <div id=\"settingsLink\"><a href=\"/main\">settings</a></div>\n");
12.677 + printf(" </body>\n");
12.678 + printf(" </noframes>\n");
12.679 + printf(" </frameset>\n");
12.680 + FinishXHTMLOutput();
12.681 +}
12.682 +
12.683 +static void BeginXHTMLOutput(void) {
12.684 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
12.685 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
12.686 +}
12.687 +
12.688 +static void FinishXHTMLOutput(void) {
12.689 + printf(" <!--=====================================================================-->\n");
12.690 + printf(" <!-- Copyright and Trademark Statement -->\n");
12.691 + printf(" <!--=====================================================================-->\n");
12.692 + printf(" <!-- -->\n");
12.693 + printf(" <!-- All original textual and graphical site content: -->\n");
12.694 + printf(" <!-- -->\n");
12.695 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
12.696 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
12.697 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
12.698 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
12.699 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
12.700 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
12.701 + printf(" <!-- are the properties of their respective authors. All software -->\n");
12.702 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
12.703 + printf(" <!-- -->\n");
12.704 + printf(" <!--=====================================================================-->\n");
12.705 + printf(" <!-- e-mail: info@interos.com -->\n");
12.706 + printf(" <!--=====================================================================-->\n");
12.707 + printf("</html>");
12.708 +}
12.709 +
12.710 +/***********************************************************************/
12.711 +/* Copyright and Trademark Statement */
12.712 +/***********************************************************************/
12.713 +/* */
12.714 +/* All original textual and graphical site content: */
12.715 +/* */
12.716 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
12.717 +/* reserved. Reproduction in whole or in part without written */
12.718 +/* permission is prohibited. interos and the interos logos are */
12.719 +/* trademarks of Brent Angeline and interos LLC. All other company, */
12.720 +/* product, and service names mentioned herein may be the properties */
12.721 +/* of their respective owners. Comments in the interos.org forums */
12.722 +/* are the properties of their respective authors. All software */
12.723 +/* developed in the forums is open source and belongs to everyone. */
12.724 +/* */
12.725 +/***********************************************************************/
12.726 +/* e-mail: info@interos.com */
12.727 +/***********************************************************************/
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13.2 +++ b/c/menu_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
13.3 @@ -0,0 +1,812 @@
13.4 +/*************************************************/
13.5 +/* interos Standard Document Header - CGI in C */
13.6 +/*************************************************/
13.7 +/* URIs: https://interos.com/menu */
13.8 +/* https://www.interos.com/menu */
13.9 +/* Source: menu.c */
13.10 +/* Description: FastCGI for interos menu */
13.11 +/* Author: Brent Angeline */
13.12 +/* CGI: FastCGI in ISO/ANSI C */
13.13 +/*************************************************/
13.14 +
13.15 +/* PREPROCESSOR DIRECTIVES */
13.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
13.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
13.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
13.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
13.20 +#include <unistd.h> /* F_OK, access() */
13.21 +
13.22 +#ifndef INTEROS_H
13.23 +
13.24 + /* TYPE DEFINITION */
13.25 + typedef struct {
13.26 + char *name;
13.27 + char *link;
13.28 + char *icon;
13.29 + struct MENU_ITEM *next;
13.30 + } MENU_ITEM;
13.31 +
13.32 +#endif
13.33 +
13.34 +/* FUNCTION PROTOTYPE DECLARATIONS */
13.35 +static void RedirectToLoginPanel(void);
13.36 +static void OutputNewMenu(void);
13.37 +static void OutputOpenMenu(char *open);
13.38 +static void OutputNextMenu(char *next);
13.39 +static void OutputSettingsMenu(char *settings);
13.40 +static void BeginXHTMLOutput(void);
13.41 +static void FinishXHTMLOutput(void);
13.42 +
13.43 +/* BEGIN MAIN PROGRAM */
13.44 +int main(void) {
13.45 +
13.46 + /* BEGIN FASTCGI */
13.47 + while (FCGI_Accept() >= 0) {
13.48 +
13.49 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
13.50 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
13.51 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
13.52 + RedirectToLoginPanel();
13.53 +
13.54 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
13.55 + } else {
13.56 +
13.57 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
13.58 + char *cookie;
13.59 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
13.60 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
13.61 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
13.62 + RedirectToLoginPanel();
13.63 + } else {
13.64 + char *variableName;
13.65 + if (!(variableName = malloc(cookieLength + 1))) {
13.66 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
13.67 + RedirectToLoginPanel();
13.68 + } else {
13.69 + char *variableValue;
13.70 + if (!(variableValue = malloc(cookieLength + 1))) {
13.71 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
13.72 + RedirectToLoginPanel();
13.73 +
13.74 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
13.75 + } else {
13.76 +
13.77 + /* PROCESS COOKIE DATA */
13.78 + char *login, *password;
13.79 + INT c, i;
13.80 + login = password = NULL;
13.81 + c = 0;
13.82 + strcpy(cookie, getenv("HTTP_COOKIE"));
13.83 + while ((c < cookieLength) && (cookie[c] != '\0')) {
13.84 + i = 0;
13.85 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
13.86 + variableName[i] = cookie[c];
13.87 + ++c;
13.88 + ++i;
13.89 + }
13.90 + variableName[i] = '\0';
13.91 + ++c;
13.92 + i = 0;
13.93 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
13.94 + variableValue[i] = cookie[c];
13.95 + ++c;
13.96 + ++i;
13.97 + }
13.98 + variableValue[i] = '\0';
13.99 + ++c;
13.100 + while ((c < cookieLength) && (cookie[c] == ' ')) {
13.101 + ++c;
13.102 + }
13.103 + if (!login && !strcmp(variableName, "login")) {
13.104 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
13.105 + strcpy(login, variableValue);
13.106 + }
13.107 + } else if (!password && !strcmp(variableName, "password")) {
13.108 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
13.109 + strcpy(password, variableValue);
13.110 + }
13.111 + }
13.112 + }
13.113 +
13.114 + /* IF LOGIN VALUE IS MISSING... */
13.115 + if (!login) {
13.116 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
13.117 + RedirectToLoginPanel();
13.118 +
13.119 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
13.120 + } else {
13.121 +
13.122 + /* VERIFY LOGIN AND PASSWORD */
13.123 + char *directory;
13.124 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
13.125 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
13.126 + RedirectToLoginPanel();
13.127 + } else {
13.128 + char *systemDirectory;
13.129 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
13.130 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
13.131 + RedirectToLoginPanel();
13.132 + } else {
13.133 + strcpy(directory, DIRECTORY);
13.134 + strcat(directory, login);
13.135 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
13.136 + strcat(systemDirectory, login);
13.137 +
13.138 + /* IF DIRECTORY CAN'T BE ACCESSED... */
13.139 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
13.140 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
13.141 + RedirectToLoginPanel();
13.142 +
13.143 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
13.144 + } else {
13.145 +
13.146 + /* ATTEMPT TO ACCESS PASSWORD FILE */
13.147 + char *passwordFileName;
13.148 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 11))) {
13.149 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
13.150 + RedirectToLoginPanel();
13.151 + } else {
13.152 + strcpy(passwordFileName, systemDirectory);
13.153 + strcat(passwordFileName, PASSWORD_FILE_NAME);
13.154 +
13.155 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
13.156 + if (access(passwordFileName, F_OK)) {
13.157 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
13.158 + RedirectToLoginPanel();
13.159 +
13.160 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
13.161 + } else {
13.162 +
13.163 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
13.164 + FILE *passwordFile;
13.165 +
13.166 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
13.167 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
13.168 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
13.169 + RedirectToLoginPanel();
13.170 +
13.171 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
13.172 + } else {
13.173 + char *filePassword;
13.174 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
13.175 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
13.176 + RedirectToLoginPanel();
13.177 + } else {
13.178 + char c;
13.179 + i = 0;
13.180 +
13.181 + /* READ PASSWORD FROM PASSWORD FILE */
13.182 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
13.183 + filePassword[i] = c;
13.184 + ++i;
13.185 + }
13.186 + filePassword[i] = '\0';
13.187 + fclose(passwordFile);
13.188 +
13.189 + /* IF PASSWORD FAILS COMPARISON... */
13.190 + if (strcmp(filePassword, password)) {
13.191 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
13.192 + RedirectToLoginPanel();
13.193 +
13.194 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
13.195 + } else {
13.196 +
13.197 + /* LOAD SETTINGS VALUES FROM FILES */
13.198 +
13.199 + /* LOAD COMPONENTS FROM FILES */
13.200 +
13.201 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
13.202 + char *name, *open;
13.203 + name = open = NULL;
13.204 +
13.205 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
13.206 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
13.207 + char *query;
13.208 + INT queryLength = strlen(getenv("QUERY_STRING"));
13.209 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
13.210 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
13.211 + } else {
13.212 + strcpy(query, getenv("QUERY_STRING"));
13.213 + free(variableName);
13.214 + if (!(variableName = malloc(queryLength + 1))) {
13.215 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
13.216 + } else {
13.217 + free(variableValue);
13.218 + if (!(variableValue = malloc(queryLength + 1))) {
13.219 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
13.220 +
13.221 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
13.222 + } else {
13.223 +
13.224 + /* PROCESS QUERY DATA */
13.225 + INT q = 0;
13.226 + i = 0;
13.227 + while ((q < queryLength) && (query[q] != '\0')) {
13.228 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
13.229 + variableName[i] = query[q];
13.230 + ++q;
13.231 + ++i;
13.232 + }
13.233 + variableName[i] = '\0';
13.234 + ++q;
13.235 + i = 0;
13.236 + while ((query[q] != '&') && (query[q] != '\0')) {
13.237 + variableValue[i] = query[q];
13.238 + ++q;
13.239 + ++i;
13.240 + }
13.241 + variableValue[i] = '\0';
13.242 + if (query[q] != '\0') {
13.243 + ++q;
13.244 + }
13.245 + if (!name && !strcmp(variableName, "name")) {
13.246 + if ((name = malloc(strlen(variableValue) + 1)) != 0) {
13.247 + strcpy(name, variableValue);
13.248 + }
13.249 + } else if (!open && !strcmp(variableName, "open")) {
13.250 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
13.251 + strcpy(open, variableValue);
13.252 + }
13.253 + }
13.254 + }
13.255 + free(variableValue);
13.256 + variableValue = NULL;
13.257 + }
13.258 + free(variableName);
13.259 + variableName = NULL;
13.260 + }
13.261 + free(query);
13.262 + }
13.263 + }
13.264 +
13.265 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
13.266 + if (name) {
13.267 + if (!strcmp(name, "settings")) {
13.268 + OutputSettingsMenu(NULL);
13.269 + } else if (!strcmp(name, "new")) {
13.270 + OutputNewMenu();
13.271 + } else if (!strcmp(name, "open")) {
13.272 + OutputOpenMenu(NULL);
13.273 + } else if (!strcmp(name, "next")) {
13.274 + OutputNextMenu(NULL);
13.275 + } else {
13.276 + RedirectToLoginPanel();
13.277 + }
13.278 + } else if (open) {
13.279 + if (!strcmp(open, "text_file")) {
13.280 + OutputOpenMenu(open);
13.281 + } else {
13.282 + OutputOpenMenu(NULL);
13.283 + }
13.284 + } else {
13.285 + RedirectToLoginPanel();
13.286 + }
13.287 + free(name);
13.288 + free(open);
13.289 + }
13.290 + free(filePassword);
13.291 + }
13.292 + }
13.293 + }
13.294 + free(passwordFileName);
13.295 + }
13.296 + }
13.297 + free(systemDirectory);
13.298 + }
13.299 + free(directory);
13.300 + }
13.301 + free(login);
13.302 + }
13.303 + free(password);
13.304 + free(variableValue);
13.305 + }
13.306 + free(variableName);
13.307 + }
13.308 + free(cookie);
13.309 + }
13.310 + }
13.311 + }
13.312 + return 0;
13.313 +}
13.314 +
13.315 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
13.316 +static void RedirectToLoginPanel(void) {
13.317 + printf("Location: login\r\n\r\n");
13.318 +}
13.319 +
13.320 +static void OutputNewMenu(void) {
13.321 + BeginXHTMLOutput();
13.322 + printf(" class=\"newMenu\">\n");
13.323 + printf(" <!--==================================================-->\n");
13.324 + printf(" <!-- interos Standard Document Header - Markup -->\n");
13.325 + printf(" <!--==================================================-->\n");
13.326 + printf(" <!-- URIs: https://interos.com/menu?name=new -->\n");
13.327 + printf(" <!-- https://www.interos.com/menu?name=new -->\n");
13.328 + printf(" <!-- Title: interos new menu -->\n");
13.329 + printf(" <!-- Author: Brent Angeline -->\n");
13.330 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
13.331 + printf(" <!--==================================================-->\n");
13.332 + printf(" <head>\n");
13.333 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
13.334 + printf(" <meta name=\"title\" content=\"interos new menu\" />\n");
13.335 + printf(" <meta name=\"description\" content=\"new menu for interos\" />\n");
13.336 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
13.337 + printf(" <meta name=\"copyright\" \n");
13.338 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
13.339 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
13.340 + printf(" <title>interos new menu</title>\n");
13.341 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
13.342 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
13.343 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/menu.css\" \n");
13.344 + printf(" media=\"screen, projection\" />\n");
13.345 + printf(" <script type=\"text/javascript\" src=\"/js/menu.js\"></script>\n");
13.346 + printf(" </head>\n");
13.347 + printf(" <body id=\"body\">\n");
13.348 + printf(" <center>\n");
13.349 + printf(" <div id=\"newMenu\">\n");
13.350 + printf(" <div id=\"newMenuContent\">\n");
13.351 + printf(" <table>\n");
13.352 + printf(" <thead>\n");
13.353 + printf(" <tr>\n");
13.354 + printf(" <th><h1>new menu</h1></th>\n");
13.355 + printf(" </tr>\n");
13.356 + printf(" </thead>\n");
13.357 + printf(" <tbody>\n");
13.358 + printf(" <tr>\n");
13.359 + printf(" <td><a href=\"/new?alarm\" target=\"_top\">\n");
13.360 + printf(" <img src=\"/images/icons/new/alarm.png\" \n");
13.361 + printf(" alt=\"alarm\" /><br /><span>alarm</span><br />\n");
13.362 + printf(" <br />\n");
13.363 + printf(" </a></td>\n");
13.364 + printf(" </tr>\n");
13.365 + printf(" <tr>\n");
13.366 + printf(" <td><a href=\"/new?bookmark\" target=\"_top\">\n");
13.367 + printf(" <img src=\"/images/icons/new/bookmark.png\" \n");
13.368 + printf(" alt=\"bookmark\" /><br /><span>bookmark</span><br />\n");
13.369 + printf(" <br />\n");
13.370 + printf(" </a></td>\n");
13.371 + printf(" </tr>\n");
13.372 + printf(" <tr>\n");
13.373 + printf(" <td><a href=\"/new?chat\" target=\"_top\">\n");
13.374 + printf(" <img src=\"/images/icons/new/chat.png\" \n");
13.375 + printf(" alt=\"chat\" /><br /><span>chat</span><br />\n");
13.376 + printf(" <br />\n");
13.377 + printf(" </a></td>\n");
13.378 + printf(" </tr>\n");
13.379 + printf(" <tr>\n");
13.380 + printf(" <td><a href=\"/new?copy\" target=\"_top\">\n");
13.381 + printf(" <img src=\"/images/icons/new/copy.png\" \n");
13.382 + printf(" alt=\"copy\" /><br /><span>copy</span><br />\n");
13.383 + printf(" <br />\n");
13.384 + printf(" </a></td>\n");
13.385 + printf(" </tr>\n");
13.386 + printf(" <tr>\n");
13.387 + printf(" <td><a href=\"/new?document\" target=\"_top\">\n");
13.388 + printf(" <img src=\"/images/icons/new/document.png\" \n");
13.389 + printf(" alt=\"document\" /><br /><span>document</span><br />\n");
13.390 + printf(" <br />\n");
13.391 + printf(" </a></td>\n");
13.392 + printf(" </tr>\n");
13.393 + printf(" <tr>\n");
13.394 + printf(" <td><a href=\"/new?download\" target=\"_top\">\n");
13.395 + printf(" <img src=\"/images/icons/new/download.png\" \n");
13.396 + printf(" alt=\"download\" /><br /><span>download</span><br />\n");
13.397 + printf(" <br />\n");
13.398 + printf(" </a></td>\n");
13.399 + printf(" </tr>\n");
13.400 + printf(" <tr>\n");
13.401 + printf(" <td><a href=\"/new?e-mail\" target=\"_top\">\n");
13.402 + printf(" <img src=\"/images/icons/new/e-mail.png\" \n");
13.403 + printf(" alt=\"e-mail\" /><br /><span>e-mail</span><br />\n");
13.404 + printf(" <br />\n");
13.405 + printf(" </a></td>\n");
13.406 + printf(" </tr>\n");
13.407 + printf(" <tr>\n");
13.408 + printf(" <td><a href=\"/new?folder\" target=\"_top\">\n");
13.409 + printf(" <img src=\"/images/icons/new/folder.png\" \n");
13.410 + printf(" alt=\"folder\" /><br /><span>folder</span><br />\n");
13.411 + printf(" <br />\n");
13.412 + printf(" </a></td>\n");
13.413 + printf(" </tr>\n");
13.414 + printf(" <tr>\n");
13.415 + printf(" <td><a href=\"/new?phone_call\" target=\"_top\">\n");
13.416 + printf(" <img src=\"/images/icons/new/phone_call.png\" \n");
13.417 + printf(" alt=\"phone call\" /><br /><span>phone call</span><br />\n");
13.418 + printf(" <br />\n");
13.419 + printf(" </a></td>\n");
13.420 + printf(" </tr>\n");
13.421 + printf(" <tr>\n");
13.422 + printf(" <td><a href=\"/new?search\" target=\"_top\">\n");
13.423 + printf(" <img src=\"/images/icons/new/search.png\" \n");
13.424 + printf(" alt=\"search\" /><br /><span>search</span><br />\n");
13.425 + printf(" <br />\n");
13.426 + printf(" </a></td>\n");
13.427 + printf(" </tr>\n");
13.428 + printf(" <tr>\n");
13.429 + printf(" <td><a href=\"/new?share\" target=\"_top\">\n");
13.430 + printf(" <img src=\"/images/icons/new/share.png\" \n");
13.431 + printf(" alt=\"share\" /><br /><span>share</span><br />\n");
13.432 + printf(" <br />\n");
13.433 + printf(" </a></td>\n");
13.434 + printf(" </tr>\n");
13.435 + printf(" <tr>\n");
13.436 + printf(" <td><a href=\"/new?text_file\" target=\"_top\">\n");
13.437 + printf(" <img src=\"/images/icons/new/text_file.png\" \n");
13.438 + printf(" alt=\"text file\" /><br /><span>text file</span><br />\n");
13.439 + printf(" <br />\n");
13.440 + printf(" </a></td>\n");
13.441 + printf(" </tr>\n");
13.442 + printf(" <tr>\n");
13.443 + printf(" <td><a href=\"/new?upload\" target=\"_top\">\n");
13.444 + printf(" <img src=\"/images/icons/new/upload.png\" \n");
13.445 + printf(" alt=\"upload\" /><br /><span>upload</span><br />\n");
13.446 + printf(" <br />\n");
13.447 + printf(" </a></td>\n");
13.448 + printf(" </tr>\n");
13.449 + printf(" </tbody>\n");
13.450 + printf(" </table>\n");
13.451 + printf(" </div>\n");
13.452 + FinishXHTMLOutput();
13.453 +}
13.454 +
13.455 +static void OutputOpenMenu(char *open) {
13.456 + BeginXHTMLOutput();
13.457 + printf(" class=\"openMenu\">\n");
13.458 + printf(" <!--===================================================-->\n");
13.459 + printf(" <!-- interos Standard Document Header - Markup -->\n");
13.460 + printf(" <!--===================================================-->\n");
13.461 + printf(" <!-- URIs: https://interos.com/menu?name=open -->\n");
13.462 + printf(" <!-- https://www.interos.com/menu?name=open -->\n");
13.463 + printf(" <!-- Title: interos open menu -->\n");
13.464 + printf(" <!-- Author: Brent Angeline -->\n");
13.465 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
13.466 + printf(" <!--===================================================-->\n");
13.467 + printf(" <head>\n");
13.468 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
13.469 + printf(" <meta name=\"title\" content=\"interos open menu\" />\n");
13.470 + printf(" <meta name=\"description\" content=\"open menu for interos\" />\n");
13.471 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
13.472 + printf(" <meta name=\"copyright\" \n");
13.473 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
13.474 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
13.475 + printf(" <title>interos - open menu</title>\n");
13.476 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
13.477 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
13.478 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/menu.css\" \n");
13.479 + printf(" media=\"screen, projection\" />\n");
13.480 + printf(" <script type=\"text/javascript\" src=\"/js/menu.js\"></script>\n");
13.481 + printf(" </head>\n");
13.482 + printf(" <body id=\"body\">\n");
13.483 + printf(" <center>\n");
13.484 + printf(" <div id=\"openMenu\">\n");
13.485 + printf(" <div id=\"openMenuContent\">\n");
13.486 + printf(" <table>\n");
13.487 + printf(" <thead>\n");
13.488 + printf(" <tr>\n");
13.489 + printf(" <th><h1>open menu</h1></th>\n");
13.490 + printf(" </tr>\n");
13.491 + printf(" </thead>\n");
13.492 + printf(" <tbody>\n");
13.493 + printf(" <tr>\n");
13.494 + if (open && !strcmp(open, "text_file")) {
13.495 + printf(" <td><a href=\"/interos?text_file=empty.txt\" target=\"_top\">\n");
13.496 + printf(" <img src=\"/images/icons/open/text_file.png\" \n");
13.497 + printf(" alt=\"empty.txt\" /><br /><span>empty.txt</span><br />\n");
13.498 + printf(" <br />\n");
13.499 + printf(" </a></td>\n");
13.500 + } else {
13.501 + printf(" <td><a href=\"/interos?open=alarm\" target=\"_top\">\n");
13.502 + printf(" <img src=\"/images/icons/open/alarm.png\" \n");
13.503 + printf(" alt=\"alarm\" /><br /><span>alarm</span><br />\n");
13.504 + printf(" <br />\n");
13.505 + printf(" </a></td>\n");
13.506 + printf(" </tr>\n");
13.507 + printf(" <tr>\n");
13.508 + printf(" <td><a href=\"/interos?open=bookmark\" target=\"_top\">\n");
13.509 + printf(" <img src=\"/images/icons/open/bookmark.png\" \n");
13.510 + printf(" alt=\"bookmark\" /><br /><span>bookmark</span><br />\n");
13.511 + printf(" <br />\n");
13.512 + printf(" </a></td>\n");
13.513 + printf(" </tr>\n");
13.514 + printf(" <tr>\n");
13.515 + printf(" <td><a href=\"/interos?open=document\" target=\"_top\">\n");
13.516 + printf(" <img src=\"/images/icons/open/document.png\" \n");
13.517 + printf(" alt=\"document\" /><br /><span>document</span><br />\n");
13.518 + printf(" <br />\n");
13.519 + printf(" </a></td>\n");
13.520 + printf(" </tr>\n");
13.521 + printf(" <tr>\n");
13.522 + printf(" <td><a href=\"/interos?open=e-mail\" target=\"_top\">\n");
13.523 + printf(" <img src=\"/images/icons/open/e-mail.png\" \n");
13.524 + printf(" alt=\"e-mail\" /><br /><span>e-mail</span><br />\n");
13.525 + printf(" <br />\n");
13.526 + printf(" </a></td>\n");
13.527 + printf(" </tr>\n");
13.528 + printf(" <tr>\n");
13.529 + printf(" <td><a href=\"/interos?open=image\" target=\"_top\">\n");
13.530 + printf(" <img src=\"/images/icons/open/image.png\" \n");
13.531 + printf(" alt=\"image\" /><br /><span>image</span><br />\n");
13.532 + printf(" <br />\n");
13.533 + printf(" </a></td>\n");
13.534 + printf(" </tr>\n");
13.535 + printf(" <tr>\n");
13.536 + printf(" <td><a href=\"/interos?open=incoming\" target=\"_top\">\n");
13.537 + printf(" <img src=\"/images/icons/open/incoming.png\" \n");
13.538 + printf(" alt=\"incoming\" /><br /><span>incoming</span><br />\n");
13.539 + printf(" <br />\n");
13.540 + printf(" </a></td>\n");
13.541 + printf(" </tr>\n");
13.542 + printf(" <tr>\n");
13.543 + printf(" <td><a href=\"/interos?open=music\" target=\"_top\">\n");
13.544 + printf(" <img src=\"/images/icons/open/music.png\" \n");
13.545 + printf(" alt=\"music\" /><br /><span>music</span><br />\n");
13.546 + printf(" <br />\n");
13.547 + printf(" </a></td>\n");
13.548 + printf(" </tr>\n");
13.549 + printf(" <tr>\n");
13.550 + printf(" <td><a href=\"/interos?open=shared\" target=\"_top\">\n");
13.551 + printf(" <img src=\"/images/icons/open/shared.png\" \n");
13.552 + printf(" alt=\"shared\" /><br /><span>shared</span><br />\n");
13.553 + printf(" <br />\n");
13.554 + printf(" </a></td>\n");
13.555 + printf(" </tr>\n");
13.556 + printf(" <tr>\n");
13.557 + printf(" <td><a href=\"/interos?open=text_file\" target=\"_top\">\n");
13.558 + printf(" <img src=\"/images/icons/open/text_file.png\" \n");
13.559 + printf(" alt=\"text file\" /><br /><span>text file</span><br />\n");
13.560 + printf(" <br />\n");
13.561 + printf(" </a></td>\n");
13.562 + printf(" </tr>\n");
13.563 + printf(" <tr>\n");
13.564 + printf(" <td><a href=\"/interos?open=video\" target=\"_top\">\n");
13.565 + printf(" <img src=\"/images/icons/open/video.png\" \n");
13.566 + printf(" alt=\"video\" /><br /><span>video</span><br />\n");
13.567 + printf(" <br />\n");
13.568 + printf(" </a></td>\n");
13.569 + }
13.570 + printf(" </tr>\n");
13.571 + printf(" </tbody>\n");
13.572 + printf(" </table>\n");
13.573 + printf(" </center>\n");
13.574 + printf(" </div>\n");
13.575 + FinishXHTMLOutput();
13.576 +}
13.577 +
13.578 +static void OutputNextMenu(char *next) {
13.579 + BeginXHTMLOutput();
13.580 + printf(" class=\"nextMenu\">\n");
13.581 + printf(" <!--===================================================-->\n");
13.582 + printf(" <!-- interos Standard Document Header - Markup -->\n");
13.583 + printf(" <!--===================================================-->\n");
13.584 + printf(" <!-- URIs: https://interos.com/menu?name=next -->\n");
13.585 + printf(" <!-- https://www.interos.com/menu?name=next -->\n");
13.586 + printf(" <!-- Title: interos next menu -->\n");
13.587 + printf(" <!-- Author: Brent Angeline -->\n");
13.588 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
13.589 + printf(" <!--===================================================-->\n");
13.590 + printf(" <head>\n");
13.591 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
13.592 + printf(" <meta name=\"title\" content=\"interos next menu\" />\n");
13.593 + printf(" <meta name=\"description\" content=\"next menu for interos\" />\n");
13.594 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
13.595 + printf(" <meta name=\"copyright\" \n");
13.596 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
13.597 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
13.598 + printf(" <title>interos next menu</title>\n");
13.599 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
13.600 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
13.601 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/menu.css\" \n");
13.602 + printf(" media=\"screen, projection\" />\n");
13.603 + printf(" <script type=\"text/javascript\" src=\"/js/menu.js\"></script>\n");
13.604 + printf(" </head>\n");
13.605 + printf(" <body id=\"body\">\n");
13.606 + printf(" <center>\n");
13.607 + printf(" <div id=\"nextMenu\">\n");
13.608 + printf(" <div id=\"nextMenuContent\">\n");
13.609 + printf(" <table>\n");
13.610 + printf(" <thead>\n");
13.611 + printf(" <th><h1>next menu</h1></th>\n");
13.612 + printf(" </thead>\n");
13.613 + printf(" <tbody>\n");
13.614 + printf(" <tr>\n");
13.615 + printf(" <td><a href=\"/interos?next=bookmark\" target=\"_top\">\n");
13.616 + printf(" <img src=\"/images/icons/next/bookmark.png\" \n");
13.617 + printf(" alt=\"bookmark\" /><br /><span>bookmark</span><br />\n");
13.618 + printf(" <br />\n");
13.619 + printf(" </a></td>\n");
13.620 + printf(" </tr>\n");
13.621 + printf(" <tr>\n");
13.622 + printf(" <td><a href=\"/interos?next=close\" target=\"_top\">\n");
13.623 + printf(" <img src=\"/images/icons/next/close.png\" \n");
13.624 + printf(" alt=\"close\" /><br /><span>close</span><br />\n");
13.625 + printf(" <br />\n");
13.626 + printf(" </a></td>\n");
13.627 + printf(" </tr>\n");
13.628 + printf(" <tr>\n");
13.629 + printf(" <td><a href=\"/logout\" target=\"_top\">\n");
13.630 + printf(" <img src=\"/images/icons/next/logout.png\" \n");
13.631 + printf(" alt=\"logout\" /><br /><span>logout</span><br />\n");
13.632 + printf(" <br />\n");
13.633 + printf(" </a></td>\n");
13.634 + printf(" </tr>\n");
13.635 + printf(" <tr>\n");
13.636 + printf(" <td><a href=\"/interos?next=save\" target=\"_top\">\n");
13.637 + printf(" <img src=\"/images/icons/next/save.png\" \n");
13.638 + printf(" alt=\"save\" /><br /><span>save</span><br />\n");
13.639 + printf(" <br />\n");
13.640 + printf(" </a></td>\n");
13.641 + printf(" </tr>\n");
13.642 + printf(" <tr>\n");
13.643 + printf(" <td><a href=\"/interos?next=save_as\" target=\"_top\">\n");
13.644 + printf(" <img src=\"/images/icons/next/save_as.png\" \n");
13.645 + printf(" alt=\"save as\" /><br /><span>save as</span><br />\n");
13.646 + printf(" <br />\n");
13.647 + printf(" </a></td>\n");
13.648 + printf(" </tr>\n");
13.649 + printf(" </tbody>\n");
13.650 + printf(" </table>\n");
13.651 + printf(" </div>\n");
13.652 + FinishXHTMLOutput();
13.653 +}
13.654 +
13.655 +static void OutputSettingsMenu(char *settings) {
13.656 + BeginXHTMLOutput();
13.657 + printf(" class=\"settingsMenu\">\n");
13.658 + printf(" <!--=======================================================-->\n");
13.659 + printf(" <!-- interos Standard Document Header - Markup -->\n");
13.660 + printf(" <!--=======================================================-->\n");
13.661 + printf(" <!-- URIs: https://interos.com/menu?name=settings -->\n");
13.662 + printf(" <!-- https://www.interos.com/menu?name=settings -->\n");
13.663 + printf(" <!-- Title: interos settings menu -->\n");
13.664 + printf(" <!-- Author: Brent Angeline -->\n");
13.665 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
13.666 + printf(" <!--=======================================================-->\n");
13.667 + printf(" <head>\n");
13.668 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
13.669 + printf(" <meta name=\"title\" content=\"interos settings menu\" />\n");
13.670 + printf(" <meta name=\"description\" content=\"settings menu for interos\" />\n");
13.671 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
13.672 + printf(" <meta name=\"copyright\" \n");
13.673 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
13.674 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
13.675 + printf(" <title>interos settings menu</title>\n");
13.676 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
13.677 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
13.678 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/menu.css\" \n");
13.679 + printf(" media=\"screen, projection\" />\n");
13.680 + printf(" <script type=\"text/javascript\" src=\"/js/menu.js\"></script>\n");
13.681 + printf(" </head>\n");
13.682 + printf(" <body id=\"body\">\n");
13.683 + printf(" <center>\n");
13.684 + printf(" <div id=\"settingsMenu\">\n");
13.685 + printf(" <div id=\"settingsMenuContent\">\n");
13.686 + printf(" <table>\n");
13.687 + printf(" <thead>\n");
13.688 + printf(" <tr>\n");
13.689 + printf(" <th><h1>settings menu</h1></th>\n");
13.690 + printf(" </tr>\n");
13.691 + printf(" </thead>\n");
13.692 + printf(" <tbody>\n");
13.693 + printf(" <tr>\n");
13.694 + printf(" <td><a href=\"/interos?settings=audio\" target=\"_top\">\n");
13.695 + printf(" <img src=\"/images/icons/settings/audio.png\" \n");
13.696 + printf(" alt=\"audio\" /><br /><span>audio</span><br />\n");
13.697 + printf(" <br />\n");
13.698 + printf(" </a></td>\n");
13.699 + printf(" </tr>\n");
13.700 + printf(" <tr>\n");
13.701 + printf(" <td><a href=\"/interos?settings=buttons\" target=\"_top\">\n");
13.702 + printf(" <img src=\"/images/icons/settings/buttons.png\" \n");
13.703 + printf(" alt=\"buttons\" /><br /><span>buttons</span><br />\n");
13.704 + printf(" <br />\n");
13.705 + printf(" </a></td>\n");
13.706 + printf(" </tr>\n");
13.707 + printf(" <tr>\n");
13.708 + printf(" <td><a href=\"/interos?settings=chat\" target=\"_top\">\n");
13.709 + printf(" <img src=\"/images/icons/settings/chat.png\" \n");
13.710 + printf(" alt=\"chat\" /><br /><span>chat</span><br />\n");
13.711 + printf(" <br />\n");
13.712 + printf(" </a></td>\n");
13.713 + printf(" </tr>\n");
13.714 + printf(" <tr>\n");
13.715 + printf(" <td><a href=\"/interos?settings=clock\" target=\"_top\">\n");
13.716 + printf(" <img src=\"/images/icons/settings/clock.png\" \n");
13.717 + printf(" alt=\"clock\" /><br /><span>clock</span><br />\n");
13.718 + printf(" <br />\n");
13.719 + printf(" </a></td>\n");
13.720 + printf(" </tr>\n");
13.721 + printf(" <tr>\n");
13.722 + printf(" <td><a href=\"/interos?settings=e-mail\" target=\"_top\">\n");
13.723 + printf(" <img src=\"/images/icons/settings/e-mail.png\" \n");
13.724 + printf(" alt=\"e-mail\" /><br /><span>e-mail</span><br />\n");
13.725 + printf(" <br />\n");
13.726 + printf(" </a></td>\n");
13.727 + printf(" </tr>\n");
13.728 + printf(" <tr>\n");
13.729 + printf(" <td><a href=\"/interos?settings=images\" target=\"_top\">\n");
13.730 + printf(" <img src=\"/images/icons/settings/images.png\" \n");
13.731 + printf(" alt=\"images\" /><br /><span>images</span><br />\n");
13.732 + printf(" <br />\n");
13.733 + printf(" </a></td>\n");
13.734 + printf(" </tr>\n");
13.735 + printf(" <tr>\n");
13.736 + printf(" <td><a href=\"/interos?settings=phone\" target=\"_top\">\n");
13.737 + printf(" <img src=\"/images/icons/settings/phone.png\" \n");
13.738 + printf(" alt=\"phone\" /><br /><span>phone</span><br />\n");
13.739 + printf(" <br />\n");
13.740 + printf(" </a></td>\n");
13.741 + printf(" </tr>\n");
13.742 + printf(" <tr>\n");
13.743 + printf(" <td><a href=\"/interos?settings=search\" target=\"_top\">\n");
13.744 + printf(" <img src=\"/images/icons/settings/search.png\" \n");
13.745 + printf(" alt=\"search\" /><br /><span>search</span><br />\n");
13.746 + printf(" <br />\n");
13.747 + printf(" </a></td>\n");
13.748 + printf(" </tr>\n");
13.749 + printf(" <tr>\n");
13.750 + printf(" <td><a href=\"/interos?settings=video\" target=\"_top\">\n");
13.751 + printf(" <img src=\"/images/icons/settings/video.png\" \n");
13.752 + printf(" alt=\"video\" /><br /><span>video</span><br />\n");
13.753 + printf(" <br />\n");
13.754 + printf(" </a></td>\n");
13.755 + printf(" </tr>\n");
13.756 + printf(" </tbody>\n");
13.757 + printf(" </table>\n");
13.758 + printf(" </div>\n");
13.759 + FinishXHTMLOutput();
13.760 +}
13.761 +
13.762 +/* FUNCTION | BEGIN XHTML OUTPUT */
13.763 +static void BeginXHTMLOutput(void) {
13.764 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
13.765 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
13.766 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/menu.css\"?>\n");
13.767 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
13.768 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
13.769 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\" \n");
13.770 +}
13.771 +
13.772 +/* FUNCTION | FINISH XHTML OUTPUT */
13.773 +static void FinishXHTMLOutput(void) {
13.774 + printf(" </div>\n");
13.775 + printf(" </center>\n");
13.776 + printf(" </body>\n");
13.777 + printf(" <!--=====================================================================-->\n");
13.778 + printf(" <!-- Copyright and Trademark Statement -->\n");
13.779 + printf(" <!--=====================================================================-->\n");
13.780 + printf(" <!-- -->\n");
13.781 + printf(" <!-- All original textual and graphical site content: -->\n");
13.782 + printf(" <!-- -->\n");
13.783 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
13.784 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
13.785 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
13.786 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
13.787 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
13.788 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
13.789 + printf(" <!-- are the properties of their respective authors. All software -->\n");
13.790 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
13.791 + printf(" <!-- -->\n");
13.792 + printf(" <!--=====================================================================-->\n");
13.793 + printf(" <!-- e-mail: info@interos.com -->\n");
13.794 + printf(" <!--=====================================================================-->\n");
13.795 + printf("</html>");
13.796 +}
13.797 +
13.798 +/***********************************************************************/
13.799 +/* Copyright and Trademark Statement */
13.800 +/***********************************************************************/
13.801 +/* */
13.802 +/* All original textual and graphical site content: */
13.803 +/* */
13.804 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
13.805 +/* reserved. Reproduction in whole or in part without written */
13.806 +/* permission is prohibited. interos and the interos logos are */
13.807 +/* trademarks of Brent Angeline and interos LLC. All other company, */
13.808 +/* product, and service names mentioned herein may be the properties */
13.809 +/* of their respective owners. Comments in the interos.org forums */
13.810 +/* are the properties of their respective authors. All software */
13.811 +/* developed in the forums is open source and belongs to everyone. */
13.812 +/* */
13.813 +/***********************************************************************/
13.814 +/* e-mail: info@interos.com */
13.815 +/***********************************************************************/
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
14.2 +++ b/c/new_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
14.3 @@ -0,0 +1,452 @@
14.4 +/*************************************************/
14.5 +/* interos Standard Document Header - CGI in C */
14.6 +/*************************************************/
14.7 +/* URIs: https://interos.com/new */
14.8 +/* https://www.interos.com/new */
14.9 +/* Source: new.c */
14.10 +/* Description: FastCGI for interos new menu */
14.11 +/* Author: Brent Angeline */
14.12 +/* CGI: FastCGI in ISO/ANSI C */
14.13 +/*************************************************/
14.14 +
14.15 +/* PREPROCESSOR DIRECTIVES */
14.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
14.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
14.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
14.19 +#include <string.h> /* strcat(), strcmp(), strcpy, strlen() */
14.20 +#include <unistd.h> /* F_OK, access() */
14.21 +
14.22 +#ifndef INTEROS_H
14.23 +
14.24 + /* TYPE DEFINITION */
14.25 + typedef struct {
14.26 + char *name;
14.27 + char *link;
14.28 + char *icon;
14.29 + struct MENU_ITEM *next;
14.30 + } MENU_ITEM;
14.31 +
14.32 +#endif
14.33 +
14.34 +/* FUNCTION PROTOTYPE DECLARATIONS */
14.35 +static void RedirectToLoginPanel(void);
14.36 +static void OutputNewMenu(void);
14.37 +static void OutputGUI(const char *variableName, const char *variableValue);
14.38 +static void BeginXHTMLOutput(void);
14.39 +static void FinishXHTMLOutput(void);
14.40 +
14.41 +/* BEGIN MAIN PROGRAM */
14.42 +int main(void) {
14.43 +
14.44 + /* BEGIN FASTCGI */
14.45 + while (FCGI_Accept() >= 0) {
14.46 +
14.47 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
14.48 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
14.49 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
14.50 + RedirectToLoginPanel();
14.51 +
14.52 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
14.53 + } else {
14.54 +
14.55 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
14.56 + char *cookie;
14.57 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
14.58 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
14.59 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
14.60 + RedirectToLoginPanel();
14.61 + } else {
14.62 + char *variableName;
14.63 + if (!(variableName = malloc(cookieLength + 1))) {
14.64 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
14.65 + RedirectToLoginPanel();
14.66 + } else {
14.67 + char *variableValue;
14.68 + if (!(variableValue = malloc(cookieLength + 1))) {
14.69 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
14.70 + RedirectToLoginPanel();
14.71 +
14.72 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
14.73 + } else {
14.74 +
14.75 + /* PROCESS COOKIE DATA */
14.76 + char *login, *password;
14.77 + INT c, i;
14.78 + login = password = NULL;
14.79 + c = 0;
14.80 + strcpy(cookie, getenv("HTTP_COOKIE"));
14.81 + while ((c < cookieLength) && (cookie[c] != '\0')) {
14.82 + i = 0;
14.83 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
14.84 + variableName[i] = cookie[c];
14.85 + ++c;
14.86 + ++i;
14.87 + }
14.88 + variableName[i] = '\0';
14.89 + ++c;
14.90 + i = 0;
14.91 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
14.92 + variableValue[i] = cookie[c];
14.93 + ++c;
14.94 + ++i;
14.95 + }
14.96 + variableValue[i] = '\0';
14.97 + ++c;
14.98 + while ((c < cookieLength) && (cookie[c] == ' ')) {
14.99 + ++c;
14.100 + }
14.101 + if (!login && !strcmp(variableName, "login")) {
14.102 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
14.103 + strcpy(login, variableValue);
14.104 + }
14.105 + } else if (!password && !strcmp(variableName, "password")) {
14.106 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
14.107 + strcpy(password, variableValue);
14.108 + }
14.109 + }
14.110 + }
14.111 +
14.112 + /* IF LOGIN VALUE IS MISSING... */
14.113 + if (!login) {
14.114 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
14.115 + RedirectToLoginPanel();
14.116 +
14.117 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
14.118 + } else {
14.119 +
14.120 + /* VERIFY LOGIN AND PASSWORD */
14.121 + char *directory;
14.122 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
14.123 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
14.124 + RedirectToLoginPanel();
14.125 + } else {
14.126 + char *systemDirectory;
14.127 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
14.128 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
14.129 + RedirectToLoginPanel();
14.130 + } else {
14.131 + strcpy(directory, DIRECTORY);
14.132 + strcat(directory, login);
14.133 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
14.134 + strcat(systemDirectory, login);
14.135 +
14.136 + /* IF DIRECTORY CAN'T BE ACCESSED... */
14.137 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
14.138 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
14.139 + RedirectToLoginPanel();
14.140 +
14.141 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
14.142 + } else {
14.143 +
14.144 + /* ATTEMPT TO ACCESS PASSWORD FILE */
14.145 + char *passwordFileName;
14.146 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
14.147 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
14.148 + RedirectToLoginPanel();
14.149 + } else {
14.150 + strcpy(passwordFileName, systemDirectory);
14.151 + strcat(passwordFileName, PASSWORD_FILE_NAME);
14.152 +
14.153 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
14.154 + if (access(passwordFileName, F_OK)) {
14.155 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
14.156 + RedirectToLoginPanel();
14.157 +
14.158 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
14.159 + } else {
14.160 +
14.161 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
14.162 + FILE *passwordFile;
14.163 +
14.164 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
14.165 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
14.166 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
14.167 + RedirectToLoginPanel();
14.168 +
14.169 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
14.170 + } else {
14.171 + char *filePassword;
14.172 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
14.173 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
14.174 + RedirectToLoginPanel();
14.175 + } else {
14.176 + char c;
14.177 + i = 0;
14.178 +
14.179 + /* READ PASSWORD FROM PASSWORD FILE */
14.180 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
14.181 + filePassword[i] = c;
14.182 + ++i;
14.183 + }
14.184 + filePassword[i] = '\0';
14.185 + fclose(passwordFile);
14.186 +
14.187 + /* IF PASSWORD FAILS COMPARISON... */
14.188 + if (strcmp(filePassword, password)) {
14.189 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
14.190 + RedirectToLoginPanel();
14.191 +
14.192 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
14.193 + } else {
14.194 +
14.195 + /* LOAD SETTINGS VALUES FROM FILE(S) */
14.196 +
14.197 + /* LOAD MENU ITEMS FROM FILES */
14.198 +
14.199 + /* READ NEW MENU FILE */
14.200 +
14.201 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
14.202 + char *text_file;
14.203 + text_file = NULL;
14.204 +
14.205 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
14.206 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
14.207 + char *query;
14.208 + INT queryLength = strlen(getenv("QUERY_STRING"));
14.209 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
14.210 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
14.211 + } else {
14.212 + strcpy(query, getenv("QUERY_STRING"));
14.213 + free(variableName);
14.214 + if (!(variableName = malloc(queryLength + 1))) {
14.215 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
14.216 + } else {
14.217 + free(variableValue);
14.218 + if (!(variableValue = malloc(queryLength + 1))) {
14.219 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
14.220 +
14.221 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
14.222 + } else {
14.223 +
14.224 + /* PROCESS QUERY DATA */
14.225 + INT q = 0;
14.226 + i = 0;
14.227 + while ((q < queryLength) && (query[q] != '\0')) {
14.228 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
14.229 + variableName[i] = query[q];
14.230 + ++q;
14.231 + ++i;
14.232 + }
14.233 + variableName[i] = '\0';
14.234 + ++q;
14.235 + i = 0;
14.236 + while ((query[q] != '&') && (query[q] != '\0')) {
14.237 + variableValue[i] = query[q];
14.238 + ++q;
14.239 + ++i;
14.240 + }
14.241 + variableValue[i] = '\0';
14.242 + if (query[q] != '\0') {
14.243 + ++q;
14.244 + }
14.245 + if (!text_file && !strcmp(variableName, "text_file")) {
14.246 + if ((text_file = malloc(strlen(variableValue) + 1)) != 0) {
14.247 + strcpy(text_file, variableValue);
14.248 + }
14.249 + }
14.250 + }
14.251 + free(variableValue);
14.252 + variableValue = NULL;
14.253 + }
14.254 + free(variableName);
14.255 + variableName = NULL;
14.256 + }
14.257 + free(query);
14.258 + }
14.259 + }
14.260 + /* IF THIS IS A CONTINUED SESSION... */
14.261 +
14.262 + /* LOAD SESSION FROM FILE */
14.263 +
14.264 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
14.265 + if (text_file) {
14.266 + OutputGUI("text_file", text_file);
14.267 + } else {
14.268 +
14.269 + /* OUTPUT XHTML FOR NEW MENU */
14.270 + OutputNewMenu();
14.271 + }
14.272 + }
14.273 + free(filePassword);
14.274 + }
14.275 + }
14.276 + }
14.277 + free(passwordFileName);
14.278 + }
14.279 + }
14.280 + free(systemDirectory);
14.281 + }
14.282 + free(directory);
14.283 + }
14.284 + free(login);
14.285 + }
14.286 + free(password);
14.287 + free(variableValue);
14.288 + }
14.289 + free(variableName);
14.290 + }
14.291 + free(cookie);
14.292 + }
14.293 + }
14.294 + }
14.295 + return 0;
14.296 +}
14.297 +
14.298 +/* FUNCTION | OUTPUT XHTML FOR interos FRAMESET GRAPHICAL USER INTERFACE */
14.299 +static void OutputGUI(const char *variableName, const char *variableValue) {
14.300 + BeginXHTMLOutput();
14.301 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
14.302 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
14.303 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
14.304 + printf(" <!--========================================================-->\n");
14.305 + printf(" <!-- interos Standard Document Header - Markup -->\n");
14.306 + printf(" <!--========================================================-->\n");
14.307 + printf(" <!-- URIs: https://interos.com/new? -->\n");
14.308 + printf(" <!-- https://www.interos.com/new? -->\n");
14.309 + printf(" <!-- Title: interos -->\n");
14.310 + printf(" <!-- Author: Brent Angeline -->\n");
14.311 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
14.312 + printf(" <!--========================================================-->\n");
14.313 + printf(" <head>\n");
14.314 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
14.315 + printf(" <meta name=\"title\" content=\"interos\" />\n");
14.316 + printf(" <meta name=\"description\" content=\"internet operating system\" />\n");
14.317 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
14.318 + printf(" <meta name=\"copyright\" \n");
14.319 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
14.320 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
14.321 + printf(" <title>interos</title>\n");
14.322 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
14.323 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
14.324 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
14.325 + printf(" media=\"screen, projection\" />\n");
14.326 + printf(" <script type=\"text/javascript\" src=\"/js/interos.js\"></script>\n");
14.327 + printf(" </head>\n");
14.328 + printf(" <frameset rows=\"72,*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
14.329 + printf(" <frame name=\"top\" src=\"/top\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
14.330 + if (variableName && variableValue) {
14.331 + printf(" <frame name=\"content\" src=\"/content?%s=%s\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n", variableName, variableValue);
14.332 + } else {
14.333 + printf(" <frame name=\"content\" src=\"/content\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
14.334 + }
14.335 + printf(" <frame name=\"bottom\" src=\"/bottom\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
14.336 + printf(" <noframes>\n");
14.337 + printf(" <body id=\"body\">\n");
14.338 + printf(" <div id=\"interosContainer\">\n");
14.339 + printf(" <div id=\"interosContent\">\n");
14.340 + printf(" <h1>interos menu</h1>\n");
14.341 + printf(" <ol>\n");
14.342 + printf(" <li><a id=\"newLink\" href=\"/interos?menu=new\">new</a></li>\n");
14.343 + printf(" <li><a id=\"openLink\" href=\"/interos?menu=open\">open</a></li>\n");
14.344 + printf(" <li><a id=\"nextLink\" href=\"/interos?menu=next\">next</a></li>\n");
14.345 + printf(" <li><a id=\"settingsLink\" href=\"/interos?menu=settings\">settings</a></li>\n");
14.346 + printf(" </ol>\n");
14.347 + printf(" </div>\n");
14.348 + printf(" </div>\n");
14.349 + printf(" </body>\n");
14.350 + printf(" </noframes>\n");
14.351 + printf(" </frameset>\n");
14.352 + FinishXHTMLOutput();
14.353 +}
14.354 +
14.355 +/* FUNCTION | OUTPUT XHTML FOR NEW MENU */
14.356 +static void OutputNewMenu(void) {
14.357 + BeginXHTMLOutput();
14.358 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
14.359 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
14.360 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
14.361 + printf(" <!--========================================================-->\n");
14.362 + printf(" <!-- interos Standard Document Header - Markup -->\n");
14.363 + printf(" <!--========================================================-->\n");
14.364 + printf(" <!-- URIs: https://interos.com/new -->\n");
14.365 + printf(" <!-- https://www.interos.com/new -->\n");
14.366 + printf(" <!-- Title: interos new -->\n");
14.367 + printf(" <!-- Author: Brent Angeline -->\n");
14.368 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
14.369 + printf(" <!--========================================================-->\n");
14.370 + printf(" <head>\n");
14.371 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
14.372 + printf(" <meta name=\"title\" content=\"interos new\" />\n");
14.373 + printf(" <meta name=\"description\" content=\"new menu for interos\" />\n");
14.374 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
14.375 + printf(" <meta name=\"copyright\" \n");
14.376 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
14.377 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
14.378 + printf(" <title>interos new</title>\n");
14.379 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
14.380 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
14.381 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
14.382 + printf(" media=\"screen, projection\" />\n");
14.383 + printf(" <script type=\"text/javascript\" src=\"/js/interos_new.js\"></script>\n");
14.384 + printf(" </head>\n");
14.385 + printf(" <frameset rows=\"*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
14.386 + printf(" <frame name=\"menu\" src=\"/menu?name=new\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
14.387 + printf(" <frame name=\"button\" src=\"/bottom?button=new\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
14.388 + printf(" <noframes>\n");
14.389 + printf(" <body id=\"body\">\n");
14.390 + printf(" <div id=\"newContainer\">\n");
14.391 + printf(" <div id=\"newContent\">\n");
14.392 + printf(" <div id=\"newEntries\">\n");
14.393 + printf(" <p><a href=\"/interos?new=text_file\">text file</a></p>\n");
14.394 + printf(" </div>\n");
14.395 + printf(" <div id=\"newLink\"><a href=\"/interos\">new</a></div>\n");
14.396 + printf(" </div>\n");
14.397 + printf(" </div>\n");
14.398 + printf(" </body>\n");
14.399 + printf(" </noframes>\n");
14.400 + printf(" </frameset>\n");
14.401 + FinishXHTMLOutput();
14.402 +}
14.403 +
14.404 +/* FUNCTION | BEGIN XHTML OUTPUT */
14.405 +static void BeginXHTMLOutput(void) {
14.406 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
14.407 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
14.408 +}
14.409 +
14.410 +/* FUNCTION | FINISH XHTML OUTPUT */
14.411 +static void FinishXHTMLOutput(void) {
14.412 + printf(" <!--=====================================================================-->\n");
14.413 + printf(" <!-- Copyright and Trademark Statement -->\n");
14.414 + printf(" <!--=====================================================================-->\n");
14.415 + printf(" <!-- -->\n");
14.416 + printf(" <!-- All original textual and graphical site content: -->\n");
14.417 + printf(" <!-- -->\n");
14.418 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
14.419 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
14.420 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
14.421 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
14.422 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
14.423 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
14.424 + printf(" <!-- are the properties of their respective authors. All software -->\n");
14.425 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
14.426 + printf(" <!-- -->\n");
14.427 + printf(" <!--=====================================================================-->\n");
14.428 + printf(" <!-- e-mail: info@interos.com -->\n");
14.429 + printf(" <!--=====================================================================-->\n");
14.430 + printf("</html>");
14.431 +}
14.432 +
14.433 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
14.434 +static void RedirectToLoginPanel(void) {
14.435 + printf("Location: login\r\n\r\n");
14.436 +}
14.437 +
14.438 +/***********************************************************************/
14.439 +/* Copyright and Trademark Statement */
14.440 +/***********************************************************************/
14.441 +/* */
14.442 +/* All original textual and graphical site content: */
14.443 +/* */
14.444 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
14.445 +/* reserved. Reproduction in whole or in part without written */
14.446 +/* permission is prohibited. interos and the interos logos are */
14.447 +/* trademarks of Brent Angeline and interos LLC. All other company, */
14.448 +/* product, and service names mentioned herein may be the properties */
14.449 +/* of their respective owners. Comments in the interos.org forums */
14.450 +/* are the properties of their respective authors. All software */
14.451 +/* developed in the forums is open source and belongs to everyone. */
14.452 +/* */
14.453 +/***********************************************************************/
14.454 +/* e-mail: info@interos.com */
14.455 +/***********************************************************************/
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
15.2 +++ b/c/new_user_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
15.3 @@ -0,0 +1,826 @@
15.4 +/****************************************************/
15.5 +/* interos Standard Document Header - CGI in C */
15.6 +/****************************************************/
15.7 +/* URIs: https://interos.com/new_user */
15.8 +/* https://www.interos.com/new_user */
15.9 +/* Source: new_user.c */
15.10 +/* Description: FastCGI for interos new_user */
15.11 +/* Author: Brent Angeline */
15.12 +/* CGI: FastCGI in ISO/ANSI C */
15.13 +/****************************************************/
15.14 +
15.15 +/* PREPROCESSOR DIRECTIVES */
15.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fread(), printf() */
15.17 +#include "interos.h" /* DIRECTORY, INT, DIRECTORY_COMMAND, ECHO_COMMAND, PASSWORD_OUT, SYSTEM_DIRECTORY, SYSTEM_DIRECTORY_COMMAND */
15.18 +#include <ctype.h> /* tolower() */
15.19 +#include <stdlib.h> /* free(), getenv(), malloc(), system() */
15.20 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
15.21 +#include <unistd.h> /* F_OK, access() */
15.22 +
15.23 +static void Old(void);
15.24 +
15.25 +/* BEGIN MAIN PROGRAM */
15.26 +int main(void) {
15.27 +
15.28 + /* BEGIN FASTCGI */
15.29 + while (FCGI_Accept() >= 0) {
15.30 +
15.31 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
15.32 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
15.33 + char *status = NULL;
15.34 +
15.35 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
15.36 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
15.37 +
15.38 + /* ATTEMPT TO ALLOCATE MEMORY FOR QUERY VARIABLES */
15.39 + char *query;
15.40 + INT queryLength = strlen(getenv("QUERY_STRING"));
15.41 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
15.42 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
15.43 + } else {
15.44 + char *variableName;
15.45 + strcpy(query, getenv("QUERY_STRING"));
15.46 + if (!(variableName = malloc(queryLength + 1))) {
15.47 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
15.48 + } else {
15.49 + char *variableValue;
15.50 + if (!(variableValue = malloc(queryLength + 1))) {
15.51 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
15.52 +
15.53 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
15.54 + } else {
15.55 +
15.56 + /* PROCESS QUERY DATA */
15.57 + INT q = 0;
15.58 + i = 0;
15.59 + while ((q < queryLength) && (query[q] != '\0')) {
15.60 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
15.61 + variableName[i] = query[q];
15.62 + ++q;
15.63 + ++i;
15.64 + }
15.65 + variableName[i] = '\0';
15.66 + ++q;
15.67 + i = 0;
15.68 + while ((query[q] != '&') && (query[q] != '\0')) {
15.69 + variableValue[i] = query[q];
15.70 + ++q;
15.71 + ++i;
15.72 + }
15.73 + variableValue[i] = '\0';
15.74 + if (query[q] != '\0') {
15.75 + ++q;
15.76 + }
15.77 + if (!status && !strcmp(variableName, "status")) {
15.78 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
15.79 + strcpy(status, variableValue);
15.80 + }
15.81 + }
15.82 + }
15.83 + free(variableValue);
15.84 + }
15.85 + free(variableName);
15.86 + }
15.87 + free(query);
15.88 + }
15.89 + }
15.90 +
15.91 + /* DISPLAY CREATE LOGIN PANEL */
15.92 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
15.93 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
15.94 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/login.css\"?>\n");
15.95 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
15.96 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
15.97 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
15.98 + printf(" <!--=================================================-->\n");
15.99 + printf(" <!-- interos Standard Document Header - Markup -->\n");
15.100 + printf(" <!--=================================================-->\n");
15.101 + printf(" <!-- URIs: https://interos.com/new_user -->\n");
15.102 + printf(" <!-- https://www.interos.com/new_user -->\n");
15.103 + printf(" <!-- Title: new interos user -->\n");
15.104 + printf(" <!-- Author: Brent Angeline -->\n");
15.105 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
15.106 + printf(" <!--=================================================-->\n");
15.107 + printf(" <head>\n");
15.108 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
15.109 + printf(" <meta name=\"title\" content=\"new interos user\" />\n");
15.110 + printf(" <meta name=\"description\" content=\"create your login\" />\n");
15.111 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
15.112 + printf(" <meta name=\"copyright\" \n");
15.113 + printf(" content=\"Copyright © 2001-2008 Brent Angeline and interos LLC\" />\n");
15.114 + printf(" <meta name=\"robots\" content=\"index, nofollow, noarchive\" />\n");
15.115 + printf(" <title>new interos user</title>\n");
15.116 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
15.117 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
15.118 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/login.css\" \n");
15.119 + printf(" media=\"screen, projection\" />\n");
15.120 + printf(" <script type=\"text/javascript\" src=\"/js/login.js\"></script>\n");
15.121 + printf(" </head>\n");
15.122 + printf(" <body id=\"body\">\n");
15.123 + printf(" <center>\n");
15.124 + printf(" <p id=\"navigation\">\n");
15.125 + printf(" <a href=\"/about\">about</a> | \n");
15.126 + printf(" <a href=\"/blog\">blog</a> | \n");
15.127 + printf(" <a href=\"/code\">code</a> | \n");
15.128 + printf(" <a href=\"https://interos.org/\">develop</a> | \n");
15.129 + printf(" <a href=\"/e-mail\">e-mail</a> | \n");
15.130 + printf(" <a href=\"/f.a.q.\">f.a.q.</a> | \n");
15.131 + printf(" <a href=\"/gear\">gear</a> | \n");
15.132 + printf(" <a href=\"/help\">help</a>\n");
15.133 + printf(" </p>\n");
15.134 + printf(" <form id=\"loginForm\" name=\"loginForm\" action=\"new_user\" method=\"post\">\n");
15.135 + printf(" <table id=\"mainPanel\">\n");
15.136 + printf(" <thead>\n");
15.137 + printf(" <tr>\n");
15.138 + printf(" <th colspan=\"3\"><center>\n");
15.139 + printf(" <div id=\"title\">\n");
15.140 + printf(" <h1>\n");
15.141 + printf(" <a href=\"/\">interos</a>\n");
15.142 + printf(" </h1>\n");
15.143 + printf(" <h2>\n");
15.144 + printf(" create your login\n");
15.145 + printf(" </h2>\n");
15.146 + printf(" </div>\n");
15.147 + printf(" </center></th>\n");
15.148 + printf(" </tr>\n");
15.149 + printf(" </thead>\n");
15.150 + printf(" <tfoot>\n");
15.151 + printf(" <tr>\n");
15.152 + printf(" <td colspan=\"3\"><br /></td>\n");
15.153 + printf(" </tr>\n");
15.154 + printf(" </tfoot>\n");
15.155 + printf(" <tbody>\n");
15.156 + printf(" <tr>\n");
15.157 + printf(" <td><label for=\"login\">login:</label> </td>\n");
15.158 + printf(" <td><input id=\"login\" name=\"login\" type=\"text\" \n");
15.159 + printf(" size=\"16\" maxlength=\"16\" /></td>\n");
15.160 + printf(" </tr>\n");
15.161 + printf(" <tr>\n");
15.162 + printf(" <td><label for=\"password\">password:</label> </td>\n");
15.163 + printf(" <td><input id=\"password\" name=\"password\" type=\"password\" \n");
15.164 + printf(" size=\"16\" maxlength=\"16\" /></td>\n");
15.165 + printf(" </tr>\n");
15.166 + printf(" <tr>\n");
15.167 + printf(" <td><label for=\"verify\">password:</label> </td>\n");
15.168 + printf(" <td><input id=\"verify\" name=\"verify\" type=\"password\" \n");
15.169 + printf(" size=\"16\" maxlength=\"16\" /></td>\n");
15.170 + printf(" <td rowspan=\"2\"><div id=\"submitButton\">\n");
15.171 + printf(" <input type=\"submit\" \n");
15.172 + printf(" value=\"login »\" />\n");
15.173 + printf(" </div></td>\n");
15.174 + printf(" </tr>\n");
15.175 + printf(" </tbody>\n");
15.176 + printf(" </table>\n");
15.177 + printf(" </form>\n");
15.178 + printf(" <p id=\"newUser\">\n");
15.179 + printf(" <strong>* enter password twice</strong><br />\n");
15.180 + printf(" to create your login<br />\n");
15.181 + printf(" <a href=\"/login\">« back to login</a>\n");
15.182 + printf(" </p>\n");
15.183 + printf(" <p>\n");
15.184 + printf(" <br />\n");
15.185 + printf(" </p>\n");
15.186 + printf(" <p id=\"copyrightDates\">\n");
15.187 + printf(" © 2001–2008 interos\n");
15.188 + printf(" </p>\n");
15.189 + printf(" </center>\n");
15.190 + printf(" </body>\n");
15.191 + printf(" <!--=====================================================================-->\n");
15.192 + printf(" <!-- Copyright and Trademark Statement -->\n");
15.193 + printf(" <!--=====================================================================-->\n");
15.194 + printf(" <!-- -->\n");
15.195 + printf(" <!-- All original textual and graphical site content: -->\n");
15.196 + printf(" <!-- -->\n");
15.197 + printf(" <!-- Copyright 2001-2008 Brent Angeline and interos LLC. All rights -->\n");
15.198 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
15.199 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
15.200 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
15.201 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
15.202 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
15.203 + printf(" <!-- are the properties of their respective authors. All software -->\n");
15.204 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
15.205 + printf(" <!-- -->\n");
15.206 + printf(" <!--=====================================================================-->\n");
15.207 + printf(" <!-- e-mail: info@interos.com -->\n");
15.208 + printf(" <!--=====================================================================-->\n");
15.209 + printf("</html>");
15.210 +
15.211 + /* CLEAN UP AFTER QUERY DATA PROCESSING */
15.212 + free(status);
15.213 +
15.214 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
15.215 + } else {
15.216 +
15.217 + /* SET VARIABLES BASED ON POST DATA */
15.218 +
15.219 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
15.220 + char *post;
15.221 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
15.222 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
15.223 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST DATA > REDIRECT TO LOGIN CREATION PANEL **/
15.224 + printf("Location: new_user?status=try_again\r\n\r\n");
15.225 + } else {
15.226 + char *variableName;
15.227 + if (!(variableName = malloc(postLength + 1))) {
15.228 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > REDIRECT TO LOGIN CREATION PANEL **/
15.229 + printf("Location: new_user?status=try_again\r\n\r\n");
15.230 + } else {
15.231 + char *variableValue;
15.232 + if (!(variableValue = malloc(postLength + 1))) {
15.233 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > REDIRECT TO LOGIN CREATION PANEL **/
15.234 + printf("Location: new_user?status=try_again\r\n\r\n");
15.235 + } else {
15.236 +
15.237 + /* PROCESS POST DATA */
15.238 + char *login, *password, *verify;
15.239 + INT i, j, p;
15.240 + login = password = verify = NULL;
15.241 + j = p = 0;
15.242 + fread(post, postLength, 1, stdin);
15.243 + post[postLength] = '\0';
15.244 + while ((p < postLength) && (post[p] != '\0')) {
15.245 + i = 0;
15.246 + while ((p < postLength) && (post[p] != '=') && (post[p] != '\0')) {
15.247 + variableName[i] = post[p];
15.248 + ++p;
15.249 + ++i;
15.250 + }
15.251 + variableName[i] = '\0';
15.252 + ++p;
15.253 + i = 0;
15.254 + while ((p < postLength) && (post[p] != '&') && (post[p] != '\0')) {
15.255 + variableValue[i] = post[p];
15.256 + ++p;
15.257 + ++i;
15.258 + }
15.259 + variableValue[i] = '\0';
15.260 + if (post[p] != '\0') {
15.261 + ++p;
15.262 + }
15.263 + if (!login && !strcmp(variableName, "login")) {
15.264 + if (!(login = malloc(strlen(variableValue) + 1))) {
15.265 + /** ERROR | CANNOT ALLOCATE MEMORY FOR LOGIN VARIABLE > REDIRECT TO LOGIN CREATION PANEL **/
15.266 + printf("Location: new_user?status=try_again\r\n\r\n");
15.267 + } else {
15.268 + strcpy(login, variableValue);
15.269 + for (j = 0; j < strlen(login); ++j) {
15.270 + login[j] = tolower(login[j]);
15.271 + }
15.272 + }
15.273 + } else if (!password && !strcmp(variableName, "password")) {
15.274 + if (!(password = malloc(strlen(variableValue) + 1))) {
15.275 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD VARIABLE > REDIRECT TO LOGIN CREATION PANEL **/
15.276 + printf("Location: new_user?status=try_again\r\n\r\n");
15.277 + } else {
15.278 + strcpy(password, variableValue);
15.279 + }
15.280 + } else if (!verify && !strcmp(variableName, "verify")) {
15.281 + if (!(verify = malloc(strlen(variableValue) + 1))) {
15.282 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD CONFIRM VARIABLE > REDIRECT TO LOGIN CREATION PANEL **/
15.283 + printf("Location: new_user?status=try_again\r\n\r\n");
15.284 + } else {
15.285 + strcpy(verify, variableValue);
15.286 + }
15.287 + }
15.288 + }
15.289 +
15.290 + /* IF LOGIN VALUE IS MISSING... */
15.291 + if (!login) {
15.292 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN CREATION PANEL **/
15.293 + printf("Location: new_user?status=try_again\r\n\r\n");
15.294 +
15.295 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
15.296 + } else {
15.297 +
15.298 + /* CHECK LOGIN FOR ILLEGAL CHARACTERS */
15.299 + char illegalCharacter = 0;
15.300 + for (i = 0; i < strlen(login); ++i) {
15.301 + if (!(((login[i] >= 'a') && (login[i] <= 'z')) || ((login[i] >= '0') && (login[i] <= '9')))) {
15.302 + illegalCharacter = 1;
15.303 + }
15.304 + }
15.305 + if (illegalCharacter) {
15.306 + /** ERROR | LOGIN OR PASSWORD CONTAINS ILLEGAL CHARACTERS > REDIRECT TO LOGIN CREATION PANEL **/
15.307 + printf("Location: new_user?status=illegal_characters\r\n\r\n");
15.308 + } else {
15.309 +
15.310 + /* CHECK LOGIN AVAILABILITY */
15.311 + char *directory;
15.312 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
15.313 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN CREATION PANEL **/
15.314 + printf("Location: new_user?status=try_again\r\n\r\n");
15.315 + } else {
15.316 + char *systemDirectory;
15.317 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
15.318 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN CREATION PANEL **/
15.319 + printf("Location: new_user?status=try_again\r\n\r\n");
15.320 + } else {
15.321 + strcpy(directory, DIRECTORY);
15.322 + strcat(directory, login);
15.323 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
15.324 + strcat(systemDirectory, login);
15.325 +
15.326 + /* IF LOGIN EXISTS... */
15.327 + if (!access(directory, F_OK) || !access(systemDirectory, F_OK)) {
15.328 +
15.329 + /* REDIRECT TO LOGIN CREATION PANEL BECAUSE LOGIN ALREADY EXISTS */
15.330 + printf("Location: new_user?status=login_exists\r\n\r\n");
15.331 +
15.332 + /* OTHERWISE, IF LOGIN DOESN'T EXIST... */
15.333 + } else {
15.334 +
15.335 + /* IF NO PASSWORD FROM POST VARIABLES... */
15.336 + if (!password) {
15.337 + password = malloc(1);
15.338 + password[0] = '\0';
15.339 + }
15.340 +
15.341 + /* IF NO PASSWORD CONFIRMATION FROM POST VARIABLES... */
15.342 + if (!password) {
15.343 + verify = malloc(1);
15.344 + verify[0] = '\0';
15.345 + }
15.346 +
15.347 + /* IF PASSWORD FAILS CONFIRMATION... */
15.348 + if (strcmp(password, verify)) {
15.349 +
15.350 + /* REDIRECT TO LOGIN CREATION PANEL AND RECONFIRM PASSWORD */
15.351 + printf("Location: new_user?status=reconfirm_password\r\n\r\n");
15.352 +
15.353 + /* OTHERWISE, IF PASSWORD PASSES CONFIRMATION... */
15.354 + } else {
15.355 +
15.356 + /* CREATE USER ACCOUNT */
15.357 + char *systemDirectoryCommand;
15.358 + char *directoryCommand;
15.359 + char *passwordCommand;
15.360 + if (!(systemDirectoryCommand = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY_COMMAND) + 1))) {
15.361 + /** ERROR | CANNOT ALLOCATE MEMORY FOR CREATE SYSTEM DIRECTORY COMMAND > REDIRECT TO LOGIN CREATION PANEL **/
15.362 + printf("Location: new_user?status=try_again\r\n\r\n");
15.363 + } else {
15.364 + if (!(directoryCommand = malloc(strlen(login) + strlen(DIRECTORY_COMMAND) + 1))) {
15.365 + /** ERROR | CANNOT ALLOCATE MEMORY FOR CREATE DIRECTORY COMMAND > REDIRECT TO LOGIN CREATION PANEL **/
15.366 + printf("Location: new_user?status=try_again\r\n\r\n");
15.367 + } else {
15.368 + if (!(passwordCommand = malloc(strlen(password) + strlen(login) + strlen(ECHO_COMMAND) + strlen(PASSWORD_OUT) + strlen(PASSWORD_FILE_NAME) + 1))) {
15.369 + /** ERROR | CANNOT ALLOCATE MEMORY FOR CREATE PASSWORD FILE COMMAND > REDIRECT TO LOGIN CREATION PANEL **/
15.370 + printf("Location: new_user?status=try_again\r\n\r\n");
15.371 + } else {
15.372 + strcpy(systemDirectoryCommand, SYSTEM_DIRECTORY_COMMAND);
15.373 + strcat(systemDirectoryCommand, login);
15.374 + system(systemDirectoryCommand);
15.375 + strcpy(directoryCommand, DIRECTORY_COMMAND);
15.376 + strcat(directoryCommand, login);
15.377 + system(directoryCommand);
15.378 + strcpy(passwordCommand, ECHO_COMMAND);
15.379 + strcat(passwordCommand, password);
15.380 + strcat(passwordCommand, PASSWORD_OUT);
15.381 + strcat(passwordCommand, login);
15.382 + strcat(passwordCommand, PASSWORD_FILE_NAME);
15.383 + system(passwordCommand);
15.384 +
15.385 + /* SET COOKIES */
15.386 + printf("Set-Cookie: login=%s; path=/; secure\r\n", login);
15.387 + printf("Set-Cookie: password=%s; path=/; secure\r\n", password);
15.388 +
15.389 + /* REDIRECT LOGGED INTO interos */
15.390 + printf("Location: welcome\r\n\r\n");
15.391 + free(passwordCommand);
15.392 + }
15.393 + free(directoryCommand);
15.394 + }
15.395 + free(systemDirectoryCommand);
15.396 + }
15.397 + }
15.398 + }
15.399 + free(systemDirectory);
15.400 + }
15.401 + free(directory);
15.402 + }
15.403 + }
15.404 + free(login);
15.405 + }
15.406 + free(password);
15.407 + free(verify);
15.408 + free(variableValue);
15.409 + }
15.410 + free(variableName);
15.411 + }
15.412 + free(post);
15.413 + }
15.414 + }
15.415 + }
15.416 + return 0;
15.417 +}
15.418 +
15.419 +static void Old(void) {
15.420 + char *status == NULL;
15.421 +
15.422 + /* DISPLAY CREATE LOGIN PANEL */
15.423 + printf("Content-type: text/html\n\n");
15.424 + printf("<!--=======================================================-->\n");
15.425 + printf("<!-- interos.com Standard Document Model Header - Markup -->\n");
15.426 + printf("<!--=======================================================-->\n");
15.427 + printf("<!-- URIs: https://www.interos.com/sys/new_user -->\n");
15.428 + printf("<!-- interos.com/sys/new_user -->\n");
15.429 + printf("<!-- Title: interos > create login -->\n");
15.430 + printf("<!-- Author: Brent Angeline -->\n");
15.431 + printf("<!-- Markup: Dynamic XHTML -->\n");
15.432 + printf("<!--=======================================================-->\n");
15.433 + printf("<html>");
15.434 + printf("<head>");
15.435 + printf("<title>interos > create login</title>");
15.436 + printf("<link rel=\"stylesheet\" type=\"text/css\" href=\"css/new_user/style.css\" />");
15.437 + printf("<script language=\"javascript\" type=\"text/javascript\" src=\"js/new_user/javascript.js\"></script>");
15.438 + printf("<noscript>Your browser doesn't support true DHTML. Get one that does <a href=\"http://www.mozilla.org/\">here</a> or <a href=\"http://home.netscape.com/computing/download/\">here</a>. If you have JavaScript disabled, please enable it and click reload on your browser.</noscript>");
15.439 + printf("</head>");
15.440 + printf("<body onload=\"iOnLoad()\">");
15.441 + printf("<table width=\"100%%\" height=\"100%%\" cellpadding=\"0\" cellspacing=\"0\">");
15.442 + printf("<tr>");
15.443 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iOpenFaded\" onmouseover=\"iOpenOn()\" href=\"javascript:explain('open')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"open\" src=\"images/login/open_faded.gif\" /> open</a></td>");
15.444 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iNextFaded\" onmouseover=\"iNextOn()\" href=\"javascript:explain('next')\">next <img width=\"72\" height=\"72\" align=\"middle\" alt=\"next\" src=\"images/login/next_faded.gif\" /></a></td>");
15.445 + printf("</tr>");
15.446 + printf("<tr>");
15.447 + printf("<td colspan=\"2\" height=\"100%%\" align=\"center\" valign=\"middle\"><table width=\"384\" class=\"iPanel\" cellpadding=\"0\" cellspacing=\"0\">");
15.448 + printf("<tr>");
15.449 + printf("<td><img width=\"12\" height=\"12\" src=\"images/login/top_left.gif\" /></td>");
15.450 + printf("<td><img width=\"354\" height=\"12\" src=\"images/login/top.gif\" /></td>");
15.451 + printf("<td><img width=\"18\" height=\"12\" src=\"images/login/top_right.gif\" /></td>");
15.452 + printf("</tr>");
15.453 + printf("<tr>");
15.454 + printf("<td><img width=\"12\" height=\"184\" src=\"images/login/left.gif\" /></td>");
15.455 + printf("<td align=\"center\" valign=\"top\"><img width=\"52\" height=\"60\" alt=\"interos\" src=\"images/login/i.gif\" /><img width=\"284\" height=\"60\" alt=\"interos\" src=\"images/login/nteros.gif\" /><br />");
15.456 + printf("<span class=\"iPanelLarge\">— create login —</span><br />");
15.457 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.458 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.459 + printf("<form name=\"loginForm\" action=\"new_user\" method=\"POST\">");
15.460 + printf("<table width=\"354\" cellpadding=\"0\" cellspacing=\"0\">");
15.461 + printf("<tr>");
15.462 + printf("<td><table width=\"276\" cellpadding=\"0\" cellspacing=\"0\">");
15.463 + printf("<tr>");
15.464 + printf("<td width=\"110\" height=\"25\"> login:</td>");
15.465 + printf("<td width=\"166\" height=\"25\"><input name=\"login\" type=\"text\" maxlength=\"16\" size=\"19\" /></td>");
15.466 + printf("</tr>");
15.467 + printf("<tr>");
15.468 + printf("<td width=\"110\" height=\"25\"> password:</td>");
15.469 + printf("<td width=\"166\" height=\"25\"><input name=\"password\" type=\"password\" maxlength=\"16\" size=\"19\" /></td>");
15.470 + printf("</tr>");
15.471 + printf("<tr>");
15.472 + printf("<td width=\"110\" height=\"25\"> ");
15.473 + if (status == NULL)
15.474 + { printf("*"); }
15.475 + else
15.476 + { printf(" "); }
15.477 + printf("password:</td>");
15.478 + printf("<td width=\"166\" height=\"25\"><input name=\"verify\" type=\"password\" onkeydown=\"if(event.keyCode==13) form.submit()\" maxlength=\"16\" size=\"19\" /></td>");
15.479 + printf("</tr>");
15.480 + printf("</table></td>");
15.481 + printf("<td width=\"78\" height=\"50\" align=\"center\"><a href=\"javascript:document.loginForm.submit()\"><img width=\"52\" height=\"48\" name=\"arrow\" onmousedown=\"iArrowDown()\" onmouseup=\"iArrowUp()\" onmouseout=\"iArrowUp()\" title=\"login\" alt=\"login\" src=\"images/login/arrow.gif\" /></a></td>");
15.482 + printf("</tr>");
15.483 + printf("</table>");
15.484 + printf("</form></td>");
15.485 + printf("<td><img width=\"18\" height=\"184\" src=\"images/login/right.gif\" /></td>");
15.486 + printf("</tr>");
15.487 + printf("<tr>");
15.488 + printf("<td><img width=\"12\" height=\"18\" src=\"images/login/bottom_left.gif\" /></td>");
15.489 + printf("<td><img width=\"354\" height=\"18\" src=\"images/login/bottom.gif\" /></td>");
15.490 + printf("<td><img width=\"18\" height=\"18\" src=\"images/login/bottom_right.gif\" /></td>");
15.491 + printf("</tr>");
15.492 + printf("</table>");
15.493 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.494 + printf("<span class=\"iEnterPassword\">");
15.495 + if (status == NULL)
15.496 + { printf("*enter password twice"); }
15.497 + else { if (strcmp(status, "try_again") == 0)
15.498 + { printf("server momentarily busy"); }
15.499 + else { if (strcmp(status, "illegal_characters") == 0)
15.500 + { printf("login contained illegal characters"); }
15.501 + else { if (strcmp(status, "login_exists") == 0)
15.502 + { printf("login exists"); }
15.503 + else { if (strcmp(status, "reconfirm_password") == 0)
15.504 + { printf("password entries did not match"); }
15.505 + else
15.506 + { printf("*enter password twice"); } } } } }
15.507 + printf("</span><br />");
15.508 + printf("<span class=\"iCreateLogin\">");
15.509 + if (status == NULL)
15.510 + { printf("to create new login"); }
15.511 + else { if (strcmp(status, "try_again") == 0)
15.512 + { printf("please try again"); }
15.513 + else { if (strcmp(status, "illegal_characters") == 0)
15.514 + { printf("only letters and numbers are allowed"); }
15.515 + else { if (strcmp(status, "login_exists") == 0)
15.516 + { printf("please try another"); }
15.517 + else { if (strcmp(status, "reconfirm_password") == 0)
15.518 + { printf("please reconfirm your password"); }
15.519 + else
15.520 + { printf("to create new login"); } } } } }
15.521 + printf("</span><br />");
15.522 + printf("<a id=\"iBack\" href=\"login\">< back to login</a></td>");
15.523 + printf("</tr>");
15.524 + printf("<tr>");
15.525 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iNewFaded\" onmouseover=\"iNewOn()\" href=\"javascript:explain('new')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"new\" src=\"images/login/new_faded.gif\" /> new</a></td>");
15.526 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iSettingsFaded\" onmouseover=\"iSettingsOn()\" href=\"javascript:explain('settings')\">settings <img width=\"72\" height=\"72\" align=\"middle\" alt=\"settings\" src=\"images/login/settings_faded.gif\" /></a></td>");
15.527 + printf("</tr>");
15.528 + printf("</table>");
15.529 + printf("<div id=\"iNewPanel\" style=\"position:absolute; z-index:0; height:100%%; width:100%%; left:0px; top:0px; visibility:hidden\">");
15.530 + printf("<table width=\"100%%\" height=\"100%%\" cellpadding=\"0\" cellspacing=\"0\">");
15.531 + printf("<tr>");
15.532 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iOpenFaded\" onmouseover=\"iOpenOn()\" href=\"javascript:explain('open')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"open\" src=\"images/login/open_faded.gif\" /> open</a></td>");
15.533 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iNextFaded\" onmouseover=\"iNextOn()\" href=\"javascript:explain('next')\">next <img width=\"72\" height=\"72\" align=\"middle\" name=\"next\" alt=\"next\" src=\"images/login/next_faded.gif\" /></a></td>");
15.534 + printf("</tr>");
15.535 + printf("<tr>");
15.536 + printf("<td height=\"100%%\" colspan=\"2\" align=\"center\" valign=\"middle\"><table width=\"354\" cellpadding=\"0\" cellspacing=\"0\">");
15.537 + printf("<tr>");
15.538 + printf("<td width=\"354\" height=\"12\"></td>");
15.539 + printf("</tr>");
15.540 + printf("<tr>");
15.541 + printf("<td width=\"354\" height=\"184\" class=\"iPanel\" align=\"right\" valign=\"top\"><a id=\"iX\" href=\"javascript:iNewOff()\">x</a> <br />");
15.542 + printf("<center>");
15.543 + printf("<span class=\"iPanelLarge\">do something </span><span class=\"iNewLarge\">new</span><br />");
15.544 + printf("<br />");
15.545 + printf("once logged in, you can find the button for the <span class=\"iNewSmall\">new</span> menu hiding in this corner.<br />");
15.546 + printf("<div class=\"iSmallBreak\">");
15.547 + printf("<br />");
15.548 + printf("<br />");
15.549 + printf("</div>");
15.550 + printf("from there you can add new searches, mail, documents, shares, programs and media.");
15.551 + printf("</center></td>");
15.552 + printf("</tr>");
15.553 + printf("<tr>");
15.554 + printf("<td width=\"354\" height=\"18\"></td>");
15.555 + printf("</tr>");
15.556 + printf("</table>");
15.557 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.558 + printf("<span class=\"iEnterPassword\">");
15.559 + if (status == NULL)
15.560 + { printf("*enter password twice"); }
15.561 + else { if (strcmp(status, "try_again") == 0)
15.562 + { printf("server momentarily busy"); }
15.563 + else { if (strcmp(status, "illegal_characters") == 0)
15.564 + { printf("login contained illegal characters"); }
15.565 + else { if (strcmp(status, "login_exists") == 0)
15.566 + { printf("login exists"); }
15.567 + else { if (strcmp(status, "reconfirm_password") == 0)
15.568 + { printf("password entries did not match"); }
15.569 + else
15.570 + { printf("*enter password twice"); } } } } }
15.571 + printf("</span><br />");
15.572 + printf("<span class=\"iCreateLogin\">");
15.573 + if (status == NULL)
15.574 + { printf("to create new login"); }
15.575 + else { if (strcmp(status, "try_again") == 0)
15.576 + { printf("please try again"); }
15.577 + else { if (strcmp(status, "illegal_characters") == 0)
15.578 + { printf("only letters and numbers are allowed"); }
15.579 + else { if (strcmp(status, "login_exists") == 0)
15.580 + { printf("please try another"); }
15.581 + else { if (strcmp(status, "reconfirm_password") == 0)
15.582 + { printf("please reconfirm your password"); }
15.583 + else
15.584 + { printf("to create new login"); } } } } }
15.585 + printf("</span><br />");
15.586 + printf("<a id=\"iBack\" href=\"login\">< back to login</a></td>");
15.587 + printf("</tr>");
15.588 + printf("<tr>");
15.589 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iNew\" onmouseout=\"iNewOff()\" href=\"javascript:explain('new')\"><img width=\"72\" height=\"72\" align=\"middle\" name=\"new\" alt=\"new\" src=\"images/login/new.gif\" /> new</a></td>");
15.590 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iSettingsFaded\" onmouseover=\"iSettingsOn()\" href=\"javascript:explain('settings')\">settings <img width=\"72\" height=\"72\" align=\"middle\" name=\"settings\" alt=\"settings\" src=\"images/login/settings_faded.gif\" /></a></td>");
15.591 + printf("</tr>");
15.592 + printf("</table>");
15.593 + printf("</div>");
15.594 + printf("<div id=\"iOpenPanel\" style=\"position:absolute; z-index:1; height:100%%; width:100%%; left:0px; top:0px; visibility:hidden\">");
15.595 + printf("<table width=\"100%%\" height=\"100%%\" cellpadding=\"0\" cellspacing=\"0\">");
15.596 + printf("<tr>");
15.597 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iOpen\" onmouseout=\"iOpenOff()\" href=\"javascript:explain('open')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"open\" src=\"images/login/open.gif\" /> open</a></td>");
15.598 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iNextFaded\" onmouseover=\"iNextOn()\" href=\"javascript:explain('next')\">next <img width=\"72\" height=\"72\" align=\"middle\" name=\"next\" alt=\"next\" src=\"images/login/next_faded.gif\" /></a></td>");
15.599 + printf("</tr>");
15.600 + printf("<tr>");
15.601 + printf("<td height=\"100%%\" colspan=\"2\" align=\"center\" valign=\"middle\"><table width=\"354\" cellpadding=\"0\" cellspacing=\"0\">");
15.602 + printf("<tr>");
15.603 + printf("<td width=\"354\" height=\"12\"></td>");
15.604 + printf("</tr>");
15.605 + printf("<tr>");
15.606 + printf("<td width=\"354\" height=\"184\" class=\"iPanel\" align=\"right\" valign=\"top\"><a id=\"iX\" href=\"javascript:iOpenOff()\">x</a> <br />");
15.607 + printf("<center>");
15.608 + printf("<span class=\"iOpenLarge\">open</span><span class=\"iPanelLarge\"> something saved</span><br />");
15.609 + printf("<br />");
15.610 + printf("once logged in, you can find the button for the <span class=\"iOpenSmall\">open</span> menu hiding in this corner.<br />");
15.611 + printf("<div class=\"iSmallBreak\">");
15.612 + printf("<br />");
15.613 + printf("<br />");
15.614 + printf("</div>");
15.615 + printf("from there you can open saved documents, media, games, mail and web sites.");
15.616 + printf("</center></td>");
15.617 + printf("</tr>");
15.618 + printf("<tr>");
15.619 + printf("<td width=\"354\" height=\"18\"></td>");
15.620 + printf("</tr>");
15.621 + printf("</table>");
15.622 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.623 + printf("<span class=\"iEnterPassword\">");
15.624 + if (status == NULL)
15.625 + { printf("*enter password twice"); }
15.626 + else { if (strcmp(status, "try_again") == 0)
15.627 + { printf("server momentarily busy"); }
15.628 + else { if (strcmp(status, "illegal_characters") == 0)
15.629 + { printf("login contained illegal characters"); }
15.630 + else { if (strcmp(status, "login_exists") == 0)
15.631 + { printf("login exists"); }
15.632 + else { if (strcmp(status, "reconfirm_password") == 0)
15.633 + { printf("password entries did not match"); }
15.634 + else
15.635 + { printf("*enter password twice"); } } } } }
15.636 + printf("</span><br />");
15.637 + printf("<span class=\"iCreateLogin\">");
15.638 + if (status == NULL)
15.639 + { printf("to create new login"); }
15.640 + else { if (strcmp(status, "try_again") == 0)
15.641 + { printf("please try again"); }
15.642 + else { if (strcmp(status, "illegal_characters") == 0)
15.643 + { printf("only letters and numbers are allowed"); }
15.644 + else { if (strcmp(status, "login_exists") == 0)
15.645 + { printf("please try another"); }
15.646 + else { if (strcmp(status, "reconfirm_password") == 0)
15.647 + { printf("please reconfirm your password"); }
15.648 + else
15.649 + { printf("to create new login"); } } } } }
15.650 + printf("</span><br />");
15.651 + printf("<a id=\"iBack\" href=\"login\">< back to login</a></td>");
15.652 + printf("</tr>");
15.653 + printf("<tr>");
15.654 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iNewFaded\" onmouseover=\"iNewOn()\" href=\"javascript:explain('new')\"><img width=\"72\" height=\"72\" align=\"middle\" name=\"new\" alt=\"new\" src=\"images/login/new_faded.gif\" /> new</a></td>");
15.655 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iSettingsFaded\" onmouseover=\"iSettingsOn()\" href=\"javascript:explain('settings')\">settings <img width=\"72\" height=\"72\" align=\"middle\" name=\"settings\" alt=\"settings\" src=\"images/login/settings_faded.gif\" /></a></td>");
15.656 + printf("</tr>");
15.657 + printf("</table>");
15.658 + printf("</div>");
15.659 + printf("<div id=\"iNextPanel\" style=\"position:absolute; z-index:2; height:100%%; width:100%%; left:0px; top:0px; visibility:hidden\">");
15.660 + printf("<table width=\"100%%\" height=\"100%%\" cellpadding=\"0\" cellspacing=\"0\">");
15.661 + printf("<tr>");
15.662 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iOpenFaded\" onmouseover=\"iOpenOn()\" href=\"javascript:explain('open')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"open\" src=\"images/login/open_faded.gif\" /> open</a></td>");
15.663 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iNext\" onmouseout=\"iNextOff()\" href=\"javascript:explain('next')\">next <img width=\"72\" height=\"72\" align=\"middle\" name=\"next\" alt=\"next\" src=\"images/login/next.gif\" /></a></td>");
15.664 + printf("</tr>");
15.665 + printf("<tr>");
15.666 + printf("<td height=\"100%%\" colspan=\"2\" align=\"center\" valign=\"middle\"><table width=\"354\" cellpadding=\"0\" cellspacing=\"0\">");
15.667 + printf("<tr>");
15.668 + printf("<td width=\"354\" height=\"12\"></td>");
15.669 + printf("</tr>");
15.670 + printf("<tr>");
15.671 + printf("<td width=\"354\" height=\"184\" class=\"iPanel\" align=\"right\" valign=\"top\"><a id=\"iX\" href=\"javascript:iNextOff()\">x</a> <br />");
15.672 + printf("<center>");
15.673 + printf("<span class=\"iPanelLarge\">all set for now, </span><span class=\"iNextLarge\">next</span><br />");
15.674 + printf("<br />");
15.675 + printf("once logged in, you can find the button for the <span class=\"iNextSmall\">next</span> menu hiding in this corner.<br />");
15.676 + printf("<div class=\"iSmallBreak\">");
15.677 + printf("<br />");
15.678 + printf("<br />");
15.679 + printf("</div>");
15.680 + printf("from there you can save, switch tasks,<br />");
15.681 + printf("\"save as\" or exit a task without saving.");
15.682 + printf("</center></td>");
15.683 + printf("</tr>");
15.684 + printf("<tr>");
15.685 + printf("<td width=\"354\" height=\"18\"></td>");
15.686 + printf("</tr>");
15.687 + printf("</table>");
15.688 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.689 + printf("<span class=\"iEnterPassword\">");
15.690 + if (status == NULL)
15.691 + { printf("*enter password twice"); }
15.692 + else { if (strcmp(status, "try_again") == 0)
15.693 + { printf("server momentarily busy"); }
15.694 + else { if (strcmp(status, "illegal_characters") == 0)
15.695 + { printf("login contained illegal characters"); }
15.696 + else { if (strcmp(status, "login_exists") == 0)
15.697 + { printf("login exists"); }
15.698 + else { if (strcmp(status, "reconfirm_password") == 0)
15.699 + { printf("password entries did not match"); }
15.700 + else
15.701 + { printf("*enter password twice"); } } } } }
15.702 + printf("</span><br />");
15.703 + printf("<span class=\"iCreateLogin\">");
15.704 + if (status == NULL)
15.705 + { printf("to create new login"); }
15.706 + else { if (strcmp(status, "try_again") == 0)
15.707 + { printf("please try again"); }
15.708 + else { if (strcmp(status, "illegal_characters") == 0)
15.709 + { printf("only letters and numbers are allowed"); }
15.710 + else { if (strcmp(status, "login_exists") == 0)
15.711 + { printf("please try another"); }
15.712 + else { if (strcmp(status, "reconfirm_password") == 0)
15.713 + { printf("please reconfirm your password"); }
15.714 + else
15.715 + { printf("to create new login"); } } } } }
15.716 + printf("</span><br />");
15.717 + printf("<a id=\"iBack\" href=\"login\">< back to login</a></td>");
15.718 + printf("</tr>");
15.719 + printf("<tr>");
15.720 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iNewFaded\" onmouseover=\"iNewOn()\" href=\"javascript:explain('new')\"><img width=\"72\" height=\"72\" align=\"middle\" name=\"new\" alt=\"new\" src=\"images/login/new_faded.gif\" /> new</a></td>");
15.721 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iSettingsFaded\" onmouseover=\"iSettingsOn()\" href=\"javascript:explain('settings')\">settings <img width=\"72\" height=\"72\" align=\"middle\" name=\"settings\" alt=\"settings\" src=\"images/login/settings_faded.gif\" /></a></td>");
15.722 + printf("</tr>");
15.723 + printf("</table>");
15.724 + printf("</div>");
15.725 + printf("<div id=\"iSettingsPanel\" style=\"position:absolute; z-index:3; height:100%%; width:100%%; left:0px; top:0px; visibility:hidden\">");
15.726 + printf("<table width=\"100%%\" height=\"100%%\" cellpadding=\"0\" cellspacing=\"0\">");
15.727 + printf("<tr>");
15.728 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iOpenFaded\" onmouseover=\"iOpenOn()\" href=\"javascript:explain('open')\"><img width=\"72\" height=\"72\" align=\"middle\" alt=\"open\" src=\"images/login/open_faded.gif\" /> open</a></td>");
15.729 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iNextFaded\" onmouseover=\"iNextOn()\" href=\"javascript:explain('next')\">next <img width=\"72\" height=\"72\" align=\"middle\" name=\"next\" alt=\"next\" src=\"images/login/next_faded.gif\" /></a></td>");
15.730 + printf("</tr>");
15.731 + printf("<tr>");
15.732 + printf("<td height=\"100%%\" colspan=\"2\" align=\"center\" valign=\"middle\"><table width=\"354\" cellpadding=\"0\" cellspacing=\"0\">");
15.733 + printf("<tr>");
15.734 + printf("<td width=\"354\" height=\"12\"></td>");
15.735 + printf("</tr>");
15.736 + printf("<tr>");
15.737 + printf("<td width=\"354\" height=\"184\" class=\"iPanel\" align=\"right\" valign=\"top\"><a id=\"iX\" href=\"javascript:iSettingsOff()\">x</a> <br />");
15.738 + printf("<center>");
15.739 + printf("<span class=\"iPanelLarge\">customize </span><span class=\"iSettingsLarge\">settings</span><br />");
15.740 + printf("<br />");
15.741 + printf("once logged in, you'll find the button for<br />");
15.742 + printf("the <span class=\"iSettingsSmall\">settings</span> menu hiding in this corner.");
15.743 + printf("<div class=\"iSmallBreak\">");
15.744 + printf("<br />");
15.745 + printf("<br />");
15.746 + printf("</div>");
15.747 + printf("from there you can view and adjust<br />");
15.748 + printf("all settings, including the clock.");
15.749 + printf("</center></td>");
15.750 + printf("</tr>");
15.751 + printf("<tr>");
15.752 + printf("<td width=\"354\" height=\"18\"></td>");
15.753 + printf("</tr>");
15.754 + printf("</table>");
15.755 + printf("<span class=\"iSmallBreak\"><br /></span>");
15.756 + printf("<span class=\"iEnterPassword\">");
15.757 + if (status == NULL)
15.758 + { printf("*enter password twice"); }
15.759 + else { if (strcmp(status, "try_again") == 0)
15.760 + { printf("server momentarily busy"); }
15.761 + else { if (strcmp(status, "illegal_characters") == 0)
15.762 + { printf("login contained illegal characters"); }
15.763 + else { if (strcmp(status, "login_exists") == 0)
15.764 + { printf("login exists"); }
15.765 + else { if (strcmp(status, "reconfirm_password") == 0)
15.766 + { printf("password entries did not match"); }
15.767 + else
15.768 + { printf("*enter password twice"); } } } } }
15.769 + printf("</span><br />");
15.770 + printf("<span class=\"iCreateLogin\">");
15.771 + if (status == NULL)
15.772 + { printf("to create new login"); }
15.773 + else { if (strcmp(status, "try_again") == 0)
15.774 + { printf("please try again"); }
15.775 + else { if (strcmp(status, "illegal_characters") == 0)
15.776 + { printf("only letters and numbers are allowed"); }
15.777 + else { if (strcmp(status, "login_exists") == 0)
15.778 + { printf("please try another"); }
15.779 + else { if (strcmp(status, "reconfirm_password") == 0)
15.780 + { printf("please reconfirm your password"); }
15.781 + else
15.782 + { printf("to create new login"); } } } } }
15.783 + printf("</span><br />");
15.784 + printf("<a id=\"iBack\" href=\"login\">< back to login</a></td>");
15.785 + printf("</tr>");
15.786 + printf("<tr>");
15.787 + printf("<td width=\"50%%\" height=\"72\" align=\"left\"><a class=\"iNewFaded\" onmouseover=\"iNewOn()\" href=\"javascript:explain('new')\"><img width=\"72\" height=\"72\" align=\"middle\" name=\"new\" alt=\"new\" src=\"images/login/new_faded.gif\" /> new</a></td>");
15.788 + printf("<td width=\"50%%\" height=\"72\" align=\"right\"><a class=\"iSettings\" onmouseout=\"iSettingsOff()\" href=\"javascript:explain('settings')\">settings <img width=\"72\" height=\"72\" align=\"middle\" name=\"settings\" alt=\"settings\" src=\"images/login/settings.gif\" /></a></td>");
15.789 + printf("</tr>");
15.790 + printf("</table>");
15.791 + printf("</div>");
15.792 + printf("</body>");
15.793 + printf("</html>\n");
15.794 + printf("<!--===========================================================================-->\n");
15.795 + printf("<!-- Copyright and Trademark Legal Notice -->\n");
15.796 + printf("<!--===========================================================================-->\n");
15.797 + printf("<!-- -->\n");
15.798 + printf("<!-- All textual and graphical site content: -->\n");
15.799 + printf("<!-- -->\n");
15.800 + printf("<!-- Copyright (C) 2001 - 2005 Brent Angeline / interos.com / interos. -->\n");
15.801 + printf("<!-- Reproduction in whole or part without written permission is prohibited. -->\n");
15.802 + printf("<!-- All rights reserved. interos.com and the interos logos are -->\n");
15.803 + printf("<!-- trademarks of Brent Angeline / interos.com / interos. -->\n");
15.804 + printf("<!-- All other company names, product names and services mentioned herein -->\n");
15.805 + printf("<!-- may be the property of their respective owners. -->\n");
15.806 + printf("<!-- -->\n");
15.807 + printf("<!--===========================================================================-->\n");
15.808 + printf("<!-- e-mail: info@interos.com -->\n");
15.809 + printf("<!--===========================================================================-->");
15.810 +}
15.811 +
15.812 +/***********************************************************************/
15.813 +/* Copyright and Trademark Statement */
15.814 +/***********************************************************************/
15.815 +/* */
15.816 +/* All original textual and graphical site content: */
15.817 +/* */
15.818 +/* Copyright 2001-2008 Brent Angeline and interos LLC. All rights */
15.819 +/* reserved. Reproduction in whole or in part without written */
15.820 +/* permission is prohibited. interos and the interos logos are */
15.821 +/* trademarks of Brent Angeline and interos LLC. All other company, */
15.822 +/* product, and service names mentioned herein may be the properties */
15.823 +/* of their respective owners. Comments in the interos.org forums */
15.824 +/* are the properties of their respective authors. All software */
15.825 +/* developed in the forums is open source and belongs to everyone. */
15.826 +/* */
15.827 +/***********************************************************************/
15.828 +/* e-mail: info@interos.com */
15.829 +/***********************************************************************/
15.830 \ No newline at end of file
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
16.2 +++ b/c/next_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
16.3 @@ -0,0 +1,58 @@
16.4 +/*************************************************/
16.5 +/* interos Standard Document Header - CGI in C */
16.6 +/*************************************************/
16.7 +/* URIs: https://interos.com/next */
16.8 +/* https://www.interos.com/next */
16.9 +/* Source: next.c */
16.10 +/* Description: FastCGI for interos next menu */
16.11 +/* Author: Brent Angeline */
16.12 +/* CGI: FastCGI in ISO/ANSI C */
16.13 +/*************************************************/
16.14 +
16.15 +/* PREPROCESSOR DIRECTIVES */
16.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
16.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
16.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
16.19 +#include <string.h> /* strcat(), strcmp(), strcpy, strlen() */
16.20 +#include <unistd.h> /* F_OK, access() */
16.21 +
16.22 +#ifndef INTEROS_H
16.23 +
16.24 + /* TYPE DEFINITION */
16.25 + typedef struct {
16.26 + char *name;
16.27 + char *link;
16.28 + char *icon;
16.29 + struct MENU_ITEM *next;
16.30 + } MENU_ITEM;
16.31 +
16.32 +#endif
16.33 +
16.34 +/* BEGIN MAIN PROGRAM */
16.35 +int main(void) {
16.36 +
16.37 + /* BEGIN FASTCGI */
16.38 + while (FCGI_Accept() >= 0) {
16.39 +
16.40 + }
16.41 + return 0;
16.42 +}
16.43 +
16.44 +/***********************************************************************/
16.45 +/* Copyright and Trademark Statement */
16.46 +/***********************************************************************/
16.47 +/* */
16.48 +/* All original textual and graphical site content: */
16.49 +/* */
16.50 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
16.51 +/* reserved. Reproduction in whole or in part without written */
16.52 +/* permission is prohibited. interos and the interos logos are */
16.53 +/* trademarks of Brent Angeline and interos LLC. All other company, */
16.54 +/* product, and service names mentioned herein may be the properties */
16.55 +/* of their respective owners. Comments in the interos.org forums */
16.56 +/* are the properties of their respective authors. All software */
16.57 +/* developed in the forums is open source and belongs to everyone. */
16.58 +/* */
16.59 +/***********************************************************************/
16.60 +/* e-mail: info@interos.com */
16.61 +/***********************************************************************/
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
17.2 +++ b/c/open_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
17.3 @@ -0,0 +1,58 @@
17.4 +/*************************************************/
17.5 +/* interos Standard Document Header - CGI in C */
17.6 +/*************************************************/
17.7 +/* URIs: https://interos.com/open */
17.8 +/* https://www.interos.com/open */
17.9 +/* Source: open.c */
17.10 +/* Description: FastCGI for interos open menu */
17.11 +/* Author: Brent Angeline */
17.12 +/* CGI: FastCGI in ISO/ANSI C */
17.13 +/*************************************************/
17.14 +
17.15 +/* PREPROCESSOR DIRECTIVES */
17.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
17.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
17.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
17.19 +#include <string.h> /* strcat(), strcmp(), strcpy, strlen() */
17.20 +#include <unistd.h> /* F_OK, access() */
17.21 +
17.22 +#ifndef INTEROS_H
17.23 +
17.24 + /* TYPE DEFINITION */
17.25 + typedef struct {
17.26 + char *name;
17.27 + char *link;
17.28 + char *icon;
17.29 + struct MENU_ITEM *next;
17.30 + } MENU_ITEM;
17.31 +
17.32 +#endif
17.33 +
17.34 +/* BEGIN MAIN PROGRAM */
17.35 +int main(void) {
17.36 +
17.37 + /* BEGIN FASTCGI */
17.38 + while (FCGI_Accept() >= 0) {
17.39 +
17.40 + }
17.41 + return 0;
17.42 +}
17.43 +
17.44 +/***********************************************************************/
17.45 +/* Copyright and Trademark Statement */
17.46 +/***********************************************************************/
17.47 +/* */
17.48 +/* All original textual and graphical site content: */
17.49 +/* */
17.50 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
17.51 +/* reserved. Reproduction in whole or in part without written */
17.52 +/* permission is prohibited. interos and the interos logos are */
17.53 +/* trademarks of Brent Angeline and interos LLC. All other company, */
17.54 +/* product, and service names mentioned herein may be the properties */
17.55 +/* of their respective owners. Comments in the interos.org forums */
17.56 +/* are the properties of their respective authors. All software */
17.57 +/* developed in the forums is open source and belongs to everyone. */
17.58 +/* */
17.59 +/***********************************************************************/
17.60 +/* e-mail: info@interos.com */
17.61 +/***********************************************************************/
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
18.2 +++ b/c/settings_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
18.3 @@ -0,0 +1,58 @@
18.4 +/*****************************************************/
18.5 +/* interos Standard Document Header - CGI in C */
18.6 +/*****************************************************/
18.7 +/* URIs: https://interos.com/settings */
18.8 +/* https://www.interos.com/settings */
18.9 +/* Source: settings.c */
18.10 +/* Description: FastCGI for interos settings menu */
18.11 +/* Author: Brent Angeline */
18.12 +/* CGI: FastCGI in ISO/ANSI C */
18.13 +/*****************************************************/
18.14 +
18.15 +/* PREPROCESSOR DIRECTIVES */
18.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
18.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
18.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
18.19 +#include <string.h> /* strcat(), strcmp(), strcpy, strlen() */
18.20 +#include <unistd.h> /* F_OK, access() */
18.21 +
18.22 +#ifndef INTEROS_H
18.23 +
18.24 + /* TYPE DEFINITION */
18.25 + typedef struct {
18.26 + char *name;
18.27 + char *link;
18.28 + char *icon;
18.29 + struct MENU_ITEM *next;
18.30 + } MENU_ITEM;
18.31 +
18.32 +#endif
18.33 +
18.34 +/* BEGIN MAIN PROGRAM */
18.35 +int main(void) {
18.36 +
18.37 + /* BEGIN FASTCGI */
18.38 + while (FCGI_Accept() >= 0) {
18.39 +
18.40 + }
18.41 + return 0;
18.42 +}
18.43 +
18.44 +/***********************************************************************/
18.45 +/* Copyright and Trademark Statement */
18.46 +/***********************************************************************/
18.47 +/* */
18.48 +/* All original textual and graphical site content: */
18.49 +/* */
18.50 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
18.51 +/* reserved. Reproduction in whole or in part without written */
18.52 +/* permission is prohibited. interos and the interos logos are */
18.53 +/* trademarks of Brent Angeline and interos LLC. All other company, */
18.54 +/* product, and service names mentioned herein may be the properties */
18.55 +/* of their respective owners. Comments in the interos.org forums */
18.56 +/* are the properties of their respective authors. All software */
18.57 +/* developed in the forums is open source and belongs to everyone. */
18.58 +/* */
18.59 +/***********************************************************************/
18.60 +/* e-mail: info@interos.com */
18.61 +/***********************************************************************/
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
19.2 +++ b/c/template.c Sat May 01 16:19:36 2010 -0400
19.3 @@ -0,0 +1,63 @@
19.4 +/*************************************************/
19.5 +/* interos Standard Document Header - CGI in C */
19.6 +/*************************************************/
19.7 +/* URIs: https://interos. / */
19.8 +/* https://www.interos. / */
19.9 +/* Source: .c */
19.10 +/* Description: FastCGI for interos */
19.11 +/* Author: Brent Angeline */
19.12 +/* CGI: FastCGI in ISO/ANSI C */
19.13 +/*************************************************/
19.14 +
19.15 +/* PREPROCESSOR DIRECTIVES */
19.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
19.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
19.18 +#include <ctype.h> /* tolower() */
19.19 +#include <stdlib.h> /* free(), getenv(), malloc(), strtoul() */
19.20 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
19.21 +#include <unistd.h> /* F_OK, access() */
19.22 +
19.23 +#ifndef INTEROS_H
19.24 +
19.25 + /* TYPE DEFINITION */
19.26 + typedef struct {
19.27 + char *name;
19.28 + char *link;
19.29 + char *icon;
19.30 + struct MENU_ITEM *next;
19.31 + } MENU_ITEM;
19.32 +
19.33 +#endif
19.34 +
19.35 +/* FUNCTION PROTOTYPE DECLARATIONS */
19.36 +
19.37 +
19.38 +/* BEGIN MAIN PROGRAM */
19.39 +int main(void) {
19.40 +
19.41 + /* BEGIN FASTCGI */
19.42 + while (FCGI_Accept() >= 0) {
19.43 +
19.44 +
19.45 + }
19.46 + return 0;
19.47 +}
19.48 +
19.49 +/***********************************************************************/
19.50 +/* Copyright and Trademark Statement */
19.51 +/***********************************************************************/
19.52 +/* */
19.53 +/* All original textual and graphical site content: */
19.54 +/* */
19.55 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
19.56 +/* reserved. Reproduction in whole or in part without written */
19.57 +/* permission is prohibited. interos and the interos logos are */
19.58 +/* trademarks of Brent Angeline and interos LLC. All other company, */
19.59 +/* product, and service names mentioned herein may be the properties */
19.60 +/* of their respective owners. Comments in the interos.org forums */
19.61 +/* are the properties of their respective authors. All software */
19.62 +/* developed in the forums is open source and belongs to everyone. */
19.63 +/* */
19.64 +/***********************************************************************/
19.65 +/* e-mail: info@interos. */
19.66 +/***********************************************************************/
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
20.2 +++ b/c/top_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
20.3 @@ -0,0 +1,514 @@
20.4 +/***************************************************/
20.5 +/* interos Standard Document Header - CGI in C */
20.6 +/***************************************************/
20.7 +/* URIs: https://interos.com/top */
20.8 +/* https://www.interos.com/top */
20.9 +/* Source: top.c */
20.10 +/* Description: FastCGI for interos top toolbar */
20.11 +/* Author: Brent Angeline */
20.12 +/* CGI: FastCGI in ISO/ANSI C */
20.13 +/***************************************************/
20.14 +
20.15 +/* PREPROCESSOR DIRECTIVES */
20.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
20.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
20.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
20.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
20.20 +#include <unistd.h> /* F_OK, access() */
20.21 +
20.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
20.23 +static void RedirectToLoginPanel(void);
20.24 +static void OutputTop(char *status);
20.25 +static void OutputOpenButton(void);
20.26 +static void OutputNextButton(void);
20.27 +static void BeginXHTMLOutput(void);
20.28 +static void BeginTopOutput(void);
20.29 +static void FinishXHTMLOutput(void);
20.30 +
20.31 +/* BEGIN MAIN PROGRAM */
20.32 +int main(void) {
20.33 +
20.34 + /* BEGIN FASTCGI */
20.35 + while (FCGI_Accept() >= 0) {
20.36 +
20.37 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
20.38 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
20.39 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
20.40 + RedirectToLoginPanel();
20.41 +
20.42 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
20.43 + } else {
20.44 +
20.45 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
20.46 + char *cookie;
20.47 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
20.48 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
20.49 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
20.50 + RedirectToLoginPanel();
20.51 + } else {
20.52 + char *variableName;
20.53 + if (!(variableName = malloc(cookieLength + 1))) {
20.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
20.55 + RedirectToLoginPanel();
20.56 + } else {
20.57 + char *variableValue;
20.58 + if (!(variableValue = malloc(cookieLength + 1))) {
20.59 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
20.60 + RedirectToLoginPanel();
20.61 +
20.62 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
20.63 + } else {
20.64 +
20.65 + /* PROCESS COOKIE DATA */
20.66 + char *login, *password;
20.67 + INT i, c;
20.68 + login = password = NULL;
20.69 + c = 0;
20.70 + strcpy(cookie, getenv("HTTP_COOKIE"));
20.71 + while ((c < cookieLength) && (cookie[c] != '\0')) {
20.72 + i = 0;
20.73 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
20.74 + variableName[i] = cookie[c];
20.75 + ++c;
20.76 + ++i;
20.77 + }
20.78 + variableName[i] = '\0';
20.79 + ++c;
20.80 + i = 0;
20.81 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
20.82 + variableValue[i] = cookie[c];
20.83 + ++c;
20.84 + ++i;
20.85 + }
20.86 + variableValue[i] = '\0';
20.87 + ++c;
20.88 + while ((c < cookieLength) && (cookie[c] == ' ')) {
20.89 + ++c;
20.90 + }
20.91 + if (!login && !strcmp(variableName, "login")) {
20.92 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
20.93 + strcpy(login, variableValue);
20.94 + }
20.95 + } else if (!password && !strcmp(variableName, "password")) {
20.96 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
20.97 + strcpy(password, variableValue);
20.98 + }
20.99 + }
20.100 + }
20.101 +
20.102 + /* IF LOGIN VALUE IS MISSING... */
20.103 + if (!login) {
20.104 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
20.105 + RedirectToLoginPanel();
20.106 +
20.107 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
20.108 + } else {
20.109 +
20.110 + /* VERIFY LOGIN AND PASSWORD */
20.111 + char *directory;
20.112 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
20.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
20.114 + RedirectToLoginPanel();
20.115 + } else {
20.116 + char *systemDirectory;
20.117 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
20.118 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
20.119 + RedirectToLoginPanel();
20.120 + } else {
20.121 + strcpy(directory, DIRECTORY);
20.122 + strcat(directory, login);
20.123 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
20.124 + strcat(systemDirectory, login);
20.125 +
20.126 + /* IF DIRECTORY CAN'T BE ACCESSED... */
20.127 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
20.128 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
20.129 + RedirectToLoginPanel();
20.130 +
20.131 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
20.132 + } else {
20.133 +
20.134 + /* ATTEMPT TO ACCESS PASSWORD FILE */
20.135 + char *passwordFileName;
20.136 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
20.137 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
20.138 + RedirectToLoginPanel();
20.139 + } else {
20.140 + strcpy(passwordFileName, systemDirectory);
20.141 + strcat(passwordFileName, PASSWORD_FILE_NAME);
20.142 +
20.143 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
20.144 + if (access(passwordFileName, F_OK)) {
20.145 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
20.146 + RedirectToLoginPanel();
20.147 +
20.148 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
20.149 + } else {
20.150 +
20.151 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
20.152 + FILE *passwordFile;
20.153 +
20.154 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
20.155 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
20.156 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
20.157 + RedirectToLoginPanel();
20.158 +
20.159 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
20.160 + } else {
20.161 + char *filePassword;
20.162 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
20.163 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
20.164 + RedirectToLoginPanel();
20.165 + } else {
20.166 + char c;
20.167 + i = 0;
20.168 +
20.169 + /* READ PASSWORD FROM PASSWORD FILE */
20.170 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
20.171 + filePassword[i] = c;
20.172 + ++i;
20.173 + }
20.174 + filePassword[i] = '\0';
20.175 + fclose(passwordFile);
20.176 +
20.177 + /* IF PASSWORD FAILS COMPARISON... */
20.178 + if (strcmp(filePassword, password)) {
20.179 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
20.180 + RedirectToLoginPanel();
20.181 +
20.182 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
20.183 + } else {
20.184 +
20.185 + /* LOAD SETTINGS VALUES FROM FILES */
20.186 +
20.187 + /* LOAD interos TOP COMPONENTS FROM FILES */
20.188 +
20.189 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
20.190 + char *status, *button;
20.191 + status = button = NULL;
20.192 +
20.193 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
20.194 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
20.195 + char *query;
20.196 + INT queryLength = strlen(getenv("QUERY_STRING"));
20.197 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
20.198 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
20.199 + } else {
20.200 + strcpy(query, getenv("QUERY_STRING"));
20.201 + free(variableName);
20.202 + if (!(variableName = malloc(queryLength + 1))) {
20.203 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
20.204 + } else {
20.205 + free(variableValue);
20.206 + if (!(variableValue = malloc(queryLength + 1))) {
20.207 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
20.208 +
20.209 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
20.210 + } else {
20.211 +
20.212 + /* PROCESS QUERY DATA */
20.213 + INT q = 0;
20.214 + i = 0;
20.215 + while ((q < queryLength) && (query[q] != '\0')) {
20.216 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
20.217 + variableName[i] = query[q];
20.218 + ++q;
20.219 + ++i;
20.220 + }
20.221 + variableName[i] = '\0';
20.222 + ++q;
20.223 + i = 0;
20.224 + while ((query[q] != '&') && (query[q] != '\0')) {
20.225 + variableValue[i] = query[q];
20.226 + ++q;
20.227 + ++i;
20.228 + }
20.229 + variableValue[i] = '\0';
20.230 + if (query[q] != '\0') {
20.231 + ++q;
20.232 + }
20.233 + if (!status && !strcmp(variableName, "status")) {
20.234 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
20.235 + strcpy(status, variableValue);
20.236 + }
20.237 + } else if (!button && !strcmp(variableName, "button")) {
20.238 + if ((button = malloc(strlen(variableValue) + 1)) != 0) {
20.239 + strcpy(button, variableValue);
20.240 + }
20.241 + }
20.242 + }
20.243 + }
20.244 + }
20.245 + free(query);
20.246 + }
20.247 + }
20.248 +
20.249 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
20.250 + if (button) {
20.251 + if (!strcmp(button, "open")) {
20.252 + OutputOpenButton();
20.253 + } else if (!strcmp(button, "next")) {
20.254 + OutputNextButton();
20.255 + } else {
20.256 +
20.257 + /* OUTPUT XHTML FOR interos TOP BAR */
20.258 + OutputTop(status);
20.259 + }
20.260 + } else {
20.261 +
20.262 + /* OUTPUT XHTML FOR interos TOP BAR */
20.263 + OutputTop(status);
20.264 + }
20.265 + free(button);
20.266 + free(status);
20.267 + }
20.268 + free(filePassword);
20.269 + }
20.270 + }
20.271 + }
20.272 + free(passwordFileName);
20.273 + }
20.274 + }
20.275 + free(systemDirectory);
20.276 + }
20.277 + free(directory);
20.278 + }
20.279 + free(login);
20.280 + }
20.281 + free(password);
20.282 + free(variableValue);
20.283 + }
20.284 + free(variableName);
20.285 + }
20.286 + free(cookie);
20.287 + }
20.288 + }
20.289 + }
20.290 + return 0;
20.291 +}
20.292 +
20.293 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
20.294 +static void RedirectToLoginPanel(void) {
20.295 + BeginXHTMLOutput();
20.296 + BeginTopOutput();
20.297 + printf(" <a href=\"/login\" \n");
20.298 + printf(" target=\"_top\">click here to login for interos top toolbar</a>\n");
20.299 + FinishXHTMLOutput();
20.300 +}
20.301 +
20.302 +/* FUNCTION | OUTPUT XHTML FOR interos TOP TOOLBAR */
20.303 +static void OutputTop(char *status) {
20.304 + BeginXHTMLOutput();
20.305 + BeginTopOutput();
20.306 + printf(" <table id=\"topToolbar\" width=\"100%%\" \n");
20.307 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
20.308 + printf(" <tr>\n");
20.309 + printf(" <td width=\"72\" \n");
20.310 + printf(" height=\"72\"><center>\n");
20.311 + printf(" <a id=\"openButton\" \n");
20.312 + printf(" href=\"/interos?menu=open\" \n");
20.313 + printf(" style=\"padding: 26px 0 27px\" \n");
20.314 + printf(" target=\"_top\"><strong>open</strong></a>\n");
20.315 + printf(" </center></td>\n");
20.316 + printf(" <td><center>\n");
20.317 + printf(" <span class=\"hidden\">|</span> \n");
20.318 + printf(" </center></td>\n");
20.319 + printf(" <td width=\"72\" \n");
20.320 + printf(" height=\"72\"><center>\n");
20.321 + printf(" <a id=\"nextButton\" \n");
20.322 + printf(" href=\"/interos?menu=next\" \n");
20.323 + printf(" style=\"padding: 26px 0 27px\" \n");
20.324 + printf(" target=\"_top\"><strong>next</strong></a>\n");
20.325 + printf(" </center></td>\n");
20.326 + printf(" </tr>\n");
20.327 + printf(" </table>\n");
20.328 + FinishXHTMLOutput();
20.329 +}
20.330 +
20.331 +/* FUNCTION | OUTPUT XHTML FOR OPEN BUTTON */
20.332 +static void OutputOpenButton(void) {
20.333 + BeginXHTMLOutput();
20.334 + printf(" <!--====================================================-->\n");
20.335 + printf(" <!-- interos Standard Document Header - Markup -->\n");
20.336 + printf(" <!--====================================================-->\n");
20.337 + printf(" <!-- URIs: https://interos.com/top?button=open -->\n");
20.338 + printf(" <!-- https://www.interos.com/top?button=open -->\n");
20.339 + printf(" <!-- Title: interos open menu button -->\n");
20.340 + printf(" <!-- Author: Brent Angeline -->\n");
20.341 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
20.342 + printf(" <!--====================================================-->\n");
20.343 + printf(" <head>\n");
20.344 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
20.345 + printf(" <meta name=\"title\" content=\"interos open menu button\" />\n");
20.346 + printf(" <meta name=\"description\" content=\"button for interos open menu\" />\n");
20.347 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
20.348 + printf(" <meta name=\"copyright\" \n");
20.349 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
20.350 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
20.351 + printf(" <title>interos open menu button</title>\n");
20.352 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
20.353 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
20.354 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
20.355 + printf(" media=\"screen, projection\" />\n");
20.356 + printf(" <script type=\"text/javascript\" src=\"/js/top.js\"></script>\n");
20.357 + printf(" </head>\n");
20.358 + printf(" <body id=\"body\">\n");
20.359 + printf(" <center>\n");
20.360 + printf(" <table id=\"topToolbarFaded\" width=\"100%%\" \n");
20.361 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
20.362 + printf(" <tr>\n");
20.363 + printf(" <td width=\"72\" \n");
20.364 + printf(" height=\"72\"><center>\n");
20.365 + printf(" <a id=\"openMenuButton\" \n");
20.366 + printf(" href=\"/main\" \n");
20.367 + printf(" style=\"padding: 26px 0 27px\" \n");
20.368 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
20.369 + printf(" </center></td>\n");
20.370 + printf(" <td><center>\n");
20.371 + printf(" <span class=\"hidden\">|</span> \n");
20.372 + printf(" </center></td>\n");
20.373 + printf(" <td id=\"topToolbarCornerFaded\" \n");
20.374 + printf(" width=\"72\" \n");
20.375 + printf(" height=\"72\"><p>\n");
20.376 + printf(" <br />\n");
20.377 + printf(" </p></td>\n");
20.378 + printf(" </tr>\n");
20.379 + printf(" </table>\n");
20.380 + FinishXHTMLOutput();
20.381 +}
20.382 +
20.383 +/* FUNCTION | OUTPUT XHTML FOR NEXT BUTTON */
20.384 +static void OutputNextButton(void) {
20.385 + BeginXHTMLOutput();
20.386 + printf(" <!--====================================================-->\n");
20.387 + printf(" <!-- interos Standard Document Header - Markup -->\n");
20.388 + printf(" <!--====================================================-->\n");
20.389 + printf(" <!-- URIs: https://interos.com/top?button=next -->\n");
20.390 + printf(" <!-- https://www.interos.com/top?button=next -->\n");
20.391 + printf(" <!-- Title: interos next menu button -->\n");
20.392 + printf(" <!-- Author: Brent Angeline -->\n");
20.393 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
20.394 + printf(" <!--====================================================-->\n");
20.395 + printf(" <head>\n");
20.396 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
20.397 + printf(" <meta name=\"title\" content=\"interos next menu button\" />\n");
20.398 + printf(" <meta name=\"description\" content=\"button for interos next menu\" />\n");
20.399 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
20.400 + printf(" <meta name=\"copyright\" \n");
20.401 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
20.402 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
20.403 + printf(" <title>interos next menu button</title>\n");
20.404 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
20.405 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
20.406 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
20.407 + printf(" media=\"screen, projection\" />\n");
20.408 + printf(" <script type=\"text/javascript\" src=\"/js/top.js\"></script>\n");
20.409 + printf(" </head>\n");
20.410 + printf(" <body id=\"body\">\n");
20.411 + printf(" <center>\n");
20.412 + printf(" <table id=\"topToolbarFaded\" width=\"100%%\" \n");
20.413 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
20.414 + printf(" <tr>\n");
20.415 + printf(" <td id=\"topToolbarCornerFaded\" \n");
20.416 + printf(" width=\"72\" \n");
20.417 + printf(" height=\"72\"><p>\n");
20.418 + printf(" <br />\n");
20.419 + printf(" <p></td>\n");
20.420 + printf(" <td><center>\n");
20.421 + printf(" <span class=\"hidden\">|</span> \n");
20.422 + printf(" </center></td>\n");
20.423 + printf(" <td width=\"72\" \n");
20.424 + printf(" height=\"72\"><center>\n");
20.425 + printf(" <a id=\"nextMenuButton\" \n");
20.426 + printf(" href=\"/main\" \n");
20.427 + printf(" style=\"padding: 26px 0 27px\" \n");
20.428 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
20.429 + printf(" </center></td>\n");
20.430 + printf(" </tr>\n");
20.431 + printf(" </table>\n");
20.432 + FinishXHTMLOutput();
20.433 +}
20.434 +
20.435 +/* FUNCTION | BEGIN XHTML OUTPUT */
20.436 +static void BeginXHTMLOutput(void) {
20.437 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
20.438 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
20.439 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
20.440 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
20.441 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
20.442 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
20.443 +}
20.444 +
20.445 +/* FUNCTION | BEGIN interos TOP TOOLBAR OUTPUT */
20.446 +static void BeginTopOutput(void) {
20.447 + printf(" <!--=================================================-->\n");
20.448 + printf(" <!-- interos Standard Document Header - Markup -->\n");
20.449 + printf(" <!--=================================================-->\n");
20.450 + printf(" <!-- URIs: https://interos.com/top -->\n");
20.451 + printf(" <!-- https://www.interos.com/top -->\n");
20.452 + printf(" <!-- Title: interos top toolbar -->\n");
20.453 + printf(" <!-- Author: Brent Angeline -->\n");
20.454 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
20.455 + printf(" <!--=================================================-->\n");
20.456 + printf(" <head>\n");
20.457 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
20.458 + printf(" <meta name=\"title\" content=\"interos top toolbar\" />\n");
20.459 + printf(" <meta name=\"description\" content=\"top toolbar for interos\" />\n");
20.460 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
20.461 + printf(" <meta name=\"copyright\" \n");
20.462 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
20.463 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
20.464 + printf(" <title>interos top</title>\n");
20.465 + printf(" <link rel=\"shortcut icon\" href=\"/favicon.ico\" type=\"image/x-icon\" />\n");
20.466 + printf(" <link rel=\"icon\" href=\"/images/favicon.gif\" type=\"image/gif\" />\n");
20.467 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
20.468 + printf(" media=\"screen, projection\" />\n");
20.469 + printf(" <script type=\"text/javascript\" src=\"/js/top.js\"></script>\n");
20.470 + printf(" </head>\n");
20.471 + printf(" <body id=\"body\">\n");
20.472 + printf(" <center>\n");
20.473 +}
20.474 +
20.475 +/* FUNCTION | FINISH XHTML OUTPUT */
20.476 +static void FinishXHTMLOutput(void) {
20.477 + printf(" </center>\n");
20.478 + printf(" </body>\n");
20.479 + printf(" <!--=====================================================================-->\n");
20.480 + printf(" <!-- Copyright and Trademark Statement -->\n");
20.481 + printf(" <!--=====================================================================-->\n");
20.482 + printf(" <!-- -->\n");
20.483 + printf(" <!-- All original textual and graphical site content: -->\n");
20.484 + printf(" <!-- -->\n");
20.485 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
20.486 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
20.487 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
20.488 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
20.489 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
20.490 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
20.491 + printf(" <!-- are the properties of their respective authors. All software -->\n");
20.492 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
20.493 + printf(" <!-- -->\n");
20.494 + printf(" <!--=====================================================================-->\n");
20.495 + printf(" <!-- e-mail: info@interos.com -->\n");
20.496 + printf(" <!--=====================================================================-->\n");
20.497 + printf("</html>");
20.498 +}
20.499 +
20.500 +/***********************************************************************/
20.501 +/* Copyright and Trademark Statement */
20.502 +/***********************************************************************/
20.503 +/* */
20.504 +/* All original textual and graphical site content: */
20.505 +/* */
20.506 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
20.507 +/* reserved. Reproduction in whole or in part without written */
20.508 +/* permission is prohibited. interos and the interos logos are */
20.509 +/* trademarks of Brent Angeline and interos LLC. All other company, */
20.510 +/* product, and service names mentioned herein may be the properties */
20.511 +/* of their respective owners. Comments in the interos.org forums */
20.512 +/* are the properties of their respective authors. All software */
20.513 +/* developed in the forums is open source and belongs to everyone. */
20.514 +/* */
20.515 +/***********************************************************************/
20.516 +/* e-mail: info@interos.com */
20.517 +/***********************************************************************/
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
21.2 +++ b/c/upload_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
21.3 @@ -0,0 +1,87 @@
21.4 +/**************************************************/
21.5 +/* interos Standard Document Header - CGI in C */
21.6 +/**************************************************/
21.7 +/* URIs: https://interos.com/upload */
21.8 +/* https://www.interos.com/upload */
21.9 +/* Source: upload.c */
21.10 +/* Description: FastCGI for interos upload */
21.11 +/* Author: Brent Angeline */
21.12 +/* CGI: FastCGI in ISO/ANSI C */
21.13 +/**************************************************/
21.14 +
21.15 +/* PREPROCESSOR DIRECTIVES */
21.16 +
21.17 +
21.18 +/* FUNCTION PROTOTYPE DECLARATIONS */
21.19 +
21.20 +
21.21 +/* BEGIN MAIN PROGRAM */
21.22 +int main(void) {
21.23 +
21.24 + /* BEGIN FASTCGI */
21.25 + while (FCGI_Accept() >= 0) {
21.26 +
21.27 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
21.28 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
21.29 +
21.30 + /* OUTPUT FORM XHTML */
21.31 +
21.32 +
21.33 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
21.34 + } else {
21.35 +
21.36 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
21.37 + char *post;
21.38 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
21.39 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
21.40 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST DATA > PRINT MESSAGE, START OVER AND TRY AGAIN **/
21.41 + } else {
21.42 + char *boundary;
21.43 + if (!(boundary = malloc(postLength + 1))) {
21.44 + /** ERROR | CANNOT ALLOCATE MEMORY FOR BOUNDARY DATA > PRINT MESSAGE, START OVER AND TRY AGAIN **/
21.45 + } else {
21.46 + char *variableName;
21.47 + if (!(variableName = malloc(postLength + 1))) {
21.48 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE NAME > PRINT MESSAGE, START OVER AND TRY AGAIN **/
21.49 + } else {
21.50 + char *variableValue;
21.51 + if (!(variableValue = malloc(postLength + 1))) {
21.52 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE VALUE > PRINT MESSAGE, START OVER AND TRY AGAIN **/
21.53 +
21.54 + /* IF SUFFICIENT MEMORY FOR POST VARIABLES... */
21.55 + } else {
21.56 +
21.57 + /* SET VARIABLES BASED ON POST DATA */
21.58 + INT p, i;
21.59 +
21.60 + free(variableValue);
21.61 + }
21.62 + free(variableName);
21.63 + }
21.64 + free(boundary);
21.65 + }
21.66 + free(post);
21.67 + }
21.68 + }
21.69 + }
21.70 + return 0;
21.71 +}
21.72 +
21.73 +/***********************************************************************/
21.74 +/* Copyright and Trademark Statement */
21.75 +/***********************************************************************/
21.76 +/* */
21.77 +/* All original textual and graphical site content: */
21.78 +/* */
21.79 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
21.80 +/* reserved. Reproduction in whole or in part without written */
21.81 +/* permission is prohibited. interos and the interos logos are */
21.82 +/* trademarks of Brent Angeline and interos LLC. All other company, */
21.83 +/* product, and service names mentioned herein may be the properties */
21.84 +/* of their respective owners. Comments in the interos.org forums */
21.85 +/* are the properties of their respective authors. All software */
21.86 +/* developed in the forums is open source and belongs to everyone. */
21.87 +/* */
21.88 +/***********************************************************************/
21.89 +/* e-mail: info@interos.com */
21.90 +/***********************************************************************/
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
22.2 +++ b/c/user_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
22.3 @@ -0,0 +1,224 @@
22.4 +/*************************************************/
22.5 +/* interos Standard Document Header - CGI in C */
22.6 +/*************************************************/
22.7 +/* URIs: https://interos.com/user */
22.8 +/* https://www.interos.com/user */
22.9 +/* Source: user.c */
22.10 +/* Description: FastCGI for interos user */
22.11 +/* Author: Brent Angeline */
22.12 +/* CGI: FastCGI in ISO/ANSI C */
22.13 +/*************************************************/
22.14 +
22.15 +/* PREPROCESSOR DIRECTIVES */
22.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
22.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
22.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
22.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
22.20 +#include <unistd.h> /* F_OK, access() */
22.21 +
22.22 +/* FUNCTION PROTOTYPE DECLARATION */
22.23 +static void ReturnUserless();
22.24 +
22.25 +/* BEGIN MAIN PROGRAM */
22.26 +int main(void) {
22.27 +
22.28 + /* BEGIN FASTCGI */
22.29 + while (FCGI_Accept() >= 0) {
22.30 +
22.31 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
22.32 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
22.33 + /** ERROR | COOKIE DATA DOES NOT EXIST > RETURN USERLESS **/
22.34 + ReturnUserless();
22.35 +
22.36 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
22.37 + } else {
22.38 +
22.39 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
22.40 + char *cookie;
22.41 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
22.42 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
22.43 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > RETURN USERLESS **/
22.44 + ReturnUserless();
22.45 + } else {
22.46 + char *variableName;
22.47 + if (!(variableName = malloc(cookieLength + 1))) {
22.48 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > RETURN USERLESS **/
22.49 + ReturnUserless();
22.50 + } else {
22.51 + char *variableValue;
22.52 + if (!(variableValue = malloc(cookieLength + 1))) {
22.53 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > RETURN USERLESS **/
22.54 + ReturnUserless();
22.55 +
22.56 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
22.57 + } else {
22.58 +
22.59 + /* PROCESS COOKIE DATA */
22.60 + char *login, *password;
22.61 + INT i, c;
22.62 + login = password = NULL;
22.63 + c = 0;
22.64 + strcpy(cookie, getenv("HTTP_COOKIE"));
22.65 + while ((c < cookieLength) && (cookie[c] != '\0')) {
22.66 + i = 0;
22.67 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
22.68 + variableName[i] = cookie[c];
22.69 + ++c;
22.70 + ++i;
22.71 + }
22.72 + variableName[i] = '\0';
22.73 + ++c;
22.74 + i = 0;
22.75 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
22.76 + variableValue[i] = cookie[c];
22.77 + ++c;
22.78 + ++i;
22.79 + }
22.80 + variableValue[i] = '\0';
22.81 + ++c;
22.82 + while ((c < cookieLength) && (cookie[c] == ' ')) {
22.83 + ++c;
22.84 + }
22.85 + if (!login && !strcmp(variableName, "login")) {
22.86 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
22.87 + strcpy(login, variableValue);
22.88 + }
22.89 + } else if (!password && !strcmp(variableName, "password")) {
22.90 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
22.91 + strcpy(password, variableValue);
22.92 + }
22.93 + }
22.94 + }
22.95 +
22.96 + /* IF LOGIN VALUE IS MISSING... */
22.97 + if (!login) {
22.98 + /** ERROR | LOGIN VALUE IS MISSING > RETURN USERLESS **/
22.99 + ReturnUserless();
22.100 +
22.101 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
22.102 + } else {
22.103 +
22.104 + /* VERIFY LOGIN AND PASSWORD */
22.105 + char *directory;
22.106 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
22.107 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > RETURN USERLESS **/
22.108 + ReturnUserless();
22.109 + } else {
22.110 + char *systemDirectory;
22.111 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
22.112 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > RETURN USERLESS **/
22.113 + ReturnUserless();
22.114 + } else {
22.115 + strcpy(directory, DIRECTORY);
22.116 + strcat(directory, login);
22.117 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
22.118 + strcat(systemDirectory, login);
22.119 +
22.120 + /* IF DIRECTORY CAN'T BE ACCESSED... */
22.121 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
22.122 + /** ERROR | CANNOT ACCESS DIRECTORY > RETURN USERLESS **/
22.123 + ReturnUserless();
22.124 +
22.125 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
22.126 + } else {
22.127 +
22.128 + /* ATTEMPT TO ACCESS PASSWORD FILE */
22.129 + char *passwordFileName;
22.130 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
22.131 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > RETURN USERLESS **/
22.132 + ReturnUserless();
22.133 + } else {
22.134 + strcpy(passwordFileName, systemDirectory);
22.135 + strcat(passwordFileName, PASSWORD_FILE_NAME);
22.136 +
22.137 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
22.138 + if (access(passwordFileName, F_OK)) {
22.139 + /** ERROR | CANNOT ACCESS FILE > RETURN USERLESS **/
22.140 + ReturnUserless();
22.141 +
22.142 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
22.143 + } else {
22.144 +
22.145 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
22.146 + FILE *passwordFile;
22.147 +
22.148 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
22.149 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
22.150 + /** ERROR | CANNOT READ FILE > RETURN USERLESS **/
22.151 + ReturnUserless();
22.152 +
22.153 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
22.154 + } else {
22.155 + char *filePassword;
22.156 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
22.157 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > RETURN USERLESS **/
22.158 + ReturnUserless();
22.159 + } else {
22.160 + char c;
22.161 + i = 0;
22.162 +
22.163 + /* READ PASSWORD FROM PASSWORD FILE */
22.164 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
22.165 + filePassword[i] = c;
22.166 + ++i;
22.167 + }
22.168 + filePassword[i] = '\0';
22.169 + fclose(passwordFile);
22.170 +
22.171 + /* IF PASSWORD FAILS COMPARISON... */
22.172 + if (strcmp(filePassword, password)) {
22.173 + /** ERROR | PASSWORD FAILED > RETURN USERLESS **/
22.174 + ReturnUserless();
22.175 +
22.176 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
22.177 + } else {
22.178 + printf("Content-Type: text/plain\r\n\r\n");
22.179 + printf("%s", login);
22.180 + }
22.181 + free(filePassword);
22.182 + }
22.183 + }
22.184 + }
22.185 + free(passwordFileName);
22.186 + }
22.187 + }
22.188 + free(systemDirectory);
22.189 + }
22.190 + free(directory);
22.191 + }
22.192 + free(login);
22.193 + }
22.194 + free(password);
22.195 + free(variableValue);
22.196 + }
22.197 + free(variableName);
22.198 + }
22.199 + free(cookie);
22.200 + }
22.201 + }
22.202 + }
22.203 + return 0;
22.204 +}
22.205 +
22.206 +static void ReturnUserless() {
22.207 + printf("Content-Type: text/plain\r\n\r\n");
22.208 +}
22.209 +
22.210 +/***********************************************************************/
22.211 +/* Copyright and Trademark Statement */
22.212 +/***********************************************************************/
22.213 +/* */
22.214 +/* All original textual and graphical site content: */
22.215 +/* */
22.216 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
22.217 +/* reserved. Reproduction in whole or in part without written */
22.218 +/* permission is prohibited. interos and the interos logos are */
22.219 +/* trademarks of Brent Angeline and interos LLC. All other company, */
22.220 +/* product, and service names mentioned herein may be the properties */
22.221 +/* of their respective owners. Comments in the interos.org forums */
22.222 +/* are the properties of their respective authors. All software */
22.223 +/* developed in the forums is open source and belongs to everyone. */
22.224 +/* */
22.225 +/***********************************************************************/
22.226 +/* e-mail: info@interos.com */
22.227 +/***********************************************************************/
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
23.2 +++ b/c/welcome_back_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
23.3 @@ -0,0 +1,32 @@
23.4 +
23.5 +
23.6 +/* PREPROCESSOR DIRECTIVES */
23.7 +
23.8 +/* BEGIN MAIN PROGRAM */
23.9 +int main(void) {
23.10 +
23.11 + /* BEGIN FASTCGI */
23.12 + while (FCGI_Accept() >= 0) {
23.13 +
23.14 + }
23.15 + return 0;
23.16 +}
23.17 +
23.18 +/***********************************************************************/
23.19 +/* Copyright and Trademark Statement */
23.20 +/***********************************************************************/
23.21 +/* */
23.22 +/* All original textual and graphical site content: */
23.23 +/* */
23.24 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
23.25 +/* reserved. Reproduction in whole or in part without written */
23.26 +/* permission is prohibited. interos and the interos logos are */
23.27 +/* trademarks of Brent Angeline and interos LLC. All other company, */
23.28 +/* product, and service names mentioned herein may be the properties */
23.29 +/* of their respective owners. Comments in the interos.org forums */
23.30 +/* are the properties of their respective authors. All software */
23.31 +/* developed in the forums is open source and belongs to everyone. */
23.32 +/* */
23.33 +/***********************************************************************/
23.34 +/* e-mail: info@interos.com */
23.35 +/***********************************************************************/
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
24.2 +++ b/c/welcome_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
24.3 @@ -0,0 +1,473 @@
24.4 +/***************************************************/
24.5 +/* interos Standard Document Header - CGI in C */
24.6 +/***************************************************/
24.7 +/* URIs: https://interos.com/welcome */
24.8 +/* https://www.interos.com/welcome */
24.9 +/* Source: welcome.c */
24.10 +/* Description: FastCGI for interos welcome */
24.11 +/* Author: Brent Angeline */
24.12 +/* CGI: FastCGI in ISO/ANSI C */
24.13 +/***************************************************/
24.14 +
24.15 +/* PREPROCESSOR DIRECTIVES */
24.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
24.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
24.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
24.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
24.20 +#include <unistd.h> /* F_OK, access() */
24.21 +
24.22 +#ifndef INTEROS_H
24.23 +
24.24 + /* TYPE DEFINITION */
24.25 + typedef struct {
24.26 + char *name;
24.27 + char *link;
24.28 + char *icon;
24.29 + struct MENU_ITEM *next;
24.30 + } MENU_ITEM;
24.31 +
24.32 +#endif
24.33 +
24.34 +/* FUNCTION PROTOTYPE DECLARATIONS */
24.35 +static void RedirectToLoginPanel(void);
24.36 +static void OutputGUI(void);
24.37 +static void OutputFramesetGUI(void);
24.38 +static void BeginXHTMLOutput(void);
24.39 +static void FinishXHTMLOutput(void);
24.40 +
24.41 +/* BEGIN MAIN PROGRAM */
24.42 +int main(void) {
24.43 +
24.44 + /* BEGIN FASTCGI */
24.45 + while (FCGI_Accept() >= 0) {
24.46 +
24.47 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
24.48 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
24.49 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
24.50 + RedirectToLoginPanel();
24.51 +
24.52 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
24.53 + } else {
24.54 +
24.55 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
24.56 + char *cookie;
24.57 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
24.58 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
24.59 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
24.60 + RedirectToLoginPanel();
24.61 + } else {
24.62 + char *variableName;
24.63 + if (!(variableName = malloc(cookieLength + 1))) {
24.64 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
24.65 + RedirectToLoginPanel();
24.66 + } else {
24.67 + char *variableValue;
24.68 + if (!(variableValue = malloc(cookieLength + 1))) {
24.69 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
24.70 + RedirectToLoginPanel();
24.71 +
24.72 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
24.73 + } else {
24.74 +
24.75 + /* PROCESS COOKIE DATA */
24.76 + char *login, *password, *javascript;
24.77 + INT i, c;
24.78 + login = password = javascript = NULL;
24.79 + c = 0;
24.80 + strcpy(cookie, getenv("HTTP_COOKIE"));
24.81 + while ((c < cookieLength) && (cookie[c] != '\0')) {
24.82 + i = 0;
24.83 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
24.84 + variableName[i] = cookie[c];
24.85 + ++c;
24.86 + ++i;
24.87 + }
24.88 + variableName[i] = '\0';
24.89 + ++c;
24.90 + i = 0;
24.91 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
24.92 + variableValue[i] = cookie[c];
24.93 + ++c;
24.94 + ++i;
24.95 + }
24.96 + variableValue[i] = '\0';
24.97 + ++c;
24.98 + while ((c < cookieLength) && (cookie[c] == ' ')) {
24.99 + ++c;
24.100 + }
24.101 + if (!login && !strcmp(variableName, "login")) {
24.102 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
24.103 + strcpy(login, variableValue);
24.104 + }
24.105 + } else if (!password && !strcmp(variableName, "password")) {
24.106 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
24.107 + strcpy(password, variableValue);
24.108 + }
24.109 + } else if (!javascript && !strcmp(variableName, "javascript")) {
24.110 + if ((javascript = malloc(strlen(variableValue) + 1)) != 0) {
24.111 + strcpy(javascript, variableValue);
24.112 + }
24.113 + }
24.114 + }
24.115 +
24.116 + /* IF LOGIN VALUE IS MISSING... */
24.117 + if (!login) {
24.118 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
24.119 + RedirectToLoginPanel();
24.120 +
24.121 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
24.122 + } else {
24.123 +
24.124 + /* VERIFY LOGIN AND PASSWORD */
24.125 + char *directory;
24.126 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
24.127 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
24.128 + RedirectToLoginPanel();
24.129 + } else {
24.130 + char *systemDirectory;
24.131 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
24.132 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
24.133 + RedirectToLoginPanel();
24.134 + } else {
24.135 + strcpy(directory, DIRECTORY);
24.136 + strcat(directory, login);
24.137 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
24.138 + strcat(systemDirectory, login);
24.139 +
24.140 + /* IF DIRECTORY CAN'T BE ACCESSED... */
24.141 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
24.142 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
24.143 + RedirectToLoginPanel();
24.144 +
24.145 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
24.146 + } else {
24.147 +
24.148 + /* ATTEMPT TO ACCESS PASSWORD FILE */
24.149 + char *passwordFileName;
24.150 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
24.151 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
24.152 + RedirectToLoginPanel();
24.153 + } else {
24.154 + strcpy(passwordFileName, systemDirectory);
24.155 + strcat(passwordFileName, PASSWORD_FILE_NAME);
24.156 +
24.157 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
24.158 + if (access(passwordFileName, F_OK)) {
24.159 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
24.160 + RedirectToLoginPanel();
24.161 +
24.162 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
24.163 + } else {
24.164 +
24.165 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
24.166 + FILE *passwordFile;
24.167 +
24.168 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
24.169 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
24.170 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
24.171 + RedirectToLoginPanel();
24.172 +
24.173 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
24.174 + } else {
24.175 + char *filePassword;
24.176 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
24.177 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
24.178 + RedirectToLoginPanel();
24.179 + } else {
24.180 + char c;
24.181 + i = 0;
24.182 +
24.183 + /* READ PASSWORD FROM PASSWORD FILE */
24.184 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
24.185 + filePassword[i] = c;
24.186 + ++i;
24.187 + }
24.188 + filePassword[i] = '\0';
24.189 + fclose(passwordFile);
24.190 +
24.191 + /* IF PASSWORD FAILS COMPARISON... */
24.192 + if (strcmp(filePassword, password)) {
24.193 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
24.194 + RedirectToLoginPanel();
24.195 +
24.196 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
24.197 + } else {
24.198 +
24.199 + /* LOAD SETTINGS VALUES FROM FILE(S) */
24.200 +
24.201 + /* LOAD MENU ITEMS FROM FILES */
24.202 +
24.203 + /* READ NEW MENU FILE */
24.204 +
24.205 + /* READ OPEN MENU FILE */
24.206 +
24.207 + /* READ NEXT MENU FILE */
24.208 +
24.209 + /* READ SETTINGS MENU FILE */
24.210 +
24.211 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
24.212 +
24.213 + /* IF THIS IS A CONTINUED SESSION... */
24.214 +
24.215 + /* LOAD SESSION FROM FILE */
24.216 +
24.217 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
24.218 + if (javascript) {
24.219 + if (!strcmp(javascript, "on")) {
24.220 + OutputGUI();
24.221 + } else {
24.222 + OutputFramesetGUI();
24.223 + }
24.224 + } else {
24.225 + OutputGUI();
24.226 + }
24.227 + }
24.228 + free(filePassword);
24.229 + }
24.230 + }
24.231 + }
24.232 + free(passwordFileName);
24.233 + }
24.234 + }
24.235 + free(systemDirectory);
24.236 + }
24.237 + free(directory);
24.238 + }
24.239 + free(login);
24.240 + }
24.241 + free(javascript);
24.242 + free(password);
24.243 + free(variableValue);
24.244 + }
24.245 + free(variableName);
24.246 + }
24.247 + free(cookie);
24.248 + }
24.249 + }
24.250 + }
24.251 + return 0;
24.252 +}
24.253 +
24.254 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
24.255 +static void RedirectToLoginPanel(void) {
24.256 + printf("Location: login\r\n\r\n");
24.257 +}
24.258 +
24.259 +/* FUNCTION | OUTPUT XHTML FOR interos GRAPHICAL USER INTERFACE */
24.260 +static void OutputGUI(void) {
24.261 + BeginXHTMLOutput();
24.262 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
24.263 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
24.264 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
24.265 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\" \n");
24.266 + printf(" style=\"background: #606060\">\n");
24.267 + printf(" <!--=================================================-->\n");
24.268 + printf(" <!-- interos Standard Document Header - Markup -->\n");
24.269 + printf(" <!--=================================================-->\n");
24.270 + printf(" <!-- URIs: https://interos.com/welcome -->\n");
24.271 + printf(" <!-- https://www.interos.com/welcome -->\n");
24.272 + printf(" <!-- Title: welcome to interos -->\n");
24.273 + printf(" <!-- Author: Brent Angeline -->\n");
24.274 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
24.275 + printf(" <!--=================================================-->\n");
24.276 + printf(" <head>\n");
24.277 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
24.278 + printf(" <meta name=\"title\" content=\"welcome to interos\" />\n");
24.279 + printf(" <meta name=\"description\" content=\"internet operating system\" />\n");
24.280 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
24.281 + printf(" <meta name=\"copyright\" \n");
24.282 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
24.283 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
24.284 + printf(" <title>welcome to interos</title>\n");
24.285 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
24.286 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
24.287 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
24.288 + printf(" media=\"screen, projection\" />\n");
24.289 + printf(" <script type=\"text/javascript\" src=\"/js/welcome.js\"></script>\n");
24.290 + printf(" </head>\n");
24.291 + printf(" <body id=\"body\" style=\"background: #606060\">\n");
24.292 + printf(" <center>\n");
24.293 + printf(" <table id=\"topToolbar\" width=\"100%%\" \n");
24.294 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
24.295 + printf(" <tr>\n");
24.296 + printf(" <td width=\"72\" \n");
24.297 + printf(" height=\"72\"><center>\n");
24.298 + printf(" <a id=\"openButton\" \n");
24.299 + printf(" href=\"/interos?menu=open\" \n");
24.300 + printf(" style=\"padding: 26px 0 27px\" \n");
24.301 + printf(" target=\"_top\"><strong>open</strong></a>\n");
24.302 + printf(" </center></td>\n");
24.303 + printf(" <td><center>\n");
24.304 + printf(" <span class=\"hidden\">|</span> \n");
24.305 + printf(" </center></td>\n");
24.306 + printf(" <td width=\"72\" \n");
24.307 + printf(" height=\"72\"><center>\n");
24.308 + printf(" <a id=\"nextButton\" \n");
24.309 + printf(" href=\"/interos?menu=next\" \n");
24.310 + printf(" style=\"padding: 26px 0 27px\" \n");
24.311 + printf(" target=\"_top\"><strong>next</strong></a>\n");
24.312 + printf(" </center></td>\n");
24.313 + printf(" </tr>\n");
24.314 + printf(" </table>\n");
24.315 + printf(" <table id=\"welcomePanel\">\n");
24.316 + printf(" <thead>\n");
24.317 + printf(" <tr>\n");
24.318 + printf(" <th><center>\n");
24.319 + printf(" <h1>\n");
24.320 + printf(" welcome to interos\n");
24.321 + printf(" </h1>\n");
24.322 + printf(" </center></th>\n");
24.323 + printf(" </tr>\n");
24.324 + printf(" </thead>\n");
24.325 + printf(" <tfoot>\n");
24.326 + printf(" <tr>\n");
24.327 + printf(" <td><br /></td>\n");
24.328 + printf(" </tr>\n");
24.329 + printf(" </tfoot>\n");
24.330 + printf(" <tbody>\n");
24.331 + printf(" <tr>\n");
24.332 + printf(" <td><center>\n");
24.333 + printf(" <h2>\n");
24.334 + printf(" Getting around is simple:\n");
24.335 + printf(" </h2>\n");
24.336 + printf(" <p>\n");
24.337 + printf(" Click the <strong id=\"new\">new</strong>, \n");
24.338 + printf(" <strong id=\"open\">open</strong>, \n");
24.339 + printf(" <strong id=\"next\">next</strong>, or \n");
24.340 + printf(" <strong id=\"settings\">settings</strong> button \n");
24.341 + printf(" to bring up its menu.\n");
24.342 + printf(" </p>\n");
24.343 + printf(" <p>\n");
24.344 + printf(" Try clicking <strong id=\"try\">new</strong> to get started!\n");
24.345 + printf(" </p>\n");
24.346 + printf(" </center></td>\n");
24.347 + printf(" </tr>\n");
24.348 + printf(" </tbody>\n");
24.349 + printf(" </table>\n");
24.350 + printf(" <table id=\"bottomToolbar\" class=\"bottom\" width=\"100%%\" \n");
24.351 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
24.352 + printf(" <tr>\n");
24.353 + printf(" <td width=\"72\" \n");
24.354 + printf(" height=\"72\"><center>\n");
24.355 + printf(" <a id=\"newButton\" \n");
24.356 + printf(" href=\"/interos?menu=new\" \n");
24.357 + printf(" style=\"padding: 26px 0 27px\" \n");
24.358 + printf(" target=\"_top\"><strong>new</strong></a>\n");
24.359 + printf(" </center></td>\n");
24.360 + printf(" <td><center>\n");
24.361 + printf(" <span class=\"hidden\">|</span> \n");
24.362 + printf(" </center></td>\n");
24.363 + printf(" <td width=\"72\" \n");
24.364 + printf(" height=\"72\"><center>\n");
24.365 + printf(" <a id=\"settingsButton\" \n");
24.366 + printf(" href=\"/interos?menu=settings\" \n");
24.367 + printf(" style=\"padding: 26px 0 27px\" \n");
24.368 + printf(" target=\"_top\"><strong>settings</strong></a>\n");
24.369 + printf(" </center></td>\n");
24.370 + printf(" </tr>\n");
24.371 + printf(" </table>\n");
24.372 + printf(" </center>\n");
24.373 + printf(" </body>\n");
24.374 + FinishXHTMLOutput();
24.375 +}
24.376 +
24.377 +/* FUNCTION | OUTPUT XHTML FOR interos FRAMESET GRAPHICAL USER INTERFACE */
24.378 +static void OutputFramesetGUI(void) {
24.379 + BeginXHTMLOutput();
24.380 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
24.381 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
24.382 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
24.383 + printf(" <!--========================================================-->\n");
24.384 + printf(" <!-- interos Standard Document Header - Markup -->\n");
24.385 + printf(" <!--========================================================-->\n");
24.386 + printf(" <!-- URIs: https://interos.com/welcome -->\n");
24.387 + printf(" <!-- https://www.interos.com/welcome -->\n");
24.388 + printf(" <!-- Title: welcome to interos -->\n");
24.389 + printf(" <!-- Author: Brent Angeline -->\n");
24.390 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
24.391 + printf(" <!--========================================================-->\n");
24.392 + printf(" <head>\n");
24.393 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
24.394 + printf(" <meta name=\"title\" content=\"interos\" />\n");
24.395 + printf(" <meta name=\"description\" content=\"internet operating system\" />\n");
24.396 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
24.397 + printf(" <meta name=\"copyright\" \n");
24.398 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
24.399 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
24.400 + printf(" <title>interos</title>\n");
24.401 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
24.402 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
24.403 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
24.404 + printf(" media=\"screen, projection\" />\n");
24.405 + printf(" <script type=\"text/javascript\" src=\"/js/interos.js\"></script>\n");
24.406 + printf(" </head>\n");
24.407 + printf(" <frameset rows=\"72,*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
24.408 + printf(" <frame name=\"top\" src=\"/top\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
24.409 + printf(" <frame name=\"content\" src=\"/content\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
24.410 + printf(" <frame name=\"bottom\" src=\"/bottom\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" noresize=\"noresize\" scrolling=\"no\" />\n");
24.411 + printf(" <noframes>\n");
24.412 + printf(" <body id=\"body\">\n");
24.413 + printf(" <div id=\"interosContainer\">\n");
24.414 + printf(" <div id=\"interosContent\">\n");
24.415 + printf(" <h1>interos menu</h1>\n");
24.416 + printf(" <ol>\n");
24.417 + printf(" <li><a id=\"newLink\" href=\"/interos?menu=new\">new</a></li>\n");
24.418 + printf(" <li><a id=\"openLink\" href=\"/interos?menu=open\">open</a></li>\n");
24.419 + printf(" <li><a id=\"nextLink\" href=\"/interos?menu=next\">next</a></li>\n");
24.420 + printf(" <li><a id=\"settingsLink\" href=\"/interos?menu=settings\">settings</a></li>\n");
24.421 + printf(" </ol>\n");
24.422 + printf(" </div>\n");
24.423 + printf(" </div>\n");
24.424 + printf(" </body>\n");
24.425 + printf(" </noframes>\n");
24.426 + printf(" </frameset>\n");
24.427 + FinishXHTMLOutput();
24.428 +}
24.429 +
24.430 +/* FUNCTION | BEGIN XHTML OUTPUT */
24.431 +static void BeginXHTMLOutput(void) {
24.432 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
24.433 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
24.434 +}
24.435 +
24.436 +/* FUNCTION | FINISH XHTML OUTPUT */
24.437 +static void FinishXHTMLOutput(void) {
24.438 + printf(" <!--=====================================================================-->\n");
24.439 + printf(" <!-- Copyright and Trademark Statement -->\n");
24.440 + printf(" <!--=====================================================================-->\n");
24.441 + printf(" <!-- -->\n");
24.442 + printf(" <!-- All original textual and graphical site content: -->\n");
24.443 + printf(" <!-- -->\n");
24.444 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
24.445 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
24.446 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
24.447 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
24.448 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
24.449 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
24.450 + printf(" <!-- are the properties of their respective authors. All software -->\n");
24.451 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
24.452 + printf(" <!-- -->\n");
24.453 + printf(" <!--=====================================================================-->\n");
24.454 + printf(" <!-- e-mail: info@interos.com -->\n");
24.455 + printf(" <!--=====================================================================-->\n");
24.456 + printf("</html>");
24.457 +}
24.458 +
24.459 +/***********************************************************************/
24.460 +/* Copyright and Trademark Statement */
24.461 +/***********************************************************************/
24.462 +/* */
24.463 +/* All original textual and graphical site content: */
24.464 +/* */
24.465 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
24.466 +/* reserved. Reproduction in whole or in part without written */
24.467 +/* permission is prohibited. interos and the interos logos are */
24.468 +/* trademarks of Brent Angeline and interos LLC. All other company, */
24.469 +/* product, and service names mentioned herein may be the properties */
24.470 +/* of their respective owners. Comments in the interos.org forums */
24.471 +/* are the properties of their respective authors. All software */
24.472 +/* developed in the forums is open source and belongs to everyone. */
24.473 +/* */
24.474 +/***********************************************************************/
24.475 +/* e-mail: info@interos.com */
24.476 +/***********************************************************************/
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
25.2 +++ b/c/xml/files_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
25.3 @@ -0,0 +1,199 @@
25.4 +#include "fcgi_stdio.h"
25.5 +#include "interos.h"
25.6 +#include <stdlib.h>
25.7 +#include <string.h>
25.8 +#include <dirent.h>
25.9 +#include <langinfo.h>
25.10 +#include <sys/stat.h>
25.11 +#include <unistd.h>
25.12 +
25.13 +/*#include <iconv.h> //For converting to UTF-8
25.14 +//#include <locale.h> */
25.15 +
25.16 +/**
25.17 + The "files" CGI program. Lists the contents of a directory, without recursing any further, and
25.18 + sends that list in XML format. HTTP(S) requests minimally must contain the Cookie data and
25.19 + POST data of the form
25.20 + path=path/to/folder
25.21 + with optional leading and trailing forward slashes, unless the path is to the user's root directory,
25.22 + in which case it is simply
25.23 + path=/
25.24 +
25.25 + If the username is included in the path, which is useful in cases where a user needs to access another
25.26 + user's public files, the upath variable can be used instead, as such:
25.27 + upath=username/path/to/folder
25.28 + Again, with optional leading and traling slashes, but the username must be in the beginning.
25.29 +
25.30 + XML data will be of the following form:
25.31 + <?xml version=\"1.0\" encoding=\"UTF-8\"?>
25.32 + <directoryList>
25.33 + <sub>
25.34 + <name>%s</name>
25.35 + <size>%lld</size>
25.36 + <lastModified>%l</lastModified>
25.37 + <lastAccessed>%l</lastAccessed>
25.38 + </sub>
25.39 + <file>
25.40 + <name>%s</name>
25.41 + <size>%lld</size>
25.42 + <lastModified>%l</lastModified>
25.43 + <lastAccessed>%l</lastAccessed>
25.44 + </file>
25.45 + </directoryList>
25.46 +
25.47 + The directoryList tag is the root tag. It may contain zero or more sub tags and/or file tags in no
25.48 + particular order.
25.49 +
25.50 + TODO: Lots of debug work
25.51 + Unicode characters probably won't work. You should experiment by testing with some files that have unicode chars like \uFE25
25.52 + Untested
25.53 + Outputerrorxml, getData and possibly other stuff should be in separate c/h files.
25.54 +*/
25.55 +
25.56 +void initialize(){
25.57 +}
25.58 +
25.59 +/* Function which generates the XML for the input
25.60 +* path directory
25.61 +*/
25.62 +void printFileXml(char *path, char *username){
25.63 +
25.64 + DIR *dp;
25.65 + struct stat statbuf;
25.66 + struct dirent *dirp;
25.67 +
25.68 + size_t startPathSize = (3+strlen(DIRECTORY)+strlen(username)+strlen(path));//includes two '/' and a '\0'
25.69 + char *startPath = (char*)(malloc(sizeof(char)*startPathSize));
25.70 + char *fullPath = startPath;
25.71 +
25.72 + if(path[0] == '\0'){//The users's home/root directory
25.73 + //printf("DEBG883: GOT HERE\n");
25.74 + sprintf(startPath,"%s%s/",DIRECTORY,username);
25.75 + startPathSize = (2+strlen(DIRECTORY)+strlen(username));
25.76 + }
25.77 + else
25.78 + sprintf(startPath,"%s%s/%s/",DIRECTORY,username,path);
25.79 +
25.80 + // Open given input directory
25.81 + //DEBG: DIRECTORY or SYSTEM_DIRECTORY + path + username for the full path on the server
25.82 + if((dp = opendir(startPath)) == NULL)
25.83 + {
25.84 + // Error Opening input directory
25.85 + //DEBG: Should be tested with some unicode characters like \uFE11.
25.86 + outputErrorXML("No such directory");
25.87 + return;
25.88 + }
25.89 + printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
25.90 + printf("<DirectoryList path=\"/%s\">\n",path);
25.91 +
25.92 + // iterate through the directory
25.93 +
25.94 + size_t lastResize = 0;
25.95 + while((dirp = readdir(dp)) != NULL)
25.96 + {
25.97 + if( strlen(dirp->d_name) >= lastResize){//It's easier, but far less efficient, to simply use sprintf everywhere and copy the data in each iteration.
25.98 + lastResize = 3*strlen(dirp->d_name) + 40;
25.99 + fullPath = (char*)(realloc(startPath, sizeof(char)*(lastResize+startPathSize)));
25.100 + if(fullPath == NULL){
25.101 + fullPath = startPath;
25.102 + free(dirp);
25.103 + printf("<errorCode error=\"true\"><description>%s</description></errorCode>\n","Mem reallocation error");
25.104 + break;
25.105 + }
25.106 + startPath = fullPath;
25.107 + }
25.108 +
25.109 + int x;
25.110 + for(x = 0;dirp->d_name[x] != '\0';++x){
25.111 + fullPath[x+startPathSize-1] = dirp->d_name[x];
25.112 + }
25.113 + fullPath[x+startPathSize-1] = '\0';
25.114 +
25.115 +
25.116 + int statError = stat(fullPath,&statbuf);
25.117 +
25.118 + if(statError < 0)//DEBG: Come up with a better way of doing this.
25.119 + {
25.120 + //printf("<directory path =\"%s\" empty=\"true\">\n",path);
25.121 + printf("<errorCode error=\"true\"><description>%s%s</description></errorCode>\n","Error getting attributes for ",dirp->d_name);
25.122 + //printf("</directory>");
25.123 +
25.124 + break; //DEBG
25.125 + }
25.126 +
25.127 + if(S_ISDIR(statbuf.st_mode)) // If file type is a directory
25.128 + {
25.129 + if(strcmp(dirp->d_name,".") != 0 && strcmp(dirp->d_name,"..") != 0)
25.130 + {
25.131 + printf("<sub>\n");//These tags may need to be changed
25.132 + printf("\t<name>%s</name>\n",dirp->d_name);
25.133 + printf("\t<size>%ld</size>\n",(long)(statbuf.st_size));//DEBG: double check these casts
25.134 + printf("\t<lastModified>%ld</lastModified>\n",(long)(statbuf.st_mtime));
25.135 + printf("\t<lastAccessed>%ld</lastAccessed>\n",(long)(statbuf.st_atime));
25.136 + printf("</sub>\n");
25.137 +
25.138 + }
25.139 + }
25.140 + else // If file type isnt directory
25.141 + {
25.142 + printf("<file>\n");
25.143 + printf("\t<name>%s</name>\n",dirp->d_name);
25.144 + printf("\t<size>%ld</size>\n",(long)(statbuf.st_size));
25.145 + printf("\t<lastModified>%ld</lastModified>\n",(long)statbuf.st_mtime);
25.146 + printf("\t<lastAccessed>%ld</lastAccessed>\n",(long)statbuf.st_atime);
25.147 + printf("</file>\n");
25.148 +
25.149 + }
25.150 +
25.151 + }
25.152 + printf("</DirectoryList>");
25.153 + closedir(dp);//Also frees the pointer passed to it. dirp does not need to be freed because it is a pointer to a stream
25.154 + free(fullPath);//also frees startPath
25.155 +}
25.156 +
25.157 +int main(int argc,char *argv[]){
25.158 + initialize();
25.159 +
25.160 + while(FCGI_Accept() >= 0){
25.161 + printf("Content-type: text/xml\r\n"
25.162 + "\r\n");//This is added to the HTTP headers the server automatically outputs. TODO: add encoding to headers
25.163 +
25.164 + char *username,*postdata;
25.165 + POSTDATA *data;
25.166 +
25.167 +
25.168 + if( !(username = validateCookie()) ||
25.169 + !(data = getPostData()) ||
25.170 + !(data->postData)){
25.171 + outputErrorXML("GOD DANGIT BOBBEH I TOLD YOU WHAT WOULD HAPPEN IF YOU KEEP WATCHIN THAT GOD DANG MTV!");//DEBG: change this
25.172 + return 0;
25.173 + }
25.174 + postdata = data->postData;//Interpreting it as a string
25.175 + postdata[data->length] = '\0';//This will work, since getPostData() allocates length+1 bytes
25.176 +
25.177 + //Format postdata to represent the path without any leading or trailing /
25.178 + int i,j;
25.179 + for(i=0;postdata[i] != '\0';++i){
25.180 + if(postdata[i] == '='){
25.181 + if(postdata[i+1] == '/')
25.182 + ++i;
25.183 + ++i;
25.184 + break;
25.185 + }
25.186 + }
25.187 + for(j=0;postdata[i] != '\0';++i,++j){
25.188 + //printf("DEBG8: %c\n",postdata[i]);
25.189 + postdata[j] = postdata[i];
25.190 + }
25.191 + postdata[j] = '\0';
25.192 + if(postdata[j-1] == '/')
25.193 + postdata[j-1] = '\0';
25.194 + printFileXml(postdata, username);
25.195 + free(postdata);
25.196 + free(username);
25.197 + free(data);
25.198 + printf("\r\n");//DOUBLE CHECK
25.199 + }
25.200 + return 0;
25.201 +
25.202 +}
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
26.2 +++ b/c/xml/interos.h Sat May 01 16:19:36 2010 -0400
26.3 @@ -0,0 +1,1 @@
26.4 +/srv/master/src/type/c/interos.h
26.5 \ No newline at end of file
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
27.2 +++ b/c/xml/persist_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
27.3 @@ -0,0 +1,20 @@
27.4 +
27.5 +
27.6 +/***********************************************************************/
27.7 +/* Copyright and Trademark Statement */
27.8 +/***********************************************************************/
27.9 +/* */
27.10 +/* All original textual and graphical site content: */
27.11 +/* */
27.12 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
27.13 +/* reserved. Reproduction in whole or in part without written */
27.14 +/* permission is prohibited. interos and the interos logos are */
27.15 +/* trademarks of Brent Angeline and interos LLC. All other company, */
27.16 +/* product, and service names mentioned herein may be the properties */
27.17 +/* of their respective owners. Comments in the interos.org forums */
27.18 +/* are the properties of their respective authors. All software */
27.19 +/* developed in the forums is open source and belongs to everyone. */
27.20 +/* */
27.21 +/***********************************************************************/
27.22 +/* e-mail: info@interos.com */
27.23 +/***********************************************************************/
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
28.2 +++ b/c/xml/template_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
28.3 @@ -0,0 +1,320 @@
28.4 +/*************************************************/
28.5 +/* interos Standard Document Header - CGI in C */
28.6 +/*************************************************/
28.7 +/* URIs: https://interos.com/xml/_ */
28.8 +/* https://www.interos.com/xml/_ */
28.9 +/* Source: xml/_.c */
28.10 +/* Description: FastCGI for interos _ XML */
28.11 +/* Author: Brent Angeline */
28.12 +/* CGI: FastCGI in ISO/ANSI C */
28.13 +/*************************************************/
28.14 +
28.15 +/* PREPROCESSOR DIRECTIVES */
28.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
28.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
28.18 +#include <ctype.h> /* tolower() */
28.19 +#include <stdlib.h> /* free(), getenv(), malloc() */
28.20 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
28.21 +#include <unistd.h> /* F_OK, access() */
28.22 +
28.23 +/* FUNCTION PROTOTYPE DECLARATION */
28.24 +static void OutputErrorXML(const char* errorMessage);
28.25 +
28.26 +/* BEGIN MAIN PROGRAM */
28.27 +int main(void) {
28.28 +
28.29 + /* BEGIN FASTCGI */
28.30 + while (FCGI_Accept() >= 0) {
28.31 +
28.32 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
28.33 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
28.34 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
28.35 + OutputErrorXML("No cookie data was received by the web server.");
28.36 +
28.37 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
28.38 + } else {
28.39 +
28.40 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
28.41 + char *cookie;
28.42 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
28.43 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
28.44 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > OUTPUT ERROR XML **/
28.45 + OutputErrorXML("The length of the cookie data string received by the web server was indicated to be less than 1 byte.");
28.46 + } else {
28.47 + char *variableName;
28.48 + if (!(variableName = malloc(cookieLength + 1))) {
28.49 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > OUTPUT ERROR XML **/
28.50 + OutputErrorXML("Sufficient memory could not be allocated on the server for cookie variable names.");
28.51 + } else {
28.52 + char *variableValue;
28.53 + if (!(variableValue = malloc(cookieLength + 1))) {
28.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > OUTPUT ERROR XML **/
28.55 + OutputErrorXML("Sufficient memory could not be allocated on the server for cookie variable values.");
28.56 +
28.57 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
28.58 + } else {
28.59 +
28.60 + /* PROCESS COOKIE DATA */
28.61 + char *login, *password;
28.62 + INT i, c;
28.63 + login = password = NULL;
28.64 + c = 0;
28.65 + strcpy(cookie, getenv("HTTP_COOKIE"));
28.66 + while ((c < cookieLength) && (cookie[c] != '\0')) {
28.67 + i = 0;
28.68 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
28.69 + variableName[i] = cookie[c];
28.70 + ++c;
28.71 + ++i;
28.72 + }
28.73 + variableName[i] = '\0';
28.74 + ++c;
28.75 + i = 0;
28.76 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
28.77 + variableValue[i] = cookie[c];
28.78 + ++c;
28.79 + ++i;
28.80 + }
28.81 + variableValue[i] = '\0';
28.82 + ++c;
28.83 + while ((c < cookieLength) && (cookie[c] == ' ')) {
28.84 + ++c;
28.85 + }
28.86 + if (!login && !strcmp(variableName, "login")) {
28.87 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
28.88 + strcpy(login, variableValue);
28.89 + }
28.90 + } else if (!password && !strcmp(variableName, "password")) {
28.91 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
28.92 + strcpy(password, variableValue);
28.93 + }
28.94 + }
28.95 + }
28.96 +
28.97 + /* IF LOGIN VALUE IS MISSING... */
28.98 + if (!login) {
28.99 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT ERROR XML **/
28.100 + OutputErrorXML("No login value was received.");
28.101 +
28.102 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
28.103 + } else {
28.104 +
28.105 + /* VERIFY LOGIN AND PASSWORD */
28.106 + char *directory;
28.107 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
28.108 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT ERROR XML **/
28.109 + OutputErrorXML("Sufficient memory could not be allocated on the server for the user's home directory name.");
28.110 + } else {
28.111 + char *systemDirectory;
28.112 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
28.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT ERROR XML **/
28.114 + OutputErrorXML("Sufficient memory could not be allocated on the server for the user's system directory name.");
28.115 + } else {
28.116 + strcpy(directory, DIRECTORY);
28.117 + strcat(directory, login);
28.118 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
28.119 + strcat(systemDirectory, login);
28.120 +
28.121 + /* IF DIRECTORY CAN'T BE ACCESSED... */
28.122 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
28.123 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT ERROR XML **/
28.124 + OutputErrorXML("The user's home directory on the server could not be accessed.");
28.125 +
28.126 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
28.127 + } else {
28.128 +
28.129 + /* ATTEMPT TO ACCESS PASSWORD FILE */
28.130 + char *passwordFileName;
28.131 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
28.132 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT ERROR XML **/
28.133 + OutputErrorXML("Sufficient memory could not be allocated on the server for the name of the user's password file.");
28.134 + } else {
28.135 + strcpy(passwordFileName, systemDirectory);
28.136 + strcat(passwordFileName, PASSWORD_FILE_NAME);
28.137 +
28.138 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
28.139 + if (access(passwordFileName, F_OK)) {
28.140 + /** ERROR | CANNOT ACCESS FILE > OUTPUT ERROR XML **/
28.141 + OutputErrorXML("The user's password file on the server cannot be accessed.");
28.142 +
28.143 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
28.144 + } else {
28.145 +
28.146 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
28.147 + FILE *passwordFile;
28.148 +
28.149 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
28.150 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
28.151 + /** ERROR | CANNOT READ FILE > OUTPUT ERROR XML **/
28.152 + OutputErrorXML("The user's password file on the server cannot be opened for reading.");
28.153 +
28.154 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
28.155 + } else {
28.156 + char *filePassword;
28.157 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
28.158 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT ERROR XML **/
28.159 + OutputErrorXML("Sufficient memory could not be allocated on the server for reading the user's password.");
28.160 + } else {
28.161 + char c;
28.162 + i = 0;
28.163 +
28.164 + /* READ PASSWORD FROM PASSWORD FILE */
28.165 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
28.166 + filePassword[i] = c;
28.167 + ++i;
28.168 + }
28.169 + filePassword[i] = '\0';
28.170 + fclose(passwordFile);
28.171 +
28.172 + /* IF PASSWORD FAILS COMPARISON... */
28.173 + if (strcmp(filePassword, password)) {
28.174 + /** ERROR | PASSWORD FAILED > OUTPUT ERROR XML **/
28.175 + OutputErrorXML("The password provided failed comparison with the password stored on the server.");
28.176 +
28.177 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
28.178 + } else {
28.179 +
28.180 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
28.181 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
28.182 + /** ERROR | POST DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
28.183 + OutputErrorXML("No post data was received by the web server.");
28.184 +
28.185 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
28.186 + } else {
28.187 +
28.188 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
28.189 + char *post;
28.190 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
28.191 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
28.192 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR POST DATA! > OUTPUT ERROR XML **/
28.193 + OutputErrorXML("The length of the post data string received by the web server was indicated to be less than 1 byte.");
28.194 + } else {
28.195 + free(variableName);
28.196 + if (!(variableName = malloc(postLength + 1))) {
28.197 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE NAME > OUTPUT ERROR XML **/
28.198 + OutputErrorXML("Sufficient memory could not be allocated on the server for post variable names.");
28.199 + } else {
28.200 + free(variableValue);
28.201 + if (!(variableValue = malloc(postLength + 1))) {
28.202 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE VALUE > OUTPUT ERROR XML **/
28.203 + OutputErrorXML("Sufficient memory could not be allocated on the server for post variable values.");
28.204 +
28.205 + /* IF SUFFICIENT MEMORY FOR POST VARIABLES... */
28.206 + } else {
28.207 +
28.208 + /* PROCESS POST DATA */
28.209 + char *postVariableOne, *postVariableTwo;
28.210 + INT p;
28.211 + postVariableOne = postVariableTwo = NULL;
28.212 + p = i = 0;
28.213 + fread(post, postLength, 1, stdin);
28.214 + post[postLength] = '\0';
28.215 + while ((p < postLength) && (post[p] != '\0')) {
28.216 + i = 0;
28.217 + while ((p < postLength) && (post[p] != '=') && (post[p] != '\0')) {
28.218 + variableName[i] = post[p];
28.219 + ++p;
28.220 + ++i;
28.221 + }
28.222 + variableName[i] = '\0';
28.223 + ++p;
28.224 + i = 0;
28.225 + while ((p < postLength) && (post[p] != '&') && (post[p] != '\0')) {
28.226 + variableValue[i] = post[p];
28.227 + ++p;
28.228 + ++i;
28.229 + }
28.230 + variableValue[i] = '\0';
28.231 + if (post[p] != '\0') {
28.232 + ++p;
28.233 + }
28.234 + if (!postVariableOne && !strcmp(variableName, "postVariableOne")) {
28.235 + if ((postVariableOne = malloc(strlen(variableValue) + 1)) != 0) {
28.236 + strcpy(postVariableOne, variableValue);
28.237 + for (i = 0; i < strlen(login); ++i) {
28.238 + postVariableOne[i] = tolower(postVariableOne[i]);
28.239 + }
28.240 + }
28.241 + } else if (!postVariableTwo && !strcmp(variableName, "postVariableTwo")) {
28.242 + if ((postVariableTwo = malloc(strlen(variableValue) + 1)) != 0) {
28.243 + strcpy(postVariableTwo, variableValue);
28.244 + }
28.245 + }
28.246 + }
28.247 + free(variableValue);
28.248 + variableValue = NULL;
28.249 +
28.250 + /* new code begins here */
28.251 +
28.252 + printf("Content-Type: text/xml\r\n\r\n");
28.253 + printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
28.254 + printf("<_container_>\n");
28.255 + printf(" <errorCode error=\"false\">\n");
28.256 + printf(" <description>none</description>\n");
28.257 + printf(" </errorCode>\n");
28.258 + printf(" <_confirmation_>_confirmationData_</_confirmation_>\n");
28.259 + printf("</_container_>");
28.260 +
28.261 + free(postVariableTwo);
28.262 + free(postVariableOne);
28.263 + }
28.264 + free(variableName);
28.265 + }
28.266 + free(post);
28.267 + }
28.268 + }
28.269 + }
28.270 + free(filePassword);
28.271 + }
28.272 + }
28.273 + }
28.274 + free(passwordFileName);
28.275 + }
28.276 + }
28.277 + free(systemDirectory);
28.278 + }
28.279 + free(directory);
28.280 + }
28.281 + free(login);
28.282 + }
28.283 + free(password);
28.284 + free(variableValue);
28.285 + }
28.286 + free(variableName);
28.287 + }
28.288 + free(cookie);
28.289 + }
28.290 + }
28.291 + }
28.292 + return 0;
28.293 +}
28.294 +
28.295 +/* FUNCTION | OUTPUT ERROR XML */
28.296 +static void OutputErrorXML(const char *errorMessage) {
28.297 + printf("Content-Type: text/xml\r\n\r\n");
28.298 + printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
28.299 + printf("<_container_>\n");
28.300 + printf(" <errorCode error=\"true\">\n");
28.301 + printf(" <description>%s</description>\n", errorMessage);
28.302 + printf(" </errorCode>\n");
28.303 + printf("</_container_>");
28.304 +}
28.305 +
28.306 +/***********************************************************************/
28.307 +/* Copyright and Trademark Statement */
28.308 +/***********************************************************************/
28.309 +/* */
28.310 +/* All original textual and graphical site content: */
28.311 +/* */
28.312 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
28.313 +/* reserved. Reproduction in whole or in part without written */
28.314 +/* permission is prohibited. interos and the interos logos are */
28.315 +/* trademarks of Brent Angeline and interos LLC. All other company, */
28.316 +/* product, and service names mentioned herein may be the properties */
28.317 +/* of their respective owners. Comments in the interos.org forums */
28.318 +/* are the properties of their respective authors. All software */
28.319 +/* developed in the forums is open source and belongs to everyone. */
28.320 +/* */
28.321 +/***********************************************************************/
28.322 +/* e-mail: info@interos.com */
28.323 +/***********************************************************************/
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
29.2 +++ b/c/xml/user_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
29.3 @@ -0,0 +1,237 @@
29.4 +/****************************************************/
29.5 +/* interos Standard Document Header - CGI in C */
29.6 +/****************************************************/
29.7 +/* URIs: https://interos.com/xml/user */
29.8 +/* https://www.interos.com/xml/user */
29.9 +/* Source: xml/user.c */
29.10 +/* Description: FastCGI for interos user XML */
29.11 +/* Author: Brent Angeline */
29.12 +/* CGI: FastCGI in ISO/ANSI C */
29.13 +/****************************************************/
29.14 +
29.15 +/* PREPROCESSOR DIRECTIVES */
29.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
29.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
29.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
29.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
29.20 +#include <unistd.h> /* F_OK, access() */
29.21 +
29.22 +/* FUNCTION PROTOTYPE DECLARATION */
29.23 +static void OutputErrorXML(const char* errorMessage);
29.24 +
29.25 +/* BEGIN MAIN PROGRAM */
29.26 +int main(void) {
29.27 +
29.28 + /* BEGIN FASTCGI */
29.29 + while (FCGI_Accept() >= 0) {
29.30 +
29.31 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
29.32 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
29.33 + /** ERROR | COOKIE DATA DOES NOT EXIST > OUTPUT ERROR XML **/
29.34 + OutputErrorXML("No cookie data was received by the web server.");
29.35 +
29.36 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
29.37 + } else {
29.38 +
29.39 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
29.40 + char *cookie;
29.41 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
29.42 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
29.43 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > OUTPUT ERROR XML **/
29.44 + OutputErrorXML("The length of the cookie data string received by the web server was indicated to be less than 1 byte.");
29.45 + } else {
29.46 + char *variableName;
29.47 + if (!(variableName = malloc(cookieLength + 1))) {
29.48 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > OUTPUT ERROR XML **/
29.49 + OutputErrorXML("Sufficient memory could not be allocated on the server for cookie variable names.");
29.50 + } else {
29.51 + char *variableValue;
29.52 + if (!(variableValue = malloc(cookieLength + 1))) {
29.53 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > OUTPUT ERROR XML **/
29.54 + OutputErrorXML("Sufficient memory could not be allocated on the server for cookie variable values.");
29.55 +
29.56 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
29.57 + } else {
29.58 +
29.59 + /* PROCESS COOKIE DATA */
29.60 + char *login, *password;
29.61 + INT i, c;
29.62 + login = password = NULL;
29.63 + c = 0;
29.64 + strcpy(cookie, getenv("HTTP_COOKIE"));
29.65 + while ((c < cookieLength) && (cookie[c] != '\0')) {
29.66 + i = 0;
29.67 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
29.68 + variableName[i] = cookie[c];
29.69 + ++c;
29.70 + ++i;
29.71 + }
29.72 + variableName[i] = '\0';
29.73 + ++c;
29.74 + i = 0;
29.75 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
29.76 + variableValue[i] = cookie[c];
29.77 + ++c;
29.78 + ++i;
29.79 + }
29.80 + variableValue[i] = '\0';
29.81 + ++c;
29.82 + while ((c < cookieLength) && (cookie[c] == ' ')) {
29.83 + ++c;
29.84 + }
29.85 + if (!login && !strcmp(variableName, "login")) {
29.86 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
29.87 + strcpy(login, variableValue);
29.88 + }
29.89 + } else if (!password && !strcmp(variableName, "password")) {
29.90 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
29.91 + strcpy(password, variableValue);
29.92 + }
29.93 + }
29.94 + }
29.95 +
29.96 + /* IF LOGIN VALUE IS MISSING... */
29.97 + if (!login) {
29.98 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT ERROR XML **/
29.99 + OutputErrorXML("No login value was received.");
29.100 +
29.101 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
29.102 + } else {
29.103 +
29.104 + /* VERIFY LOGIN AND PASSWORD */
29.105 + char *directory;
29.106 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
29.107 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT ERROR XML **/
29.108 + OutputErrorXML("Sufficient memory could not be allocated on the server for the user's home directory name.");
29.109 + } else {
29.110 + char *systemDirectory;
29.111 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
29.112 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT ERROR XML **/
29.113 + OutputErrorXML("Sufficient memory could not be allocated on the server for the user's system directory name.");
29.114 + } else {
29.115 + strcpy(directory, DIRECTORY);
29.116 + strcat(directory, login);
29.117 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
29.118 + strcat(systemDirectory, login);
29.119 +
29.120 + /* IF DIRECTORY CAN'T BE ACCESSED... */
29.121 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
29.122 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT ERROR XML **/
29.123 + OutputErrorXML("The user's home directory on the server could not be accessed.");
29.124 +
29.125 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
29.126 + } else {
29.127 +
29.128 + /* ATTEMPT TO ACCESS PASSWORD FILE */
29.129 + char *passwordFileName;
29.130 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
29.131 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT ERROR XML **/
29.132 + OutputErrorXML("Sufficient memory could not be allocated on the server for the name of the user's password file.");
29.133 + } else {
29.134 + strcpy(passwordFileName, systemDirectory);
29.135 + strcat(passwordFileName, PASSWORD_FILE_NAME);
29.136 +
29.137 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
29.138 + if (access(passwordFileName, F_OK)) {
29.139 + /** ERROR | CANNOT ACCESS FILE > OUTPUT ERROR XML **/
29.140 + OutputErrorXML("The user's password file on the server cannot be accessed.");
29.141 +
29.142 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
29.143 + } else {
29.144 +
29.145 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
29.146 + FILE *passwordFile;
29.147 +
29.148 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
29.149 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
29.150 + /** ERROR | CANNOT READ FILE > OUTPUT ERROR XML **/
29.151 + OutputErrorXML("The user's password file on the server cannot be opened for reading.");
29.152 +
29.153 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
29.154 + } else {
29.155 + char *filePassword;
29.156 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
29.157 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT ERROR XML **/
29.158 + OutputErrorXML("Sufficient memory could not be allocated on the server for reading the user's password.");
29.159 + } else {
29.160 + char c;
29.161 + i = 0;
29.162 +
29.163 + /* READ PASSWORD FROM PASSWORD FILE */
29.164 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
29.165 + filePassword[i] = c;
29.166 + ++i;
29.167 + }
29.168 + filePassword[i] = '\0';
29.169 + fclose(passwordFile);
29.170 +
29.171 + /* IF PASSWORD FAILS COMPARISON... */
29.172 + if (strcmp(filePassword, password)) {
29.173 + /** ERROR | PASSWORD FAILED > OUTPUT ERROR XML **/
29.174 + OutputErrorXML("The password provided failed comparison with the password stored on the server.");
29.175 +
29.176 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
29.177 + } else {
29.178 + printf("Content-Type: text/xml\r\n\r\n"
29.179 + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
29.180 + "<user>\n"
29.181 + " <errorCode error=\"false\">\n"
29.182 + " <description>none</description>\n"
29.183 + " </errorCode>\n"
29.184 + " <userName>%s</userName>\n"
29.185 + "</user>", login);
29.186 + }
29.187 + free(filePassword);
29.188 + }
29.189 + }
29.190 + }
29.191 + free(passwordFileName);
29.192 + }
29.193 + }
29.194 + free(systemDirectory);
29.195 + }
29.196 + free(directory);
29.197 + }
29.198 + free(login);
29.199 + }
29.200 + free(password);
29.201 + free(variableValue);
29.202 + }
29.203 + free(variableName);
29.204 + }
29.205 + free(cookie);
29.206 + }
29.207 + }
29.208 + }
29.209 + return 0;
29.210 +}
29.211 +
29.212 +/* FUNCTION | OUTPUT ERROR XML */
29.213 +static void OutputErrorXML(const char *errorMessage) {
29.214 + printf("Content-Type: text/xml\r\n\r\n"
29.215 + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
29.216 + "<user>\n"
29.217 + " <errorCode error=\"true\">\n"
29.218 + " <description>%s</description>\n"
29.219 + " </errorCode>\n"
29.220 + "</user>", errorMessage);
29.221 +}
29.222 +
29.223 +/***********************************************************************/
29.224 +/* Copyright and Trademark Statement */
29.225 +/***********************************************************************/
29.226 +/* */
29.227 +/* All original textual and graphical site content: */
29.228 +/* */
29.229 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
29.230 +/* reserved. Reproduction in whole or in part without written */
29.231 +/* permission is prohibited. interos and the interos logos are */
29.232 +/* trademarks of Brent Angeline and interos LLC. All other company, */
29.233 +/* product, and service names mentioned herein may be the properties */
29.234 +/* of their respective owners. Comments in the interos.org forums */
29.235 +/* are the properties of their respective authors. All software */
29.236 +/* developed in the forums is open source and belongs to everyone. */
29.237 +/* */
29.238 +/***********************************************************************/
29.239 +/* e-mail: info@interos.com */
29.240 +/***********************************************************************/
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
30.2 +++ b/conf/httpd.conf Sat May 01 16:19:36 2010 -0400
30.3 @@ -0,0 +1,2055 @@
30.4 +ServerType standalone
30.5 +
30.6 +ServerRoot "/usr/local"
30.7 +
30.8 +PidFile /var/run/httpd.pid
30.9 +ScoreBoardFile /var/run/httpd.scoreboard
30.10 +
30.11 +ResourceConfig /dev/null
30.12 +AccessConfig /dev/null
30.13 +
30.14 +Timeout 300
30.15 +KeepAlive On
30.16 +MaxKeepAliveRequests 100
30.17 +KeepAliveTimeout 15
30.18 +
30.19 +MinSpareServers 5
30.20 +MaxSpareServers 10
30.21 +
30.22 +StartServers 5
30.23 +MaxClients 150
30.24 +MaxRequestsPerChild 0
30.25 +
30.26 +LoadModule mmap_static_module libexec/apache/mod_mmap_static.so
30.27 +LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so
30.28 +LoadModule env_module libexec/apache/mod_env.so
30.29 +LoadModule define_module libexec/apache/mod_define.so
30.30 +LoadModule config_log_module libexec/apache/mod_log_config.so
30.31 +LoadModule mime_magic_module libexec/apache/mod_mime_magic.so
30.32 +LoadModule mime_module libexec/apache/mod_mime.so
30.33 +LoadModule negotiation_module libexec/apache/mod_negotiation.so
30.34 +LoadModule status_module libexec/apache/mod_status.so
30.35 +LoadModule info_module libexec/apache/mod_info.so
30.36 +LoadModule includes_module libexec/apache/mod_include.so
30.37 +LoadModule autoindex_module libexec/apache/mod_autoindex.so
30.38 +LoadModule dir_module libexec/apache/mod_dir.so
30.39 +LoadModule cgi_module libexec/apache/mod_cgi.so
30.40 +LoadModule asis_module libexec/apache/mod_asis.so
30.41 +LoadModule imap_module libexec/apache/mod_imap.so
30.42 +LoadModule action_module libexec/apache/mod_actions.so
30.43 +LoadModule speling_module libexec/apache/mod_speling.so
30.44 +LoadModule userdir_module libexec/apache/mod_userdir.so
30.45 +LoadModule alias_module libexec/apache/mod_alias.so
30.46 +LoadModule rewrite_module libexec/apache/mod_rewrite.so
30.47 +LoadModule access_module libexec/apache/mod_access.so
30.48 +LoadModule auth_module libexec/apache/mod_auth.so
30.49 +LoadModule anon_auth_module libexec/apache/mod_auth_anon.so
30.50 +LoadModule db_auth_module libexec/apache/mod_auth_db.so
30.51 +LoadModule digest_module libexec/apache/mod_digest.so
30.52 +LoadModule proxy_module libexec/apache/libproxy.so
30.53 +LoadModule cern_meta_module libexec/apache/mod_cern_meta.so
30.54 +LoadModule expires_module libexec/apache/mod_expires.so
30.55 +LoadModule headers_module libexec/apache/mod_headers.so
30.56 +LoadModule usertrack_module libexec/apache/mod_usertrack.so
30.57 +LoadModule log_forensic_module libexec/apache/mod_log_forensic.so
30.58 +LoadModule unique_id_module libexec/apache/mod_unique_id.so
30.59 +LoadModule setenvif_module libexec/apache/mod_setenvif.so
30.60 +LoadModule php5_module libexec/apache/libphp5.so
30.61 +LoadModule fastcgi_module libexec/apache/mod_fastcgi.so
30.62 +
30.63 +<IfDefine SSL>
30.64 + LoadModule ssl_module libexec/apache/libssl.so
30.65 +</IfDefine>
30.66 +LoadModule gzip_module libexec/apache/mod_gzip.so
30.67 +
30.68 +ClearModuleList
30.69 +AddModule mod_mmap_static.c
30.70 +AddModule mod_vhost_alias.c
30.71 +AddModule mod_env.c
30.72 +AddModule mod_define.c
30.73 +AddModule mod_log_config.c
30.74 +AddModule mod_mime_magic.c
30.75 +AddModule mod_mime.c
30.76 +AddModule mod_negotiation.c
30.77 +AddModule mod_status.c
30.78 +AddModule mod_info.c
30.79 +AddModule mod_include.c
30.80 +AddModule mod_autoindex.c
30.81 +AddModule mod_dir.c
30.82 +AddModule mod_cgi.c
30.83 +AddModule mod_asis.c
30.84 +AddModule mod_imap.c
30.85 +AddModule mod_actions.c
30.86 +AddModule mod_speling.c
30.87 +AddModule mod_userdir.c
30.88 +AddModule mod_alias.c
30.89 +AddModule mod_rewrite.c
30.90 +AddModule mod_access.c
30.91 +AddModule mod_auth.c
30.92 +AddModule mod_auth_anon.c
30.93 +AddModule mod_auth_db.c
30.94 +AddModule mod_digest.c
30.95 +AddModule mod_proxy.c
30.96 +AddModule mod_cern_meta.c
30.97 +AddModule mod_expires.c
30.98 +AddModule mod_headers.c
30.99 +AddModule mod_usertrack.c
30.100 +AddModule mod_log_forensic.c
30.101 +AddModule mod_unique_id.c
30.102 +AddModule mod_so.c
30.103 +AddModule mod_setenvif.c
30.104 +AddModule mod_php5.c
30.105 +AddModule mod_fastcgi.c
30.106 +
30.107 +<IfDefine SSL>
30.108 + AddModule mod_ssl.c
30.109 +</IfDefine>
30.110 +AddModule mod_gzip.c
30.111 +
30.112 +Port 80
30.113 +
30.114 +<IfDefine SSL>
30.115 + Listen 80
30.116 + Listen 443
30.117 +</IfDefine>
30.118 +
30.119 +User www
30.120 +Group www
30.121 +
30.122 +ServerAdmin sys@interos.com
30.123 +DocumentRoot "/srv/http/www_default"
30.124 +ServerName interos
30.125 +
30.126 +<Directory />
30.127 + Options None
30.128 + AllowOverride None
30.129 + Order allow,deny
30.130 + Allow from all
30.131 +</Directory>
30.132 +
30.133 +<Directory /srv/*/www_default>
30.134 + Options FollowSymLinks
30.135 +</Directory>
30.136 +<Directory /srv/*/www_default/sys/markup>
30.137 + Options +MultiViews
30.138 +</Directory>
30.139 +
30.140 +<Directory /srv/*/interos.*/sys/markup>
30.141 + Options +Multiviews
30.142 +</Directory>
30.143 +
30.144 +<Directory /srv/*/about.interos.*>
30.145 + Options FollowSymLinks
30.146 +</Directory>
30.147 +<Directory /srv/*/about.interos.*/sys/markup>
30.148 + Options +MultiViews
30.149 +</Directory>
30.150 +
30.151 +<Directory /srv/*/blog.interos.*>
30.152 + Options FollowSymLinks
30.153 +</Directory>
30.154 +<Directory /srv/*/blog.interos.*/sys/markup>
30.155 + Options +MultiViews
30.156 +</Directory>
30.157 +
30.158 +<Directory /srv/*/code.interos.*>
30.159 + Options FollowSymLinks
30.160 +</Directory>
30.161 +<Directory /srv/*/code.interos.*/sys/markup>
30.162 + Options +MultiViews
30.163 +</Directory>
30.164 +
30.165 +<Directory /srv/*/demo.interos.com>
30.166 + Options FollowSymLinks
30.167 +</Directory>
30.168 +<Directory /srv/*/demo.interos.com/sys/markup>
30.169 + Options +MultiViews
30.170 +</Directory>
30.171 +
30.172 +<Directory /srv/*/e-mail.interos.*>
30.173 + Options FollowSymLinks
30.174 +</Directory>
30.175 +<Directory /srv/*/e-mail.interos.*/sys/markup>
30.176 + Options +MultiViews
30.177 +</Directory>
30.178 +
30.179 +<Directory /srv/*/faq.interos.*>
30.180 + Options FollowSymLinks
30.181 +</Directory>
30.182 +<Directory /srv/*/faq.interos.*/sys/markup>
30.183 + Options +MultiViews
30.184 +</Directory>
30.185 +
30.186 +<Directory /srv/*/gear.interos.*>
30.187 + Options FollowSymLinks
30.188 +</Directory>
30.189 +<Directory /srv/*/gear.interos.*/sys/markup>
30.190 + Options +MultiViews
30.191 +</Directory>
30.192 +
30.193 +<Directory /srv/*/help.interos.*>
30.194 + Options FollowSymLinks
30.195 +</Directory>
30.196 +<Directory /srv/*/help.interos.*/sys/markup>
30.197 + Options +MultiViews
30.198 +</Directory>
30.199 +
30.200 +<Directory /srv/*/home.interos.*>
30.201 + Options FollowSymLinks
30.202 +</Directory>
30.203 +<Directory /srv/*/home.interos.*/sys/markup>
30.204 + Options +MultiViews
30.205 +</Directory>
30.206 +
30.207 +<Directory /srv/*/login.interos.*>
30.208 + Options FollowSymLinks
30.209 +</Directory>
30.210 +<Directory /srv/*/login.interos.*/sys/markup>
30.211 + Options +MultiViews
30.212 +</Directory>
30.213 +<Directory /srv/http/planet.interos.org>
30.214 + Options FollowSymLinks
30.215 +</Directory>
30.216 +
30.217 +<IfModule mod_dir.c>
30.218 + DirectoryIndex index.html
30.219 +</IfModule>
30.220 +
30.221 +UseCanonicalName On
30.222 +
30.223 +<IfModule mod_mime.c>
30.224 + TypesConfig /usr/local/etc/apache/mime.types
30.225 +</IfModule>
30.226 +
30.227 +DefaultType text/plain
30.228 +
30.229 +<IfModule mod_mime_magic.c>
30.230 + MIMEMagicFile /usr/local/etc/apache/magic
30.231 +</IfModule>
30.232 +
30.233 +HostnameLookups Off
30.234 +
30.235 +ErrorLog /var/log/httpd-error.log
30.236 +
30.237 +LogLevel warn
30.238 +
30.239 +LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
30.240 +LogFormat "%h %l %u %t \"%r\" %>s %b" common
30.241 +LogFormat "%{Referer}i -> %U" referer
30.242 +LogFormat "%{User-agent}i" agent
30.243 +
30.244 +CustomLog /var/log/httpd-access.log combined
30.245 +ServerSignature On
30.246 +
30.247 +<IfModule mod_mime.c>
30.248 + AddLanguage da .dk
30.249 + AddLanguage nl .nl
30.250 + AddLanguage en .en
30.251 + AddLanguage et .ee
30.252 + AddLanguage fr .fr
30.253 + AddLanguage de .de
30.254 + AddLanguage el .el
30.255 + AddLanguage he .he
30.256 + AddCharset ISO-8859-8 .iso8859-8
30.257 + AddLanguage it .it
30.258 + AddLanguage ja .ja
30.259 + AddCharset ISO-2022-JP .jis
30.260 + AddLanguage kr .kr
30.261 + AddCharset ISO-2022-KR .iso-kr
30.262 + AddLanguage nn .nn
30.263 + AddLanguage no .no
30.264 + AddLanguage pl .po
30.265 + AddCharset ISO-8859-2 .iso-pl
30.266 + AddLanguage pt .pt
30.267 + AddLanguage pt-br .pt-br
30.268 + AddLanguage ltz .lu
30.269 + AddLanguage ca .ca
30.270 + AddLanguage es .es
30.271 + AddLanguage sv .sv
30.272 + AddLanguage cs .cz .cs
30.273 + AddLanguage ru .ru
30.274 + AddLanguage zh-TW .zh-tw
30.275 + AddCharset Big5 .Big5 .big5
30.276 + AddCharset WINDOWS-1251 .cp-1251
30.277 + AddCharset CP866 .cp866
30.278 + AddCharset ISO-8859-5 .iso-ru
30.279 + AddCharset KOI8-R .koi8-r
30.280 + AddCharset UCS-2 .ucs2
30.281 + AddCharset UCS-4 .ucs4
30.282 + AddCharset UTF-8 .utf8
30.283 + <IfModule mod_negotiation.c>
30.284 + LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
30.285 + </IfModule>
30.286 + AddType application/x-tar .tgz
30.287 + AddEncoding x-compress .Z
30.288 + AddEncoding x-gzip .gz .tgz
30.289 + AddType application/xhtml+xml;qs=0.95 .xhtml
30.290 + AddType application/x-httpd-php .php
30.291 + AddType application/x-httpd-php-source .phps
30.292 +</IfModule>
30.293 +
30.294 +ErrorDocument 500 /
30.295 +ErrorDocument 404 /
30.296 +ErrorDocument 403 /
30.297 +
30.298 +<IfModule mod_setenvif.c>
30.299 + BrowserMatch "Mozilla/2" nokeepalive
30.300 + BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
30.301 + BrowserMatch "RealPlayer 4\.0" force-response-1.0
30.302 + BrowserMatch "Java/1\.0" force-response-1.0
30.303 + BrowserMatch "JDK/1\.0" force-response-1.0
30.304 +</IfModule>
30.305 +
30.306 +NameVirtualHost *:80
30.307 +
30.308 +<VirtualHost *:80>
30.309 + ServerAdmin sys@interos.org
30.310 +</VirtualHost>
30.311 +
30.312 +<VirtualHost *:80>
30.313 + ServerAdmin sys@interos.org
30.314 + DocumentRoot /srv/http/interos.org
30.315 + ServerName interos.org
30.316 + ServerAlias www.interos.org
30.317 +
30.318 + RewriteEngine on
30.319 +
30.320 + RewriteRule ^/favicon\.ico$ /sys/images/favicon.ico
30.321 + RewriteRule ^/index\.html$ /sys/markup/home
30.322 +
30.323 + RewriteRule ^/css/(.*) /sys/style/$1
30.324 + RewriteRule ^/docs/(.*) /sys/docs/$1
30.325 + RewriteRule ^/dtd/(.*) /sys/dtd/$1
30.326 + RewriteRule ^/flash/(.*) /sys/flash/$1
30.327 + RewriteRule ^/images/(.*) /sys/images/$1
30.328 + RewriteRule ^/java/(.*) /sys/java/$1
30.329 + RewriteRule ^/js/(.*) /sys/js/$1
30.330 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.331 + RewriteRule ^/style/(.*) /sys/style/$1
30.332 + RewriteRule ^/xml/(.*) /sys/xml/$1
30.333 +
30.334 + RewriteRule ^(/sys(/markup)?)?/about/?$ /sys/markup/about
30.335 + RewriteRule ^(/sys(/markup)?)?/blog/?$ /sys/markup/blog
30.336 + RewriteRule ^(/sys(/markup)?)?/code/?$ /sys/markup/code
30.337 + RewriteRule ^(/sys(/markup)?)?/e-?mail/?$ /sys/markup/e-mail
30.338 + RewriteRule ^(/sys(/markup)?)?/f(\.a\.q\.|aq)/?$ /sys/markup/faq
30.339 + RewriteRule ^(/sys(/markup)?)?/gear/?$ /sys/markup/gear
30.340 + RewriteRule ^(/sys(/markup)?)?/help/?$ /sys/markup/help
30.341 + RewriteRule ^(/sys(/markup)?)?/home/?$ /sys/markup/home
30.342 +
30.343 + <Directory /srv/http/interos.org/sys>
30.344 + Options FollowSymLinks
30.345 + </Directory>
30.346 +
30.347 + <Directory /srv/http/interos.org/sys/docs>
30.348 + Options +MultiViews
30.349 + </Directory>
30.350 +</VirtualHost>
30.351 +
30.352 +<VirtualHost *:80>
30.353 + DocumentRoot /srv/http/interos.com
30.354 + ServerName interos.com
30.355 + ServerAlias www.interos.com
30.356 +
30.357 + RewriteEngine on
30.358 +
30.359 + RewriteRule ^/favicon\.ico$ /sys/images/favicon.ico
30.360 + RewriteRule ^/index\.html$ /sys/markup/home
30.361 +
30.362 + RewriteRule ^/css/(.*) /sys/style/$1
30.363 + RewriteRule ^/images/(.*) /sys/images/$1
30.364 + RewriteRule ^/js/(.*) /sys/js/$1
30.365 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.366 + RewriteRule ^/style/(.*) /sys/style/$1
30.367 +
30.368 + RewriteRule ^(/sys(/markup)?)?/about/?$ /sys/markup/about
30.369 + RewriteRule ^(/sys(/markup)?)?/blog/?$ /sys/markup/blog
30.370 + RewriteRule ^(/sys(/markup)?)?/code/?$ /sys/markup/code
30.371 + RewriteRule ^(/sys(/markup)?)?/demo/?$ /sys/markup/demo
30.372 + RewriteRule ^(/sys(/markup)?)?/e-?mail/?$ /sys/markup/e-mail
30.373 + RewriteRule ^(/sys(/markup)?)?/f(\.a\.q\.|aq)/?$ /sys/markup/faq
30.374 + RewriteRule ^(/sys(/markup)?)?/gear/?$ /sys/markup/gear
30.375 + RewriteRule ^(/sys(/markup)?)?/help/?$ /sys/markup/help
30.376 + RewriteRule ^(/sys(/markup)?)?/home/?$ /sys/markup/home
30.377 +
30.378 + <Directory /srv/http/interos.com/sys>
30.379 + Options FollowSymLinks
30.380 + </Directory>
30.381 +</VirtualHost>
30.382 +
30.383 +<VirtualHost *:80>
30.384 + ServerAdmin sys@interos.org
30.385 + DocumentRoot /srv/http/about.interos.org
30.386 + ServerName about.interos.org
30.387 +
30.388 + RewriteEngine on
30.389 +
30.390 + RewriteRule ^/index\.html$ /sys/markup/about
30.391 +
30.392 + RewriteRule ^/css/(.*) /sys/style/$1
30.393 + RewriteRule ^/images/(.*) /sys/images/$1
30.394 + RewriteRule ^/js/(.*) /sys/js/$1
30.395 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.396 + RewriteRule ^/style/(.*) /sys/style/$1
30.397 +
30.398 + Redirect /about/ http://about.interos.org/
30.399 + Redirect /about http://about.interos.org/
30.400 +
30.401 + Redirect /blog/ http://blog.interos.org/
30.402 + Redirect /blog http://blog.interos.org/
30.403 +
30.404 + Redirect /code/ http://code.interos.org/
30.405 + Redirect /code http://code.interos.org/
30.406 +
30.407 + Redirect /e-mail/ http://e-mail.interos.org/
30.408 + Redirect /e-mail http://e-mail.interos.org/
30.409 +
30.410 + Redirect /faq/ http://faq.interos.org/
30.411 + Redirect /faq http://faq.interos.org/
30.412 +
30.413 + Redirect /gear/ http://gear.interos.org/
30.414 + Redirect /gear http://gear.interos.org/
30.415 +</VirtualHost>
30.416 +
30.417 +<VirtualHost *:80>
30.418 + DocumentRoot /srv/http/about.interos.com
30.419 + ServerName about.interos.com
30.420 +
30.421 + RewriteEngine on
30.422 +
30.423 + RewriteRule ^/index\.html$ /sys/markup/about
30.424 +
30.425 + RewriteRule ^/css/(.*) /sys/style/$1
30.426 + RewriteRule ^/images/(.*) /sys/images/$1
30.427 + RewriteRule ^/js/(.*) /sys/js/$1
30.428 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.429 + RewriteRule ^/style/(.*) /sys/style/$1
30.430 +
30.431 + Redirect /about/ http://about.interos.com/
30.432 + Redirect /about http://about.interos.com/
30.433 +
30.434 + Redirect /blog/ http://blog.interos.com/
30.435 + Redirect /blog http://blog.interos.com/
30.436 +
30.437 + Redirect /code/ http://code.interos.com/
30.438 + Redirect /code http://code.interos.com/
30.439 +
30.440 + Redirect /demo/ http://demo.interos.com/
30.441 + Redirect /demo http://demo.interos.com/
30.442 +
30.443 + Redirect /e-mail/ http://e-mail.interos.com/
30.444 + Redirect /e-mail http://e-mail.interos.com/
30.445 +
30.446 + Redirect /faq/ http://faq.interos.com/
30.447 + Redirect /faq http://faq.interos.com/
30.448 +
30.449 + Redirect /gear/ http://gear.interos.com/
30.450 + Redirect /gear http://gear.interos.com/
30.451 +
30.452 + Redirect /help/ http://help.interos.com/
30.453 + Redirect /help http://help.interos.com/
30.454 +</VirtualHost>
30.455 +
30.456 +<VirtualHost *:80>
30.457 + ServerAdmin sys@interos.org
30.458 + DocumentRoot /srv/http/blog.interos.org
30.459 + ServerName blog.interos.org
30.460 +
30.461 + RewriteEngine on
30.462 +
30.463 + RewriteRule ^/index\.html$ /sys/markup/blog
30.464 +
30.465 + RewriteRule ^/css/(.*) /sys/style/$1
30.466 + RewriteRule ^/images/(.*) /sys/images/$1
30.467 + RewriteRule ^/js/(.*) /sys/js/$1
30.468 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.469 + RewriteRule ^/style/(.*) /sys/style/$1
30.470 +
30.471 + Redirect /about/ http://about.interos.org/
30.472 + Redirect /about http://about.interos.org/
30.473 +
30.474 + Redirect /blog/ http://blog.interos.org/
30.475 + Redirect /blog http://blog.interos.org/
30.476 +
30.477 + Redirect /code/ http://code.interos.org/
30.478 + Redirect /code http://code.interos.org/
30.479 +
30.480 + Redirect /e-mail/ http://e-mail.interos.org/
30.481 + Redirect /e-mail http://e-mail.interos.org/
30.482 +
30.483 + Redirect /faq/ http://faq.interos.org/
30.484 + Redirect /faq http://faq.interos.org/
30.485 +
30.486 + Redirect /gear/ http://gear.interos.org/
30.487 + Redirect /gear http://gear.interos.org/
30.488 +</VirtualHost>
30.489 +
30.490 +<VirtualHost *:80>
30.491 + DocumentRoot /srv/http/blog.interos.com
30.492 + ServerName blog.interos.com
30.493 +
30.494 + RewriteEngine on
30.495 +
30.496 + RewriteRule ^/index\.html$ /sys/markup/blog
30.497 +
30.498 + RewriteRule ^/css/(.*) /sys/style/$1
30.499 + RewriteRule ^/images/(.*) /sys/images/$1
30.500 + RewriteRule ^/js/(.*) /sys/js/$1
30.501 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.502 + RewriteRule ^/style/(.*) /sys/style/$1
30.503 +
30.504 + Redirect /about/ http://about.interos.com/
30.505 + Redirect /about http://about.interos.com/
30.506 +
30.507 + Redirect /blog/ http://blog.interos.com/
30.508 + Redirect /blog http://blog.interos.com/
30.509 +
30.510 + Redirect /code/ http://code.interos.com/
30.511 + Redirect /code http://code.interos.com/
30.512 +
30.513 + Redirect /demo/ http://demo.interos.com/
30.514 + Redirect /demo http://demo.interos.com/
30.515 +
30.516 + Redirect /e-mail/ http://e-mail.interos.com/
30.517 + Redirect /e-mail http://e-mail.interos.com/
30.518 +
30.519 + Redirect /faq/ http://faq.interos.com/
30.520 + Redirect /faq http://faq.interos.com/
30.521 +
30.522 + Redirect /gear/ http://gear.interos.com/
30.523 + Redirect /gear http://gear.interos.com/
30.524 +
30.525 + Redirect /help/ http://help.interos.com/
30.526 + Redirect /help http://help.interos.com/
30.527 +</VirtualHost>
30.528 +
30.529 +<VirtualHost *:80>
30.530 + ServerAdmin sys@interos.org
30.531 + DocumentRoot /srv/http/code.interos.org
30.532 + ServerName code.interos.org
30.533 +
30.534 + RewriteEngine on
30.535 +
30.536 + RewriteRule ^/index\.html$ /sys/markup/code
30.537 +
30.538 + RewriteRule ^/css/(.*) /sys/style/$1
30.539 + RewriteRule ^/images/(.*) /sys/images/$1
30.540 + RewriteRule ^/js/(.*) /sys/js/$1
30.541 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.542 + RewriteRule ^/style/(.*) /sys/style/$1
30.543 +
30.544 + Redirect /about/ http://about.interos.org/
30.545 + Redirect /about http://about.interos.org/
30.546 +
30.547 + Redirect /blog/ http://blog.interos.org/
30.548 + Redirect /blog http://blog.interos.org/
30.549 +
30.550 + Redirect /code/ http://code.interos.org/
30.551 + Redirect /code http://code.interos.org/
30.552 +
30.553 + Redirect /e-mail/ http://e-mail.interos.org/
30.554 + Redirect /e-mail http://e-mail.interos.org/
30.555 +
30.556 + Redirect /faq/ http://faq.interos.org/
30.557 + Redirect /faq http://faq.interos.org/
30.558 +</VirtualHost>
30.559 +
30.560 +<VirtualHost *:80>
30.561 + DocumentRoot /srv/http/code.interos.com
30.562 + ServerName code.interos.com
30.563 +
30.564 + RewriteEngine on
30.565 +
30.566 + RewriteRule ^/index\.html$ /sys/markup/code
30.567 +
30.568 + RewriteRule ^/css/(.*) /sys/style/$1
30.569 + RewriteRule ^/images/(.*) /sys/images/$1
30.570 + RewriteRule ^/js/(.*) /sys/js/$1
30.571 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.572 + RewriteRule ^/style/(.*) /sys/style/$1
30.573 +
30.574 + Redirect /about/ http://about.interos.com/
30.575 + Redirect /about http://about.interos.com/
30.576 +
30.577 + Redirect /blog/ http://blog.interos.com/
30.578 + Redirect /blog http://blog.interos.com/
30.579 +
30.580 + Redirect /code/ http://code.interos.com/
30.581 + Redirect /code http://code.interos.com/
30.582 +
30.583 + Redirect /demo/ http://demo.interos.com/
30.584 + Redirect /demo http://demo.interos.com/
30.585 +
30.586 + Redirect /e-mail/ http://e-mail.interos.com/
30.587 + Redirect /e-mail http://e-mail.interos.com/
30.588 +
30.589 + Redirect /faq/ http://faq.interos.com/
30.590 + Redirect /faq http://faq.interos.com/
30.591 +
30.592 + Redirect /gear/ http://gear.interos.com/
30.593 + Redirect /gear http://gear.interos.com/
30.594 +
30.595 + Redirect /help/ http://help.interos.com/
30.596 + Redirect /help http://help.interos.com/
30.597 +</VirtualHost>
30.598 +
30.599 +<VirtualHost *:80>
30.600 + DocumentRoot /srv/http/demo.interos.com
30.601 + ServerName demo.interos.com
30.602 +
30.603 + RewriteEngine on
30.604 +
30.605 + RewriteRule ^/index\.html$ /sys/markup/demo
30.606 +
30.607 + RewriteRule ^/css/(.*) /sys/style/$1
30.608 + RewriteRule ^/images/(.*) /sys/images/$1
30.609 + RewriteRule ^/js/(.*) /sys/js/$1
30.610 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.611 + RewriteRule ^/style/(.*) /sys/style/$1
30.612 +
30.613 + Redirect /about/ http://about.interos.com/
30.614 + Redirect /about http://about.interos.com/
30.615 +
30.616 + Redirect /blog/ http://blog.interos.com/
30.617 + Redirect /blog http://blog.interos.com/
30.618 +
30.619 + Redirect /code/ http://code.interos.com/
30.620 + Redirect /code http://code.interos.com/
30.621 +
30.622 + Redirect /demo/ http://demo.interos.com/
30.623 + Redirect /demo http://demo.interos.com/
30.624 +
30.625 + Redirect /e-mail/ http://e-mail.interos.com/
30.626 + Redirect /e-mail http://e-mail.interos.com/
30.627 +
30.628 + Redirect /faq/ http://faq.interos.com/
30.629 + Redirect /faq http://faq.interos.com/
30.630 +
30.631 + Redirect /gear/ http://gear.interos.com/
30.632 + Redirect /gear http://gear.interos.com/
30.633 +
30.634 + Redirect /help/ http://help.interos.com/
30.635 + Redirect /help http://help.interos.com/
30.636 +</VirtualHost>
30.637 +
30.638 +<VirtualHost *:80>
30.639 + ServerAdmin sys@interos.org
30.640 + DocumentRoot /srv/http/e-mail.interos.org
30.641 + ServerName e-mail.interos.org
30.642 +
30.643 + RewriteEngine on
30.644 +
30.645 + RewriteRule ^/index\.html$ /sys/markup/e-mail
30.646 +
30.647 + RewriteRule ^/css/(.*) /sys/style/$1
30.648 + RewriteRule ^/images/(.*) /sys/images/$1
30.649 + RewriteRule ^/js/(.*) /sys/js/$1
30.650 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.651 + RewriteRule ^/style/(.*) /sys/style/$1
30.652 +
30.653 + Redirect /about/ http://about.interos.org/
30.654 + Redirect /about http://about.interos.org/
30.655 +
30.656 + Redirect /blog/ http://blog.interos.org/
30.657 + Redirect /blog http://blog.interos.org/
30.658 +
30.659 + Redirect /code/ http://code.interos.org/
30.660 + Redirect /code http://code.interos.org/
30.661 +
30.662 + Redirect /e-mail/ http://e-mail.interos.org/
30.663 + Redirect /e-mail http://e-mail.interos.org/
30.664 +
30.665 + Redirect /faq/ http://faq.interos.org/
30.666 + Redirect /faq http://faq.interos.org/
30.667 +
30.668 + Redirect /gear/ http://gear.interos.org/
30.669 + Redirect /gear http://gear.interos.org/
30.670 +</VirtualHost>
30.671 +
30.672 +<VirtualHost *:80>
30.673 + DocumentRoot /srv/http/e-mail.interos.com
30.674 + ServerName e-mail.interos.com
30.675 +
30.676 + RewriteEngine on
30.677 +
30.678 + RewriteRule ^/index\.html$ /sys/markup/e-mail
30.679 +
30.680 + RewriteRule ^/css/(.*) /sys/style/$1
30.681 + RewriteRule ^/images/(.*) /sys/images/$1
30.682 + RewriteRule ^/js/(.*) /sys/js/$1
30.683 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.684 + RewriteRule ^/style/(.*) /sys/style/$1
30.685 +
30.686 + Redirect /about/ http://about.interos.com/
30.687 + Redirect /about http://about.interos.com/
30.688 +
30.689 + Redirect /blog/ http://blog.interos.com/
30.690 + Redirect /blog http://blog.interos.com/
30.691 +
30.692 + Redirect /code/ http://code.interos.com/
30.693 + Redirect /code http://code.interos.com/
30.694 +
30.695 + Redirect /demo/ http://demo.interos.com/
30.696 + Redirect /demo http://demo.interos.com/
30.697 +
30.698 + Redirect /e-mail/ http://e-mail.interos.com/
30.699 + Redirect /e-mail http://e-mail.interos.com/
30.700 +
30.701 + Redirect /faq/ http://faq.interos.com/
30.702 + Redirect /faq http://faq.interos.com/
30.703 +
30.704 + Redirect /gear/ http://gear.interos.com/
30.705 + Redirect /gear http://gear.interos.com/
30.706 +
30.707 + Redirect /help/ http://help.interos.com/
30.708 + Redirect /help http://help.interos.com/
30.709 +</VirtualHost>
30.710 +
30.711 +<VirtualHost *:80>
30.712 + ServerAdmin sys@interos.org
30.713 + DocumentRoot /srv/http/faq.interos.org
30.714 + ServerName faq.interos.org
30.715 +
30.716 + RewriteEngine on
30.717 +
30.718 + RewriteRule ^/index\.html$ /sys/markup/faq
30.719 +
30.720 + RewriteRule ^/css/(.*) /sys/style/$1
30.721 + RewriteRule ^/images/(.*) /sys/images/$1
30.722 + RewriteRule ^/js/(.*) /sys/js/$1
30.723 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.724 + RewriteRule ^/style/(.*) /sys/style/$1
30.725 +
30.726 + Redirect /about/ http://about.interos.org/
30.727 + Redirect /about http://about.interos.org/
30.728 +
30.729 + Redirect /blog/ http://blog.interos.org/
30.730 + Redirect /blog http://blog.interos.org/
30.731 +
30.732 + Redirect /code/ http://code.interos.org/
30.733 + Redirect /code http://code.interos.org/
30.734 +
30.735 + Redirect /e-mail/ http://e-mail.interos.org/
30.736 + Redirect /e-mail http://e-mail.interos.org/
30.737 +
30.738 + Redirect /faq/ http://faq.interos.org/
30.739 + Redirect /faq http://faq.interos.org/
30.740 +
30.741 + Redirect /gear/ http://gear.interos.org/
30.742 + Redirect /gear http://gear.interos.org/
30.743 +</VirtualHost>
30.744 +
30.745 +<VirtualHost *:80>
30.746 + DocumentRoot /srv/http/faq.interos.com
30.747 + ServerName faq.interos.com
30.748 +
30.749 + RewriteEngine on
30.750 +
30.751 + RewriteRule ^/index\.html$ /sys/markup/faq
30.752 +
30.753 + RewriteRule ^/css/(.*) /sys/style/$1
30.754 + RewriteRule ^/images/(.*) /sys/images/$1
30.755 + RewriteRule ^/js/(.*) /sys/js/$1
30.756 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.757 + RewriteRule ^/style/(.*) /sys/style/$1
30.758 +
30.759 + Redirect /about/ http://about.interos.com/
30.760 + Redirect /about http://about.interos.com/
30.761 +
30.762 + Redirect /blog/ http://blog.interos.com/
30.763 + Redirect /blog http://blog.interos.com/
30.764 +
30.765 + Redirect /code/ http://code.interos.com/
30.766 + Redirect /code http://code.interos.com/
30.767 +
30.768 + Redirect /demo/ http://demo.interos.com/
30.769 + Redirect /demo http://demo.interos.com/
30.770 +
30.771 + Redirect /e-mail/ http://e-mail.interos.com/
30.772 + Redirect /e-mail http://e-mail.interos.com/
30.773 +
30.774 + Redirect /faq/ http://faq.interos.com/
30.775 + Redirect /faq http://faq.interos.com/
30.776 +
30.777 + Redirect /gear/ http://gear.interos.com/
30.778 + Redirect /gear http://gear.interos.com/
30.779 +
30.780 + Redirect /help/ http://help.interos.com/
30.781 + Redirect /help http://help.interos.com/
30.782 +</VirtualHost>
30.783 +
30.784 +<VirtualHost *:80>
30.785 + DocumentRoot /srv/http/gear.interos.org
30.786 + ServerName gear.interos.org
30.787 +
30.788 + RewriteEngine on
30.789 +
30.790 + RewriteRule ^/index\.html$ /sys/markup/gear
30.791 +
30.792 + RewriteRule ^/css/(.*) /sys/style/$1
30.793 + RewriteRule ^/images/(.*) /sys/images/$1
30.794 + RewriteRule ^/js/(.*) /sys/js/$1
30.795 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.796 + RewriteRule ^/style/(.*) /sys/style/$1
30.797 +
30.798 + Redirect /about/ http://about.interos.org/
30.799 + Redirect /about http://about.interos.org/
30.800 +
30.801 + Redirect /blog/ http://blog.interos.org/
30.802 + Redirect /blog http://blog.interos.org/
30.803 +
30.804 + Redirect /code/ http://code.interos.org/
30.805 + Redirect /code http://code.interos.org/
30.806 +
30.807 + Redirect /e-mail/ http://e-mail.interos.org/
30.808 + Redirect /e-mail http://e-mail.interos.org/
30.809 +
30.810 + Redirect /faq/ http://faq.interos.org/
30.811 + Redirect /faq http://faq.interos.org/
30.812 +
30.813 + Redirect /gear/ http://gear.interos.org/
30.814 + Redirect /gear http://gear.interos.org/
30.815 +</VirtualHost>
30.816 +
30.817 +<VirtualHost *:80>
30.818 + DocumentRoot /srv/http/gear.interos.com
30.819 + ServerName gear.interos.com
30.820 +
30.821 + RewriteEngine on
30.822 +
30.823 + RewriteRule ^/index\.html$ /sys/markup/gear
30.824 +
30.825 + RewriteRule ^/css/(.*) /sys/style/$1
30.826 + RewriteRule ^/images/(.*) /sys/images/$1
30.827 + RewriteRule ^/js/(.*) /sys/js/$1
30.828 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.829 + RewriteRule ^/style/(.*) /sys/style/$1
30.830 +
30.831 + Redirect /about/ http://about.interos.com/
30.832 + Redirect /about http://about.interos.com/
30.833 +
30.834 + Redirect /blog/ http://blog.interos.com/
30.835 + Redirect /blog http://blog.interos.com/
30.836 +
30.837 + Redirect /code/ http://code.interos.com/
30.838 + Redirect /code http://code.interos.com/
30.839 +
30.840 + Redirect /demo/ http://demo.interos.com/
30.841 + Redirect /demo http://demo.interos.com/
30.842 +
30.843 + Redirect /e-mail/ http://e-mail.interos.com/
30.844 + Redirect /e-mail http://e-mail.interos.com/
30.845 +
30.846 + Redirect /faq/ http://faq.interos.com/
30.847 + Redirect /faq http://faq.interos.com/
30.848 +
30.849 + Redirect /gear/ http://gear.interos.com/
30.850 + Redirect /gear http://gear.interos.com/
30.851 +
30.852 + Redirect /help/ http://help.interos.com/
30.853 + Redirect /help http://help.interos.com/
30.854 +</VirtualHost>
30.855 +
30.856 +<VirtualHost *:80>
30.857 + DocumentRoot /srv/http/help.interos.com
30.858 + ServerName help.interos.com
30.859 +
30.860 + RewriteEngine on
30.861 +
30.862 + RewriteRule ^/index\.html$ /sys/markup/help
30.863 +
30.864 + RewriteRule ^/css/(.*) /sys/style/$1
30.865 + RewriteRule ^/images/(.*) /sys/images/$1
30.866 + RewriteRule ^/js/(.*) /sys/js/$1
30.867 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.868 + RewriteRule ^/style/(.*) /sys/style/$1
30.869 +
30.870 + Redirect /about/ http://about.interos.com/
30.871 + Redirect /about http://about.interos.com/
30.872 +
30.873 + Redirect /blog/ http://blog.interos.com/
30.874 + Redirect /blog http://blog.interos.com/
30.875 +
30.876 + Redirect /code/ http://code.interos.com/
30.877 + Redirect /code http://code.interos.com/
30.878 +
30.879 + Redirect /demo/ http://demo.interos.com/
30.880 + Redirect /demo http://demo.interos.com/
30.881 +
30.882 + Redirect /e-mail/ http://e-mail.interos.com/
30.883 + Redirect /e-mail http://e-mail.interos.com/
30.884 +
30.885 + Redirect /faq/ http://faq.interos.com/
30.886 + Redirect /faq http://faq.interos.com/
30.887 +
30.888 + Redirect /help/ http://help.interos.com/
30.889 + Redirect /help http://help.interos.com/
30.890 +</VirtualHost>
30.891 +
30.892 +<VirtualHost *:80>
30.893 + DocumentRoot /srv/http/doku.interos.org
30.894 + ServerName doc.interos.org
30.895 + ServerAlias docu.interos.org
30.896 + ServerAlias docuwiki.interos.org
30.897 + ServerAlias docs.interos.org
30.898 + ServerAlias documentation.interos.org
30.899 + ServerAlias doku.interos.org
30.900 + ServerAlias dokuwiki.interos.org
30.901 + AddType application/x-httpd-php .php .php5 .phtml
30.902 +
30.903 + RewriteEngine on
30.904 +
30.905 + RewriteRule ^/_media/(.*) /lib/exe/fetch.php?media=$1 [QSA,L]
30.906 + RewriteRule ^/_detail/(.*) /lib/exe/detail.php?media=$1 [QSA,L]
30.907 + RewriteRule ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 [QSA,L]
30.908 + RewriteRule ^/$ /doku.php [L]
30.909 + RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
30.910 + RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
30.911 + RewriteRule (.*) /doku.php?id=$1 [QSA,L]
30.912 +
30.913 +</VirtualHost>
30.914 +
30.915 +<VirtualHost *:80>
30.916 + DocumentRoot /srv/http/git.interos.org
30.917 + ServerName git.interos.org
30.918 + ServerAdmin info@interos.org
30.919 + ErrorLog "/var/log/git_daemon-error.log"
30.920 + CustomLog "/var/log/git_daemon-access.log" combined
30.921 +
30.922 + <Directory "/srv/http/git.interos.org">
30.923 + Options ExecCGI
30.924 + Order allow,deny
30.925 + Allow from all
30.926 +
30.927 + DirectoryIndex gitweb.cgi
30.928 + AddHandler cgi-script .cgi
30.929 + </Directory>
30.930 +</VirtualHost>
30.931 +
30.932 +<VirtualHost *:80>
30.933 + DocumentRoot /srv/http/forums.interos.org
30.934 + ServerName forums.interos.org
30.935 + ServerAlias forum.interos.org
30.936 + ServerAlias boards.interos.org
30.937 + ServerAlias board.interos.org
30.938 + ServerAlias bbs.interos.org
30.939 + ServerAlias bb.interos.org
30.940 + ServerAlias phpbb.interos.org
30.941 + ServerAlias phpbb3.interos.org
30.942 + AddType application/x-httpd-php .php .php5 .phtml
30.943 +
30.944 + <IfModule mod_dir.c>
30.945 + DirectoryIndex index.php
30.946 + </IfModule>
30.947 +
30.948 +</VirtualHost>
30.949 +
30.950 +<VirtualHost *:80>
30.951 + DocumentRoot /srv/http/planet.interos.org
30.952 + ServerName planet.interos.org
30.953 +</VirtualHost>
30.954 +
30.955 +<VirtualHost *:80>
30.956 + DocumentRoot /srv/http/webchat.interos.org
30.957 + ServerName webchat.interos.org
30.958 +</VirtualHost>
30.959 +
30.960 +<VirtualHost *:80>
30.961 + DocumentRoot /srv/http/wiki.interos.org
30.962 + ServerName wiki.interos.org
30.963 + AddType application/x-httpd-php .php .php5 .phtml
30.964 +
30.965 + <IfModule mod_dir.c>
30.966 + DirectoryIndex index.php
30.967 + </IfModule>
30.968 +
30.969 + Alias /view /srv/http/wiki.interos.org/wiki/index.php
30.970 + Alias /index.php /srv/http/wiki.interos.org/wiki/index.php
30.971 +</VirtualHost>
30.972 +
30.973 +<VirtualHost *:80>
30.974 + DocumentRoot /srv/http/brent.interos.org
30.975 + ServerName brent.interos.org
30.976 + ServerAlias wiki.brent.interos.org
30.977 + AddType application/x-httpd-php .php .php5 .phtml
30.978 +
30.979 + <Directory /srv/http/brent.interos.org/w>
30.980 + <IfModule mod_dir.c>
30.981 + DirectoryIndex index.php
30.982 + </IfModule>
30.983 + </Directory>
30.984 +
30.985 + Alias /wiki /srv/http/brent.interos.org/w/index.php
30.986 +</VirtualHost>
30.987 +
30.988 +<VirtualHost *:80>
30.989 + DocumentRoot /srv/http/kunal.interos.org
30.990 + ServerName kunal.interos.org
30.991 + ServerAlias wiki.kunal.interos.org
30.992 + AddType application/x-httpd-php .php .php5 .phtml
30.993 +
30.994 + <Directory /srv/http/kunal.interos.org/w>
30.995 + <IfModule mod_dir.c>
30.996 + DirectoryIndex index.php
30.997 + </IfModule>
30.998 + </Directory>
30.999 +
30.1000 + Alias /wiki /srv/http/kunal.interos.org/w/index.php
30.1001 +</VirtualHost>
30.1002 +
30.1003 +<VirtualHost *:80>
30.1004 + DocumentRoot /srv/http/peter.interos.org
30.1005 + ServerName peter.interos.org
30.1006 + ServerAlias wiki.peter.interos.org
30.1007 + AddType application/x-httpd-php .php .php5 .phtml
30.1008 +
30.1009 + <Directory /srv/http/peter.interos.org/w>
30.1010 + <IfModule mod_dir.c>
30.1011 + DirectoryIndex index.php
30.1012 + </IfModule>
30.1013 + </Directory>
30.1014 +
30.1015 + Alias /wiki /srv/http/peter.interos.org/w/index.php
30.1016 +</VirtualHost>
30.1017 +
30.1018 +<VirtualHost *:80>
30.1019 + DocumentRoot /srv/http/lurie2010.org
30.1020 + ServerName lurie2010.org
30.1021 + ServerAlias lurie2010.interos.org
30.1022 + AddType application/x-httpd-php .php .php5 .phtml
30.1023 +
30.1024 + <IfModule mod_dir.c>
30.1025 + DirectoryIndex index.php
30.1026 + </IfModule>
30.1027 +
30.1028 +</VirtualHost>
30.1029 +
30.1030 +<VirtualHost *:80>
30.1031 + DocumentRoot /srv/http/forums.lurie2010.org
30.1032 + ServerName forums.lurie2010.org
30.1033 + ServerAlias forums.lurie2010.interos.org
30.1034 + AddType application/x-httpd-php .php .php5 .phtml
30.1035 +
30.1036 + <IfModule mod_dir.c>
30.1037 + DirectoryIndex index.php
30.1038 + </IfModule>
30.1039 +
30.1040 +</VirtualHost>
30.1041 +
30.1042 +<VirtualHost *:80>
30.1043 + DocumentRoot /srv/http/forums.stnylug.interos.org
30.1044 + ServerName forums.stnylug.interos.org
30.1045 +# ServerAlias forums.stnylug.org
30.1046 + AddType application/x-httpd-php .php .php5 .phtml
30.1047 +
30.1048 + <IfModule mod_dir.c>
30.1049 + DirectoryIndex index.php
30.1050 + </IfModule>
30.1051 +
30.1052 +</VirtualHost>
30.1053 +
30.1054 +<VirtualHost *:80>
30.1055 + DocumentRoot /srv/http/wiki.stnylug.interos.org
30.1056 + ServerName wiki.stnylug.interos.org
30.1057 + ServerAlias wiki.stnylug.org
30.1058 + ServerAlias forums.stnylug.org
30.1059 + AddType application/x-httpd-php .php .php5 .phtml
30.1060 +
30.1061 + <IfModule mod_dir.c>
30.1062 + DirectoryIndex index.php
30.1063 + </IfModule>
30.1064 +
30.1065 + Alias /view /srv/http/wiki.stnylug.interos.org/wiki/index.php
30.1066 + Alias /index.php /srv/http/wiki.stnylug.interos.org/wiki/index.php
30.1067 +</VirtualHost>
30.1068 +
30.1069 +<VirtualHost *:80>
30.1070 + DocumentRoot /srv/http/gbte.interos.org
30.1071 + ServerName gbte.interos.org
30.1072 + ServerAlias girls.interos.org
30.1073 +</VirtualHost>
30.1074 +
30.1075 +<VirtualHost *:80>
30.1076 + DocumentRoot /srv/http/wiki.gbte.interos.org
30.1077 + ServerName wiki.gbte.interos.org
30.1078 + ServerAlias wiki.girls.interos.org
30.1079 + ServerAlias wiki.girlsbalancetheequation.interos.org
30.1080 + ServerAlias wiki.girlsbalancetheequation.org
30.1081 + AddType application/x-httpd-php .php .php5 .phtml
30.1082 +
30.1083 + <IfModule mod_dir.c>
30.1084 + DirectoryIndex index.php
30.1085 + </IfModule>
30.1086 +
30.1087 + Alias /view /srv/http/wiki.gbte.interos.org/wiki/index.php
30.1088 + Alias /index.php /srv/http/wiki.gbte.interos.org/wiki/index.php
30.1089 +</VirtualHost>
30.1090 +
30.1091 +<IfDefine SSL>
30.1092 + AddType application/x-x509-ca-cert .crt
30.1093 + AddType application/x-pkcs7-crl .crl
30.1094 +</IfDefine>
30.1095 +
30.1096 +<IfModule mod_ssl.c>
30.1097 + SSLPassPhraseDialog builtin
30.1098 + SSLSessionCache dbm:/var/run/ssl_scache
30.1099 + SSLSessionCacheTimeout 300
30.1100 + SSLMutex file:/var/run/ssl_mutex
30.1101 + SSLRandomSeed startup builtin
30.1102 + SSLRandomSeed connect builtin
30.1103 + SSLLog /var/log/ssl_engine_log
30.1104 + SSLLogLevel info
30.1105 +</IfModule>
30.1106 +
30.1107 +<IfDefine SSL>
30.1108 + NameVirtualHost 208.86.227.235:443
30.1109 +
30.1110 + <VirtualHost 208.86.227.235:443>
30.1111 + DocumentRoot "/srv/https/www_default"
30.1112 + ServerAdmin sys@interos.org
30.1113 + ErrorLog /var/log/httpd-error.log
30.1114 + TransferLog /var/log/httpd-access.log
30.1115 +
30.1116 + <Directory /srv/https/www_default>
30.1117 + Options FollowSymLinks
30.1118 + </Directory>
30.1119 +
30.1120 + SSLEngine on
30.1121 + SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
30.1122 + SSLCertificateFile /usr/local/etc/apache/ssl.crt/interos.crt
30.1123 + SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/interos.key
30.1124 +
30.1125 + SetEnvIf User-Agent ".*MSIE.*" \
30.1126 + nokeepalive ssl-unclean-shutdown \
30.1127 + downgrade-1.0 force-response-1.0
30.1128 + CustomLog /var/log/ssl_request_log \
30.1129 + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
30.1130 + </VirtualHost>
30.1131 +
30.1132 + <VirtualHost 208.86.227.228:443>
30.1133 + DocumentRoot "/srv/https/interos.org"
30.1134 + ServerName interos.org
30.1135 + ServerAlias www.interos.org
30.1136 + ServerAdmin sys@interos.org
30.1137 + ErrorLog /var/log/httpd-error.log
30.1138 + TransferLog /var/log/httpd-access.log
30.1139 +
30.1140 + #ErrorDocument 500 /login
30.1141 + #ErrorDocument 404 /login
30.1142 + #ErrorDocument 403 /login
30.1143 +
30.1144 + SSLEngine on
30.1145 + SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
30.1146 + SSLCertificateFile /usr/local/etc/apache/ssl.crt/www.interos.org.crt
30.1147 + SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/www.interos.org.key
30.1148 + SSLCertificateChainFile /usr/local/etc/apache/ssl.crt/sub.class1.server.ca.pem
30.1149 + SSLCACertificateFile /usr/local/etc/apache/ssl.crt/ca.pem
30.1150 +
30.1151 + RewriteEngine on
30.1152 +
30.1153 + RewriteRule ^/favicon\.ico$ /sys/images/favicon.ico
30.1154 + RewriteRule ^/index\.html$ /sys/markup/home
30.1155 +
30.1156 + RewriteRule ^/css/(.*) /sys/style/$1
30.1157 + RewriteRule ^/docs/(.*) /sys/docs/$1
30.1158 + RewriteRule ^/dtd/(.*) /sys/dtd/$1
30.1159 + RewriteRule ^/flash/(.*) /sys/flash/$1
30.1160 + RewriteRule ^/images/(.*) /sys/images/$1
30.1161 + RewriteRule ^/java/(.*) /sys/java/$1
30.1162 + RewriteRule ^/js/(.*) /sys/js/$1
30.1163 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1164 + RewriteRule ^/style/(.*) /sys/style/$1
30.1165 + RewriteRule ^/xml/(.*) /sys/xml/$1
30.1166 +
30.1167 + RewriteRule ^(/sys(/markup)?)?/about/?$ /sys/markup/about
30.1168 + RewriteRule ^(/sys(/markup)?)?/blog/?$ /sys/markup/blog
30.1169 + RewriteRule ^(/sys(/markup)?)?/code/?$ /sys/markup/code
30.1170 + RewriteRule ^(/sys(/markup)?)?/e-?mail/?$ /sys/markup/e-mail
30.1171 + RewriteRule ^(/sys(/markup)?)?/f(\.a\.q\.|aq)/?$ /sys/markup/faq
30.1172 + RewriteRule ^(/sys(/markup)?)?/gear/?$ /sys/markup/gear
30.1173 + RewriteRule ^(/sys(/markup)?)?/help/?$ /sys/markup/help
30.1174 + RewriteRule ^(/sys(/markup)?)?/home/?$ /sys/markup/home
30.1175 +
30.1176 + <Directory /srv/https/interos.org/sys>
30.1177 + Options FollowSymLinks
30.1178 + </Directory>
30.1179 + </VirtualHost>
30.1180 +
30.1181 + <VirtualHost 208.86.227.235:443>
30.1182 + DocumentRoot "/srv/https/old.interos.com"
30.1183 + ServerName old.interos.com
30.1184 + ServerAdmin sys@interos.com
30.1185 + ErrorLog /var/log/httpd-error.log
30.1186 + TransferLog /var/log/httpd-access.log
30.1187 +
30.1188 + ErrorDocument 500 /login
30.1189 + ErrorDocument 404 /login
30.1190 + ErrorDocument 403 /login
30.1191 +
30.1192 + RewriteEngine on
30.1193 +
30.1194 + RewriteRule ^/favicon\.ico$ /sys/images/favicon.ico
30.1195 + RewriteRule ^/index\.html$ /sys/markup/home
30.1196 +
30.1197 + RewriteRule ^/css/(.*) /sys/style/$1
30.1198 + RewriteRule ^/flash/(.*) /sys/flash/$1
30.1199 + RewriteRule ^/images/(.*) /sys/images/$1
30.1200 + RewriteRule ^/java/(.*) /sys/java/$1
30.1201 + RewriteRule ^/js/(.*) /sys/js/$1
30.1202 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1203 + RewriteRule ^/style/(.*) /sys/style/$1
30.1204 + RewriteRule ^/xml/(.*) /sys/xml/$1
30.1205 +
30.1206 + RewriteRule ^(/sys(/markup)?)?/about/?$ /sys/markup/about
30.1207 + RewriteRule ^(/sys(/markup)?)?/blog/?$ /sys/markup/blog
30.1208 + RewriteRule ^(/sys(/markup)?)?/code/?$ /sys/markup/code
30.1209 + RewriteRule ^(/sys(/markup)?)?/demo/?$ /sys/markup/demo
30.1210 + RewriteRule ^(/sys(/markup)?)?/e-?mail/?$ /sys/markup/e-mail
30.1211 + RewriteRule ^(/sys(/markup)?)?/f(\.a\.q\.|aq)/?$ /sys/markup/faq
30.1212 + RewriteRule ^(/sys(/markup)?)?/gear/?$ /sys/markup/gear
30.1213 + RewriteRule ^(/sys(/markup)?)?/help/?$ /sys/markup/help
30.1214 + RewriteRule ^(/sys(/markup)?)?/home/?$ /sys/markup/home
30.1215 +
30.1216 + RewriteRule ^(/sys)?/(main|interos)/?$ /sys/main
30.1217 + RewriteRule ^(/sys)?/login/?$ /sys/login
30.1218 + RewriteRule ^(/sys)?/new_?user/?$ /sys/new_user
30.1219 + RewriteRule ^(/sys)?/welcome/?$ /sys/welcome
30.1220 + RewriteRule ^(/sys)?/welcome_?back/?$ /sys/welcome_back
30.1221 + RewriteRule ^(/sys)?/top/?$ /sys/top
30.1222 + RewriteRule ^(/sys)?/content/?$ /sys/content
30.1223 + RewriteRule ^(/sys)?/bottom/?$ /sys/bottom
30.1224 + RewriteRule ^(/sys)?/new/?$ /sys/new
30.1225 + RewriteRule ^(/sys)?/open/?$ /sys/open
30.1226 + RewriteRule ^(/sys)?/next/?$ /sys/next
30.1227 + RewriteRule ^(/sys)?/settings/?$ /sys/settings
30.1228 + RewriteRule ^(/sys)?/menu/?$ /sys/menu
30.1229 + RewriteRule ^(/sys)?/user/?$ /sys/user
30.1230 + RewriteRule ^(/sys)?/logout/?$ /sys/logout
30.1231 +
30.1232 + RewriteRule ^(/sys)?/xml/append/?$ /sys/xml/append
30.1233 + RewriteRule ^(/sys)?/xml/copy/?$ /sys/xml/copy
30.1234 + RewriteRule ^(/sys)?/xml/delete/?$ /sys/xml/delete
30.1235 + RewriteRule ^(/sys)?/xml/exist/?$ /sys/xml/exist
30.1236 + RewriteRule ^(/sys)?/xml/files/?$ /sys/xml/files
30.1237 + RewriteRule ^(/sys)?/xml/move/?$ /sys/xml/move
30.1238 + RewriteRule ^(/sys)?/xml/new_folder/?$ /sys/xml/new_folder
30.1239 + RewriteRule ^(/sys)?/xml/open/?$ /sys/xml/open
30.1240 + RewriteRule ^(/sys)?/xml/persist/?$ /sys/xml/persist
30.1241 + RewriteRule ^(/sys)?/xml/save/?$ /sys/xml/save
30.1242 + RewriteRule ^(/sys)?/xml/test/?$ /sys/xml/test
30.1243 + RewriteRule ^(/sys)?/xml/user/?$ /sys/xml/user
30.1244 +
30.1245 + <Directory /srv/https/old.interos.com>
30.1246 + AllowOverride FileInfo Limit
30.1247 + #FastCgiAccessChecker /srv/data/interos/sys/access
30.1248 + </Directory>
30.1249 +
30.1250 + <Directory /srv/https/old.interos.com/sys>
30.1251 + AllowOverride Options
30.1252 + Options ExecCGI FollowSymLinks
30.1253 + <FilesMatch "^(main|login|new_user|welcome|welcome_back|top|content|bottom|new|open|next|settings|menu|browse|user|logout|interos)$">
30.1254 + SetHandler fastcgi-script
30.1255 + </FilesMatch>
30.1256 + </Directory>
30.1257 +
30.1258 + <Directory /srv/https/old.interos.com/sys/markup>
30.1259 + Options +MultiViews
30.1260 + </Directory>
30.1261 +
30.1262 + <Directory /srv/https/old.interos.com/sys/xml>
30.1263 + <FilesMatch "^(append|copy|delete|exist|files|move|new_folder|open|persist|save|test|user)$">
30.1264 + SetHandler fastcgi-script
30.1265 + </FilesMatch>
30.1266 + </Directory>
30.1267 + </VirtualHost>
30.1268 +
30.1269 + <VirtualHost 208.86.227.229:443>
30.1270 + DocumentRoot "/srv/https/interos.com"
30.1271 + ServerName interos.com
30.1272 + ServerAlias www.interos.com
30.1273 + ServerAdmin sys@interos.com
30.1274 + ErrorLog /var/log/httpd-error.log
30.1275 + TransferLog /var/log/httpd-access.log
30.1276 +
30.1277 + SSLEngine on
30.1278 + SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
30.1279 + SSLCertificateFile /usr/local/etc/apache/ssl.crt/www.interos.com.crt
30.1280 + SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/www.interos.com.key
30.1281 + SSLCertificateChainFile /usr/local/etc/apache/ssl.crt/sub.class1.server.ca.pem
30.1282 + SSLCACertificateFile /usr/local/etc/apache/ssl.crt/ca.pem
30.1283 +
30.1284 + ErrorDocument 500 /login
30.1285 + ErrorDocument 404 /login
30.1286 + ErrorDocument 403 /login
30.1287 +
30.1288 + AliasMatch ^/favicon.ico$ /srv/master/link/favicon.ico
30.1289 +
30.1290 +# AliasMatch ^/index.html$ /srv/https/interos.com/sys/home.html
30.1291 + AliasMatch ^/index.html$ /srv/https/interos.com/sys/login
30.1292 +
30.1293 + AliasMatch ^/apps(.*) /srv/https/interos.com/sys/apps$1
30.1294 + AliasMatch ^/css(.*) /srv/https/interos.com/sys/css$1
30.1295 + AliasMatch ^/flash(.*) /srv/https/interos.com/sys/flash$1
30.1296 + AliasMatch ^/gif(.*) /srv/https/interos.com/sys/gif$1
30.1297 + AliasMatch ^/images(.*) /srv/https/interos.com/sys/images$1
30.1298 + AliasMatch ^/java(.*) /srv/https/interos.com/sys/java$1
30.1299 + AliasMatch ^/js(.*) /srv/https/interos.com/sys/js$1
30.1300 + AliasMatch ^/png(.*) /srv/https/interos.com/sys/png$1
30.1301 + AliasMatch ^/style(.*) /srv/https/interos.com/sys/style$1
30.1302 + AliasMatch ^/svg(.*) /srv/https/interos.com/sys/svg$1
30.1303 + AliasMatch ^/xml(.*) /srv/https/interos.com/sys/xml$1
30.1304 +
30.1305 + AliasMatch ^/sys/about/$ /srv/https/about.interos.com/index.html
30.1306 + AliasMatch ^/sys/about$ /srv/https/about.interos.com/index.html
30.1307 + AliasMatch ^/about/$ /srv/https/about.interos.com/index.html
30.1308 + AliasMatch ^/about$ /srv/https/about.interos.com/index.html
30.1309 +
30.1310 + AliasMatch ^/sys/blog/$ /srv/https/blog.interos.com/index.html
30.1311 + AliasMatch ^/sys/blog$ /srv/https/blog.interos.com/index.html
30.1312 + AliasMatch ^/blog/$ /srv/https/blog.interos.com/index.html
30.1313 + AliasMatch ^/blog$ /srv/https/blog.interos.com/index.html
30.1314 +
30.1315 + AliasMatch ^/sys/code/$ /srv/https/code.interos.com/index.html
30.1316 + AliasMatch ^/sys/code$ /srv/https/code.interos.com/index.html
30.1317 + AliasMatch ^/code/$ /srv/https/code.interos.com/index.html
30.1318 + AliasMatch ^/code$ /srv/https/code.interos.com/index.html
30.1319 +
30.1320 + AliasMatch ^/sys/demo/$ /srv/https/demo.interos.com/index.html
30.1321 + AliasMatch ^/sys/demo$ /srv/https/demo.interos.com/index.html
30.1322 + AliasMatch ^/demo/$ /srv/https/demo.interos.com/index.html
30.1323 + AliasMatch ^/demo$ /srv/https/demo.interos.com/index.html
30.1324 +
30.1325 + AliasMatch ^/sys/e-mail/$ /srv/https/e-mail.interos.com/index.html
30.1326 + AliasMatch ^/sys/e-mail$ /srv/https/e-mail.interos.com/index.html
30.1327 + AliasMatch ^/e-mail/$ /srv/https/e-mail.interos.com/index.html
30.1328 + AliasMatch ^/e-mail$ /srv/https/e-mail.interos.com/index.html
30.1329 +
30.1330 + AliasMatch ^/sys/faq/$ /srv/https/faq.interos.com/index.html
30.1331 + AliasMatch ^/sys/faq$ /srv/https/faq.interos.com/index.html
30.1332 + AliasMatch ^/faq/$ /srv/https/faq.interos.com/index.html
30.1333 + AliasMatch ^/faq$ /srv/https/faq.interos.com/index.html
30.1334 +
30.1335 + AliasMatch ^/sys/gear/$ /srv/https/gear.interos.com/index.html
30.1336 + AliasMatch ^/sys/gear$ /srv/https/gear.interos.com/index.html
30.1337 + AliasMatch ^/gear/$ /srv/https/gear.interos.com/index.html
30.1338 + AliasMatch ^/gear$ /srv/https/gear.interos.com/index.html
30.1339 +
30.1340 + AliasMatch ^/sys/help/$ /srv/https/help.interos.com/index.html
30.1341 + AliasMatch ^/sys/help$ /srv/https/help.interos.com/index.html
30.1342 + AliasMatch ^/help/$ /srv/https/help.interos.com/index.html
30.1343 + AliasMatch ^/help$ /srv/https/help.interos.com/index.html
30.1344 +
30.1345 + AliasMatch ^/sys/main/$ /srv/https/interos.com/sys/main
30.1346 + AliasMatch ^/main/$ /srv/https/interos.com/sys/main
30.1347 + AliasMatch ^/main$ /srv/https/interos.com/sys/main
30.1348 +
30.1349 + AliasMatch ^/sys/login/$ /srv/https/interos.com/sys/login
30.1350 + AliasMatch ^/login/$ /srv/https/interos.com/sys/login
30.1351 + AliasMatch ^/login$ /srv/https/interos.com/sys/login
30.1352 +
30.1353 + AliasMatch ^/sys/new_user/$ /srv/https/interos.com/sys/new_user
30.1354 + AliasMatch ^/new_user/$ /srv/https/interos.com/sys/new_user
30.1355 + AliasMatch ^/new_user$ /srv/https/interos.com/sys/new_user
30.1356 +
30.1357 + AliasMatch ^/sys/welcome/$ /srv/https/interos.com/sys/welcome
30.1358 + AliasMatch ^/welcome/$ /srv/https/interos.com/sys/welcome
30.1359 + AliasMatch ^/welcome$ /srv/https/interos.com/sys/welcome
30.1360 +
30.1361 + AliasMatch ^/sys/welcome_back/$ /srv/https/interos.com/sys/welcome_back
30.1362 + AliasMatch ^/welcome_back/$ /srv/https/interos.com/sys/welcome_back
30.1363 + AliasMatch ^/welcome_back$ /srv/https/interos.com/sys/welcome_back
30.1364 +
30.1365 + AliasMatch ^/sys/top/$ /srv/https/interos.com/sys/top
30.1366 + AliasMatch ^/top/$ /srv/https/interos.com/sys/top
30.1367 + AliasMatch ^/top$ /srv/https/interos.com/sys/top
30.1368 +
30.1369 + AliasMatch ^/sys/content/$ /srv/https/interos.com/sys/content
30.1370 + AliasMatch ^/content/$ /srv/https/interos.com/sys/content
30.1371 + AliasMatch ^/content$ /srv/https/interos.com/sys/content
30.1372 +
30.1373 + AliasMatch ^/sys/bottom/$ /srv/https/interos.com/sys/bottom
30.1374 + AliasMatch ^/bottom/$ /srv/https/interos.com/sys/bottom
30.1375 + AliasMatch ^/bottom$ /srv/https/interos.com/sys/bottom
30.1376 +
30.1377 + AliasMatch ^/sys/new/$ /srv/https/interos.com/sys/new
30.1378 + AliasMatch ^/new/$ /srv/https/interos.com/sys/new
30.1379 + AliasMatch ^/new$ /srv/https/interos.com/sys/new
30.1380 +
30.1381 + AliasMatch ^/sys/open/$ /srv/https/interos.com/sys/open
30.1382 + AliasMatch ^/open/$ /srv/https/interos.com/sys/open
30.1383 + AliasMatch ^/open$ /srv/https/interos.com/sys/open
30.1384 +
30.1385 + AliasMatch ^/sys/next/$ /srv/https/interos.com/sys/next
30.1386 + AliasMatch ^/next/$ /srv/https/interos.com/sys/next
30.1387 + AliasMatch ^/next$ /srv/https/interos.com/sys/next
30.1388 +
30.1389 + AliasMatch ^/sys/settings/$ /srv/https/interos.com/sys/settings
30.1390 + AliasMatch ^/settings/$ /srv/https/interos.com/sys/settings
30.1391 + AliasMatch ^/settings$ /srv/https/interos.com/sys/settings
30.1392 +
30.1393 + AliasMatch ^/sys/menu/$ /srv/https/interos.com/sys/menu
30.1394 + AliasMatch ^/menu/$ /srv/https/interos.com/sys/menu
30.1395 + AliasMatch ^/menu$ /srv/https/interos.com/sys/menu
30.1396 +
30.1397 + AliasMatch ^/sys/user/$ /srv/https/interos.com/sys/user
30.1398 + AliasMatch ^/user/$ /srv/https/interos.com/sys/user
30.1399 + AliasMatch ^/user$ /srv/https/interos.com/sys/user
30.1400 +
30.1401 + AliasMatch ^/sys/logout/$ /srv/https/interos.com/sys/logout
30.1402 + AliasMatch ^/logout/$ /srv/https/interos.com/sys/logout
30.1403 + AliasMatch ^/logout$ /srv/https/interos.com/sys/logout
30.1404 +
30.1405 + AliasMatch ^/sys/interos/$ /srv/https/interos.com/sys/interos
30.1406 + AliasMatch ^/interos/$ /srv/https/interos.com/sys/interos
30.1407 + AliasMatch ^/interos$ /srv/https/interos.com/sys/interos
30.1408 +
30.1409 + AliasMatch ^/sys/middle/$ /srv/https/interos.com/sys/middle
30.1410 + AliasMatch ^/middle/$ /srv/https/interos.com/sys/middle
30.1411 + AliasMatch ^/middle$ /srv/https/interos.com/sys/middle
30.1412 +
30.1413 + AliasMatch ^/sys/xml/files/$ /srv/https/interos.com/sys/xml/files
30.1414 + AliasMatch ^/xml/files/$ /srv/https/interos.com/sys/xml/files
30.1415 + AliasMatch ^/xml/files$ /srv/https/interos.com/sys/xml/files
30.1416 +
30.1417 + AliasMatch ^/sys/xml/user/$ /srv/https/interos.com/sys/xml/user
30.1418 + AliasMatch ^/xml/user/$ /srv/https/interos.com/sys/xml/user
30.1419 + AliasMatch ^/xml/user$ /srv/https/interos.com/sys/xml/user
30.1420 +
30.1421 + <Directory /srv/https/interos.com>
30.1422 + AllowOverride FileInfo Limit
30.1423 + #FastCgiAccessChecker /srv/data/sys/access
30.1424 + </Directory>
30.1425 +
30.1426 + <Directory /srv/https/interos.com/sys>
30.1427 + AllowOverride FileInfo Options
30.1428 + Options ExecCGI FollowSymLinks
30.1429 + <FilesMatch ^(login|new_user|welcome|welcome_back|main|top|content|bottom|new|open|next|settings|menu|user|logout|interos|left|middle|right)$>
30.1430 + SetHandler fastcgi-script
30.1431 + </FilesMatch>
30.1432 + </Directory>
30.1433 +
30.1434 + <Directory /srv/https/interos.com/sys/xml>
30.1435 + <FilesMatch ^(exist|files|open|save|test|user)$>
30.1436 + SetHandler fastcgi-script
30.1437 + </FilesMatch>
30.1438 + </Directory>
30.1439 + </VirtualHost>
30.1440 +
30.1441 + <VirtualHost 208.86.227.235:443>
30.1442 + DocumentRoot "/srv/https/about.interos.org"
30.1443 + ServerName about.interos.org
30.1444 + ServerAdmin sys@interos.org
30.1445 + ErrorLog /var/log/httpd-error.log
30.1446 + TransferLog /var/log/httpd-access.log
30.1447 +
30.1448 + RewriteEngine on
30.1449 +
30.1450 + RewriteRule ^/index\.html$ /sys/markup/about
30.1451 +
30.1452 + RewriteRule ^/css/(.*) /sys/style/$1
30.1453 + RewriteRule ^/images/(.*) /sys/images/$1
30.1454 + RewriteRule ^/js/(.*) /sys/js/$1
30.1455 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1456 + RewriteRule ^/style/(.*) /sys/style/$1
30.1457 +
30.1458 + Redirect /about https://about.interos.org/
30.1459 + Redirect /about/ https://about.interos.org/
30.1460 +
30.1461 + Redirect /blog https://blog.interos.org/
30.1462 + Redirect /blog/ https://blog.interos.org/
30.1463 +
30.1464 + Redirect /code/ https://code.interos.org/
30.1465 + Redirect /code https://code.interos.org/
30.1466 +
30.1467 + Redirect /e-mail/ https://e-mail.interos.org/
30.1468 + Redirect /e-mail https://e-mail.interos.org/
30.1469 +
30.1470 + Redirect /faq/ https://faq.interos.org/
30.1471 + Redirect /faq https://faq.interos.org/
30.1472 +
30.1473 + Redirect /gear/ https://gear.interos.org/
30.1474 + Redirect /gear https://gear.interos.org/
30.1475 + </VirtualHost>
30.1476 +
30.1477 + <VirtualHost 208.86.227.235:443>
30.1478 + DocumentRoot "/srv/https/about.interos.com"
30.1479 + ServerName about.interos.com
30.1480 + ErrorLog /var/log/httpd-error.log
30.1481 + TransferLog /var/log/httpd-access.log
30.1482 +
30.1483 + RewriteEngine on
30.1484 +
30.1485 + RewriteRule ^/index\.html$ /sys/markup/about
30.1486 +
30.1487 + RewriteRule ^/css/(.*) /sys/style/$1
30.1488 + RewriteRule ^/images/(.*) /sys/images/$1
30.1489 + RewriteRule ^/js/(.*) /sys/js/$1
30.1490 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1491 + RewriteRule ^/style/(.*) /sys/style/$1
30.1492 +
30.1493 + Redirect /about https://about.interos.com/
30.1494 + Redirect /about/ https://about.interos.com/
30.1495 +
30.1496 + Redirect /blog https://blog.interos.com/
30.1497 + Redirect /blog/ https://blog.interos.com/
30.1498 +
30.1499 + Redirect /code/ https://code.interos.com/
30.1500 + Redirect /code https://code.interos.com/
30.1501 +
30.1502 + Redirect /demo/ https://demo.interos.com/
30.1503 + Redirect /demo https://demo.interos.com/
30.1504 +
30.1505 + Redirect /e-mail/ https://e-mail.interos.com/
30.1506 + Redirect /e-mail https://e-mail.interos.com/
30.1507 +
30.1508 + Redirect /faq/ https://faq.interos.com/
30.1509 + Redirect /faq https://faq.interos.com/
30.1510 +
30.1511 + Redirect /gear/ https://gear.interos.com/
30.1512 + Redirect /gear https://gear.interos.com/
30.1513 +
30.1514 + Redirect /help/ https://help.interos.com/
30.1515 + Redirect /help https://help.interos.com/
30.1516 +
30.1517 + Redirect /login/ https://login.interos.com/
30.1518 + Redirect /login https://login.interos.com/
30.1519 + </VirtualHost>
30.1520 +
30.1521 + <VirtualHost 208.86.227.235:443>
30.1522 + DocumentRoot "/srv/https/blog.interos.org"
30.1523 + ServerName blog.interos.org
30.1524 + ServerAdmin sys@interos.org
30.1525 + ErrorLog /var/log/httpd-error.log
30.1526 + TransferLog /var/log/httpd-access.log
30.1527 +
30.1528 + RewriteEngine on
30.1529 +
30.1530 + RewriteRule ^/index\.html$ /sys/markup/blog
30.1531 +
30.1532 + RewriteRule ^/css/(.*) /sys/style/$1
30.1533 + RewriteRule ^/images/(.*) /sys/images/$1
30.1534 + RewriteRule ^/js/(.*) /sys/js/$1
30.1535 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1536 + RewriteRule ^/style/(.*) /sys/style/$1
30.1537 +
30.1538 + Redirect /about https://about.interos.org/
30.1539 + Redirect /about/ https://about.interos.org/
30.1540 +
30.1541 + Redirect /blog https://blog.interos.org/
30.1542 + Redirect /blog/ https://blog.interos.org/
30.1543 +
30.1544 + Redirect /code/ https://code.interos.org/
30.1545 + Redirect /code https://code.interos.org/
30.1546 +
30.1547 + Redirect /e-mail/ https://e-mail.interos.org/
30.1548 + Redirect /e-mail https://e-mail.interos.org/
30.1549 +
30.1550 + Redirect /faq/ https://faq.interos.org/
30.1551 + Redirect /faq https://faq.interos.org/
30.1552 + </VirtualHost>
30.1553 +
30.1554 + <VirtualHost 208.86.227.235:443>
30.1555 + DocumentRoot "/srv/https/blog.interos.com"
30.1556 + ServerName blog.interos.com
30.1557 + ErrorLog /var/log/httpd-error.log
30.1558 + TransferLog /var/log/httpd-access.log
30.1559 +
30.1560 + RewriteEngine on
30.1561 +
30.1562 + RewriteRule ^/index\.html$ /sys/markup/blog
30.1563 +
30.1564 + RewriteRule ^/css/(.*) /sys/style/$1
30.1565 + RewriteRule ^/images/(.*) /sys/images/$1
30.1566 + RewriteRule ^/js/(.*) /sys/js/$1
30.1567 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1568 + RewriteRule ^/style/(.*) /sys/style/$1
30.1569 +
30.1570 + Redirect /about/ https://about.interos.com/
30.1571 + Redirect /about https://about.interos.com/
30.1572 +
30.1573 + Redirect /blog/ https://blog.interos.com/
30.1574 + Redirect /blog https://blog.interos.com/
30.1575 +
30.1576 + Redirect /code/ https://code.interos.com/
30.1577 + Redirect /code https://code.interos.com/
30.1578 +
30.1579 + Redirect /demo/ https://demo.interos.com/
30.1580 + Redirect /demo https://demo.interos.com/
30.1581 +
30.1582 + Redirect /e-mail/ https://e-mail.interos.com/
30.1583 + Redirect /e-mail https://e-mail.interos.com/
30.1584 +
30.1585 + Redirect /faq/ https://faq.interos.com/
30.1586 + Redirect /faq https://faq.interos.com/
30.1587 +
30.1588 + Redirect /gear/ https://gear.interos.com/
30.1589 + Redirect /gear https://gear.interos.com/
30.1590 +
30.1591 + Redirect /help/ https://help.interos.com/
30.1592 + Redirect /help https://help.interos.com/
30.1593 +
30.1594 + Redirect /login/ https://login.interos.com/
30.1595 + Redirect /login https://login.interos.com/
30.1596 + </VirtualHost>
30.1597 +
30.1598 + <VirtualHost 208.86.227.235:443>
30.1599 + DocumentRoot "/srv/https/code.interos.org"
30.1600 + ServerName code.interos.org
30.1601 + ServerAdmin sys@interos.org
30.1602 + ErrorLog /var/log/httpd-error.log
30.1603 + TransferLog /var/log/httpd-access.log
30.1604 +
30.1605 + RewriteEngine on
30.1606 +
30.1607 + RewriteRule ^/index\.html$ /sys/markup/code
30.1608 +
30.1609 + RewriteRule ^/css/(.*) /sys/style/$1
30.1610 + RewriteRule ^/images/(.*) /sys/images/$1
30.1611 + RewriteRule ^/js/(.*) /sys/js/$1
30.1612 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1613 + RewriteRule ^/style/(.*) /sys/style/$1
30.1614 +
30.1615 + Redirect /about https://about.interos.org/
30.1616 + Redirect /about/ https://about.interos.org/
30.1617 +
30.1618 + Redirect /blog https://blog.interos.org/
30.1619 + Redirect /blog/ https://blog.interos.org/
30.1620 +
30.1621 + Redirect /code/ https://code.interos.org/
30.1622 + Redirect /code https://code.interos.org/
30.1623 +
30.1624 + Redirect /e-mail/ https://e-mail.interos.org/
30.1625 + Redirect /e-mail https://e-mail.interos.org/
30.1626 +
30.1627 + Redirect /faq/ https://faq.interos.org/
30.1628 + Redirect /faq https://faq.interos.org/
30.1629 + </VirtualHost>
30.1630 +
30.1631 + <VirtualHost 208.86.227.235:443>
30.1632 + DocumentRoot "/srv/https/code.interos.com"
30.1633 + ServerName code.interos.com
30.1634 + ErrorLog /var/log/httpd-error.log
30.1635 + TransferLog /var/log/httpd-access.log
30.1636 +
30.1637 + RewriteEngine on
30.1638 +
30.1639 + RewriteRule ^/index\.html$ /sys/markup/code
30.1640 +
30.1641 + RewriteRule ^/css/(.*) /sys/style/$1
30.1642 + RewriteRule ^/images/(.*) /sys/images/$1
30.1643 + RewriteRule ^/js/(.*) /sys/js/$1
30.1644 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1645 + RewriteRule ^/style/(.*) /sys/style/$1
30.1646 +
30.1647 + Redirect /about/ https://about.interos.com/
30.1648 + Redirect /about https://about.interos.com/
30.1649 +
30.1650 + Redirect /blog/ https://blog.interos.com/
30.1651 + Redirect /blog https://blog.interos.com/
30.1652 +
30.1653 + Redirect /code/ https://code.interos.com/
30.1654 + Redirect /code https://code.interos.com/
30.1655 +
30.1656 + Redirect /demo/ https://demo.interos.com/
30.1657 + Redirect /demo https://demo.interos.com/
30.1658 +
30.1659 + Redirect /e-mail/ https://e-mail.interos.com/
30.1660 + Redirect /e-mail https://e-mail.interos.com/
30.1661 +
30.1662 + Redirect /faq/ https://faq.interos.com/
30.1663 + Redirect /faq https://faq.interos.com/
30.1664 +
30.1665 + Redirect /gear/ https://gear.interos.com/
30.1666 + Redirect /gear https://gear.interos.com/
30.1667 +
30.1668 + Redirect /help/ https://help.interos.com/
30.1669 + Redirect /help https://help.interos.com/
30.1670 +
30.1671 + Redirect /login/ https://login.interos.com/
30.1672 + Redirect /login https://login.interos.com/
30.1673 + </VirtualHost>
30.1674 +
30.1675 + <VirtualHost 208.86.227.235:443>
30.1676 + DocumentRoot "/srv/https/demo.interos.com"
30.1677 + ServerName demo.interos.com
30.1678 + ErrorLog /var/log/httpd-error.log
30.1679 + TransferLog /var/log/httpd-access.log
30.1680 +
30.1681 + RewriteEngine on
30.1682 +
30.1683 + RewriteRule ^/index\.html$ /sys/markup/demo
30.1684 +
30.1685 + RewriteRule ^/css/(.*) /sys/style/$1
30.1686 + RewriteRule ^/images/(.*) /sys/images/$1
30.1687 + RewriteRule ^/js/(.*) /sys/js/$1
30.1688 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1689 + RewriteRule ^/style/(.*) /sys/style/$1
30.1690 +
30.1691 + Redirect /about/ https://about.interos.com/
30.1692 + Redirect /about https://about.interos.com/
30.1693 +
30.1694 + Redirect /blog/ https://blog.interos.com/
30.1695 + Redirect /blog https://blog.interos.com/
30.1696 +
30.1697 + Redirect /code/ https://code.interos.com/
30.1698 + Redirect /code https://code.interos.com/
30.1699 +
30.1700 + Redirect /demo/ https://demo.interos.com/
30.1701 + Redirect /demo https://demo.interos.com/
30.1702 +
30.1703 + Redirect /e-mail/ https://e-mail.interos.com/
30.1704 + Redirect /e-mail https://e-mail.interos.com/
30.1705 +
30.1706 + Redirect /faq/ https://faq.interos.com/
30.1707 + Redirect /faq https://faq.interos.com/
30.1708 +
30.1709 + Redirect /gear/ https://gear.interos.com/
30.1710 + Redirect /gear https://gear.interos.com/
30.1711 +
30.1712 + Redirect /help/ https://help.interos.com/
30.1713 + Redirect /help https://help.interos.com/
30.1714 +
30.1715 + Redirect /login/ https://login.interos.com/
30.1716 + Redirect /login https://login.interos.com/
30.1717 + </VirtualHost>
30.1718 +
30.1719 + <VirtualHost 208.86.227.235:443>
30.1720 + DocumentRoot "/srv/https/e-mail.interos.org"
30.1721 + ServerName e-mail.interos.org
30.1722 + ServerAdmin sys@interos.org
30.1723 + ErrorLog /var/log/httpd-error.log
30.1724 + TransferLog /var/log/httpd-access.log
30.1725 +
30.1726 + RewriteEngine on
30.1727 +
30.1728 + RewriteRule ^/index\.html$ /sys/markup/e-mail
30.1729 +
30.1730 + RewriteRule ^/css/(.*) /sys/style/$1
30.1731 + RewriteRule ^/images/(.*) /sys/images/$1
30.1732 + RewriteRule ^/js/(.*) /sys/js/$1
30.1733 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1734 + RewriteRule ^/style/(.*) /sys/style/$1
30.1735 +
30.1736 + Redirect /about https://about.interos.org/
30.1737 + Redirect /about/ https://about.interos.org/
30.1738 +
30.1739 + Redirect /blog https://blog.interos.org/
30.1740 + Redirect /blog/ https://blog.interos.org/
30.1741 +
30.1742 + Redirect /code/ https://code.interos.org/
30.1743 + Redirect /code https://code.interos.org/
30.1744 +
30.1745 + Redirect /e-mail/ https://e-mail.interos.org/
30.1746 + Redirect /e-mail https://e-mail.interos.org/
30.1747 +
30.1748 + Redirect /faq/ https://faq.interos.org/
30.1749 + Redirect /faq https://faq.interos.org/
30.1750 +
30.1751 + Redirect /gear/ https://gear.interos.org/
30.1752 + Redirect /gear https://gear.interos.org/
30.1753 + </VirtualHost>
30.1754 +
30.1755 + <VirtualHost 208.86.227.235:443>
30.1756 + DocumentRoot "/srv/https/e-mail.interos.com"
30.1757 + ServerName e-mail.interos.com
30.1758 + ErrorLog /var/log/httpd-error.log
30.1759 + TransferLog /var/log/httpd-access.log
30.1760 +
30.1761 + RewriteEngine on
30.1762 +
30.1763 + RewriteRule ^/index\.html$ /sys/markup/e-mail
30.1764 +
30.1765 + RewriteRule ^/css/(.*) /sys/style/$1
30.1766 + RewriteRule ^/images/(.*) /sys/images/$1
30.1767 + RewriteRule ^/js/(.*) /sys/js/$1
30.1768 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1769 + RewriteRule ^/style/(.*) /sys/style/$1
30.1770 +
30.1771 + Redirect /about/ https://about.interos.com/
30.1772 + Redirect /about https://about.interos.com/
30.1773 +
30.1774 + Redirect /blog/ https://blog.interos.com/
30.1775 + Redirect /blog https://blog.interos.com/
30.1776 +
30.1777 + Redirect /code/ https://code.interos.com/
30.1778 + Redirect /code https://code.interos.com/
30.1779 +
30.1780 + Redirect /demo/ https://demo.interos.com/
30.1781 + Redirect /demo https://demo.interos.com/
30.1782 +
30.1783 + Redirect /e-mail/ https://e-mail.interos.com/
30.1784 + Redirect /e-mail https://e-mail.interos.com/
30.1785 +
30.1786 + Redirect /faq/ https://faq.interos.com/
30.1787 + Redirect /faq https://faq.interos.com/
30.1788 +
30.1789 + Redirect /gear/ https://gear.interos.com/
30.1790 + Redirect /gear https://gear.interos.com/
30.1791 +
30.1792 + Redirect /help/ https://help.interos.com/
30.1793 + Redirect /help https://help.interos.com/
30.1794 +
30.1795 + Redirect /login/ https://login.interos.com/
30.1796 + Redirect /login https://login.interos.com/
30.1797 + </VirtualHost>
30.1798 +
30.1799 + <VirtualHost 208.86.227.235:443>
30.1800 + DocumentRoot "/srv/https/faq.interos.org"
30.1801 + ServerName faq.interos.org
30.1802 + ServerAdmin sys@interos.org
30.1803 + ErrorLog /var/log/httpd-error.log
30.1804 + TransferLog /var/log/httpd-access.log
30.1805 +
30.1806 + RewriteEngine on
30.1807 +
30.1808 + RewriteRule ^/index\.html$ /sys/markup/faq
30.1809 +
30.1810 + RewriteRule ^/css/(.*) /sys/style/$1
30.1811 + RewriteRule ^/images/(.*) /sys/images/$1
30.1812 + RewriteRule ^/js/(.*) /sys/js/$1
30.1813 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1814 + RewriteRule ^/style/(.*) /sys/style/$1
30.1815 +
30.1816 + Redirect /about https://about.interos.org/
30.1817 + Redirect /about/ https://about.interos.org/
30.1818 +
30.1819 + Redirect /blog https://blog.interos.org/
30.1820 + Redirect /blog/ https://blog.interos.org/
30.1821 +
30.1822 + Redirect /code/ https://code.interos.org/
30.1823 + Redirect /code https://code.interos.org/
30.1824 +
30.1825 + Redirect /e-mail/ https://e-mail.interos.org/
30.1826 + Redirect /e-mail https://e-mail.interos.org/
30.1827 +
30.1828 + Redirect /faq/ https://faq.interos.org/
30.1829 + Redirect /faq https://faq.interos.org/
30.1830 +
30.1831 + Redirect /gear/ https://gear.interos.org/
30.1832 + Redirect /gear https://gear.interos.org/
30.1833 + </VirtualHost>
30.1834 +
30.1835 + <VirtualHost 208.86.227.235:443>
30.1836 + DocumentRoot "/srv/https/faq.interos.com"
30.1837 + ServerName faq.interos.com
30.1838 + ErrorLog /var/log/httpd-error.log
30.1839 + TransferLog /var/log/httpd-access.log
30.1840 +
30.1841 + RewriteEngine on
30.1842 +
30.1843 + RewriteRule ^/index\.html$ /sys/markup/faq
30.1844 +
30.1845 + RewriteRule ^/css/(.*) /sys/style/$1
30.1846 + RewriteRule ^/images/(.*) /sys/images/$1
30.1847 + RewriteRule ^/js/(.*) /sys/js/$1
30.1848 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1849 + RewriteRule ^/style/(.*) /sys/style/$1
30.1850 +
30.1851 + Redirect /about/ https://about.interos.com/
30.1852 + Redirect /about https://about.interos.com/
30.1853 +
30.1854 + Redirect /blog/ https://blog.interos.com/
30.1855 + Redirect /blog https://blog.interos.com/
30.1856 +
30.1857 + Redirect /code/ https://code.interos.com/
30.1858 + Redirect /code https://code.interos.com/
30.1859 +
30.1860 + Redirect /demo/ https://demo.interos.com/
30.1861 + Redirect /demo https://demo.interos.com/
30.1862 +
30.1863 + Redirect /e-mail/ https://e-mail.interos.com/
30.1864 + Redirect /e-mail https://e-mail.interos.com/
30.1865 +
30.1866 + Redirect /faq/ https://faq.interos.com/
30.1867 + Redirect /faq https://faq.interos.com/
30.1868 +
30.1869 + Redirect /gear/ https://gear.interos.com/
30.1870 + Redirect /gear https://gear.interos.com/
30.1871 +
30.1872 + Redirect /help/ https://help.interos.com/
30.1873 + Redirect /help https://help.interos.com/
30.1874 +
30.1875 + Redirect /login/ https://login.interos.com/
30.1876 + Redirect /login https://login.interos.com/
30.1877 + </VirtualHost>
30.1878 +
30.1879 + <VirtualHost 208.86.227.235:443>
30.1880 + DocumentRoot "/srv/https/gear.interos.org"
30.1881 + ServerName gear.interos.org
30.1882 + ServerAdmin sys@interos.org
30.1883 + ErrorLog /var/log/httpd-error.log
30.1884 + TransferLog /var/log/httpd-access.log
30.1885 +
30.1886 + RewriteEngine on
30.1887 +
30.1888 + RewriteRule ^/index\.html$ /sys/markup/gear
30.1889 +
30.1890 + RewriteRule ^/css/(.*) /sys/style/$1
30.1891 + RewriteRule ^/images/(.*) /sys/images/$1
30.1892 + RewriteRule ^/js/(.*) /sys/js/$1
30.1893 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1894 + RewriteRule ^/style/(.*) /sys/style/$1
30.1895 +
30.1896 + Redirect /about https://about.interos.org/
30.1897 + Redirect /about/ https://about.interos.org/
30.1898 +
30.1899 + Redirect /blog https://blog.interos.org/
30.1900 + Redirect /blog/ https://blog.interos.org/
30.1901 +
30.1902 + Redirect /code/ https://code.interos.org/
30.1903 + Redirect /code https://code.interos.org/
30.1904 +
30.1905 + Redirect /e-mail/ https://e-mail.interos.org/
30.1906 + Redirect /e-mail https://e-mail.interos.org/
30.1907 +
30.1908 + Redirect /faq/ https://faq.interos.org/
30.1909 + Redirect /faq https://faq.interos.org/
30.1910 +
30.1911 + Redirect /gear/ https://gear.interos.org/
30.1912 + Redirect /gear https://gear.interos.org/
30.1913 + </VirtualHost>
30.1914 +
30.1915 + <VirtualHost 208.86.227.235:443>
30.1916 + DocumentRoot "/srv/https/gear.interos.com"
30.1917 + ServerName gear.interos.com
30.1918 + ErrorLog /var/log/httpd-error.log
30.1919 + TransferLog /var/log/httpd-access.log
30.1920 +
30.1921 + RewriteEngine on
30.1922 +
30.1923 + RewriteRule ^/index\.html$ /sys/markup/gear
30.1924 +
30.1925 + RewriteRule ^/css/(.*) /sys/style/$1
30.1926 + RewriteRule ^/images/(.*) /sys/images/$1
30.1927 + RewriteRule ^/js/(.*) /sys/js/$1
30.1928 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1929 + RewriteRule ^/style/(.*) /sys/style/$1
30.1930 +
30.1931 + Redirect /about/ https://about.interos.com/
30.1932 + Redirect /about https://about.interos.com/
30.1933 +
30.1934 + Redirect /blog/ https://blog.interos.com/
30.1935 + Redirect /blog https://blog.interos.com/
30.1936 +
30.1937 + Redirect /code/ https://code.interos.com/
30.1938 + Redirect /code https://code.interos.com/
30.1939 +
30.1940 + Redirect /demo/ https://demo.interos.com/
30.1941 + Redirect /demo https://demo.interos.com/
30.1942 +
30.1943 + Redirect /e-mail/ https://e-mail.interos.com/
30.1944 + Redirect /e-mail https://e-mail.interos.com/
30.1945 +
30.1946 + Redirect /faq/ https://faq.interos.com/
30.1947 + Redirect /faq https://faq.interos.com/
30.1948 +
30.1949 + Redirect /gear/ https://gear.interos.com/
30.1950 + Redirect /gear https://gear.interos.com/
30.1951 +
30.1952 + Redirect /help/ https://help.interos.com/
30.1953 + Redirect /help https://help.interos.com/
30.1954 +
30.1955 + Redirect /login/ https://login.interos.com/
30.1956 + Redirect /login https://login.interos.com/
30.1957 + </VirtualHost>
30.1958 +
30.1959 + <VirtualHost 208.86.227.235:443>
30.1960 + DocumentRoot "/srv/https/help.interos.com"
30.1961 + ServerName help.interos.com
30.1962 + ErrorLog /var/log/httpd-error.log
30.1963 + TransferLog /var/log/httpd-access.log
30.1964 +
30.1965 + RewriteEngine on
30.1966 +
30.1967 + RewriteRule ^/index\.html$ /sys/markup/help
30.1968 +
30.1969 + RewriteRule ^/css/(.*) /sys/style/$1
30.1970 + RewriteRule ^/images/(.*) /sys/images/$1
30.1971 + RewriteRule ^/js/(.*) /sys/js/$1
30.1972 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.1973 + RewriteRule ^/style/(.*) /sys/style/$1
30.1974 +
30.1975 + Redirect /about/ https://about.interos.com/
30.1976 + Redirect /about https://about.interos.com/
30.1977 +
30.1978 + Redirect /blog/ https://blog.interos.com/
30.1979 + Redirect /blog https://blog.interos.com/
30.1980 +
30.1981 + Redirect /code/ https://code.interos.com/
30.1982 + Redirect /code https://code.interos.com/
30.1983 +
30.1984 + Redirect /demo/ https://demo.interos.com/
30.1985 + Redirect /demo https://demo.interos.com/
30.1986 +
30.1987 + Redirect /e-mail/ https://e-mail.interos.com/
30.1988 + Redirect /e-mail https://e-mail.interos.com/
30.1989 +
30.1990 + Redirect /faq/ https://faq.interos.com/
30.1991 + Redirect /faq https://faq.interos.com/
30.1992 +
30.1993 + Redirect /gear/ https://gear.interos.com/
30.1994 + Redirect /gear https://gear.interos.com/
30.1995 +
30.1996 + Redirect /help/ https://help.interos.com/
30.1997 + Redirect /help https://help.interos.com/
30.1998 +
30.1999 + Redirect /login/ https://login.interos.com/
30.2000 + Redirect /login https://login.interos.com/
30.2001 + </VirtualHost>
30.2002 +
30.2003 + <VirtualHost 208.86.227.235:443>
30.2004 + DocumentRoot "/srv/https/login.interos.com"
30.2005 + ServerName login.interos.com
30.2006 + ErrorLog /var/log/httpd-error.log
30.2007 + TransferLog /var/log/httpd-access.log
30.2008 +
30.2009 + RewriteEngine on
30.2010 +
30.2011 + RewriteRule ^/index\.html$ https://www.interos.com/login
30.2012 +
30.2013 + RewriteRule ^/css/(.*) /sys/style/$1
30.2014 + RewriteRule ^/images/(.*) /sys/images/$1
30.2015 + RewriteRule ^/js/(.*) /sys/js/$1
30.2016 + RewriteRule ^/markup/(.*) /sys/markup/$1
30.2017 + RewriteRule ^/style/(.*) /sys/style/$1
30.2018 +
30.2019 + Redirect /about/ https://about.interos.com/
30.2020 + Redirect /about https://about.interos.com/
30.2021 +
30.2022 + Redirect /blog/ https://blog.interos.com/
30.2023 + Redirect /blog https://blog.interos.com/
30.2024 +
30.2025 + Redirect /code/ https://code.interos.com/
30.2026 + Redirect /code https://code.interos.com/
30.2027 +
30.2028 + Redirect /demo/ https://demo.interos.com/
30.2029 + Redirect /demo https://demo.interos.com/
30.2030 +
30.2031 + Redirect /e-mail/ https://e-mail.interos.com/
30.2032 + Redirect /e-mail https://e-mail.interos.com/
30.2033 +
30.2034 + Redirect /faq/ https://faq.interos.com/
30.2035 + Redirect /faq https://faq.interos.com/
30.2036 +
30.2037 + Redirect /gear/ https://gear.interos.com/
30.2038 + Redirect /gear https://gear.interos.com/
30.2039 +
30.2040 + Redirect /help/ https://help.interos.com/
30.2041 + Redirect /help https://help.interos.com/
30.2042 +
30.2043 + Redirect /login/ https://www.interos.com/login
30.2044 + Redirect /login https://www.interos.com/login
30.2045 + </VirtualHost>
30.2046 +</IfDefine>
30.2047 +
30.2048 +<IfModule mod_gzip.c>
30.2049 + mod_gzip_on Yes
30.2050 + mod_gzip_dechunk Yes
30.2051 + mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
30.2052 + mod_gzip_item_include handler ^cgi-script$
30.2053 + mod_gzip_item_include handler ^fastcgi-script$
30.2054 + mod_gzip_item_include mime ^text/.*
30.2055 + mod_gzip_item_include mime ^application/x-javascript.*
30.2056 + mod_gzip_item_exclude mime ^image/.*
30.2057 + mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
30.2058 +</IfModule>
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
31.2 +++ b/dtd/xhtml1-borderless-frameset.dtd Sat May 01 16:19:36 2010 -0400
31.3 @@ -0,0 +1,1246 @@
31.4 +<!--
31.5 + Extensible HTML version 1.0 Borderless Frameset DTD
31.6 +
31.7 + This is the same as Extensible HTML version 1.0 Frameset except for
31.8 + chamges indicating for framesets to be displayed borderless.
31.9 +
31.10 +-->
31.11 +
31.12 +<!--
31.13 + Extensible HTML version 1.0 Frameset DTD
31.14 +
31.15 + This is the same as HTML 4 Frameset except for
31.16 + changes due to the differences between XML and SGML.
31.17 +
31.18 + Namespace = http://www.w3.org/1999/xhtml
31.19 +
31.20 + For further information, see: http://www.w3.org/TR/xhtml1
31.21 +
31.22 + Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
31.23 + All Rights Reserved.
31.24 +
31.25 + This DTD module is identified by the PUBLIC and SYSTEM identifiers:
31.26 +
31.27 + PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
31.28 + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
31.29 +
31.30 + $Revision: 1.2 $
31.31 + $Date: 2002/08/01 18:37:55 $
31.32 +
31.33 +-->
31.34 +
31.35 +<!--================ Character mnemonic entities =========================-->
31.36 +
31.37 +<!ENTITY % HTMLlat1 PUBLIC
31.38 + "-//W3C//ENTITIES Latin 1 for XHTML//EN"
31.39 + "xhtml-lat1.ent">
31.40 +%HTMLlat1;
31.41 +
31.42 +<!ENTITY % HTMLsymbol PUBLIC
31.43 + "-//W3C//ENTITIES Symbols for XHTML//EN"
31.44 + "xhtml-symbol.ent">
31.45 +%HTMLsymbol;
31.46 +
31.47 +<!ENTITY % HTMLspecial PUBLIC
31.48 + "-//W3C//ENTITIES Special for XHTML//EN"
31.49 + "xhtml-special.ent">
31.50 +%HTMLspecial;
31.51 +
31.52 +<!--================== Imported Names ====================================-->
31.53 +
31.54 +<!ENTITY % ContentType "CDATA">
31.55 + <!-- media type, as per [RFC2045] -->
31.56 +
31.57 +<!ENTITY % ContentTypes "CDATA">
31.58 + <!-- comma-separated list of media types, as per [RFC2045] -->
31.59 +
31.60 +<!ENTITY % Charset "CDATA">
31.61 + <!-- a character encoding, as per [RFC2045] -->
31.62 +
31.63 +<!ENTITY % Charsets "CDATA">
31.64 + <!-- a space separated list of character encodings, as per [RFC2045] -->
31.65 +
31.66 +<!ENTITY % LanguageCode "NMTOKEN">
31.67 + <!-- a language code, as per [RFC3066] -->
31.68 +
31.69 +<!ENTITY % Character "CDATA">
31.70 + <!-- a single character, as per section 2.2 of [XML] -->
31.71 +
31.72 +<!ENTITY % Number "CDATA">
31.73 + <!-- one or more digits -->
31.74 +
31.75 +<!ENTITY % LinkTypes "CDATA">
31.76 + <!-- space-separated list of link types -->
31.77 +
31.78 +<!ENTITY % MediaDesc "CDATA">
31.79 + <!-- single or comma-separated list of media descriptors -->
31.80 +
31.81 +<!ENTITY % URI "CDATA">
31.82 + <!-- a Uniform Resource Identifier, see [RFC2396] -->
31.83 +
31.84 +<!ENTITY % UriList "CDATA">
31.85 + <!-- a space separated list of Uniform Resource Identifiers -->
31.86 +
31.87 +<!ENTITY % Datetime "CDATA">
31.88 + <!-- date and time information. ISO date format -->
31.89 +
31.90 +<!ENTITY % Script "CDATA">
31.91 + <!-- script expression -->
31.92 +
31.93 +<!ENTITY % StyleSheet "CDATA">
31.94 + <!-- style sheet data -->
31.95 +
31.96 +<!ENTITY % Text "CDATA">
31.97 + <!-- used for titles etc. -->
31.98 +
31.99 +<!ENTITY % FrameTarget "NMTOKEN">
31.100 + <!-- render in this frame -->
31.101 +
31.102 +<!ENTITY % Length "CDATA">
31.103 + <!-- nn for pixels or nn% for percentage length -->
31.104 +
31.105 +<!ENTITY % MultiLength "CDATA">
31.106 + <!-- pixel, percentage, or relative -->
31.107 +
31.108 +<!ENTITY % MultiLengths "CDATA">
31.109 + <!-- comma-separated list of MultiLength -->
31.110 +
31.111 +<!ENTITY % Pixels "CDATA">
31.112 + <!-- integer representing length in pixels -->
31.113 +
31.114 +<!-- these are used for image maps -->
31.115 +
31.116 +<!ENTITY % Shape "(rect|circle|poly|default)">
31.117 +
31.118 +<!ENTITY % Coords "CDATA">
31.119 + <!-- comma separated list of lengths -->
31.120 +
31.121 +<!-- used for object, applet, img, input and iframe -->
31.122 +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
31.123 +
31.124 +<!-- a color using sRGB: #RRGGBB as Hex values -->
31.125 +<!ENTITY % Color "CDATA">
31.126 +
31.127 +<!-- There are also 16 widely known color names with their sRGB values:
31.128 +
31.129 + Black = #000000 Green = #008000
31.130 + Silver = #C0C0C0 Lime = #00FF00
31.131 + Gray = #808080 Olive = #808000
31.132 + White = #FFFFFF Yellow = #FFFF00
31.133 + Maroon = #800000 Navy = #000080
31.134 + Red = #FF0000 Blue = #0000FF
31.135 + Purple = #800080 Teal = #008080
31.136 + Fuchsia= #FF00FF Aqua = #00FFFF
31.137 +-->
31.138 +
31.139 +<!--=================== Generic Attributes ===============================-->
31.140 +
31.141 +<!-- core attributes common to most elements
31.142 + id document-wide unique id
31.143 + class space separated list of classes
31.144 + style associated style info
31.145 + title advisory title/amplification
31.146 +-->
31.147 +<!ENTITY % coreattrs
31.148 + "id ID #IMPLIED
31.149 + class CDATA #IMPLIED
31.150 + style %StyleSheet; #IMPLIED
31.151 + title %Text; #IMPLIED"
31.152 + >
31.153 +
31.154 +<!-- internationalization attributes
31.155 + lang language code (backwards compatible)
31.156 + xml:lang language code (as per XML 1.0 spec)
31.157 + dir direction for weak/neutral text
31.158 +-->
31.159 +<!ENTITY % i18n
31.160 + "lang %LanguageCode; #IMPLIED
31.161 + xml:lang %LanguageCode; #IMPLIED
31.162 + dir (ltr|rtl) #IMPLIED"
31.163 + >
31.164 +
31.165 +<!-- attributes for common UI events
31.166 + onclick a pointer button was clicked
31.167 + ondblclick a pointer button was double clicked
31.168 + onmousedown a pointer button was pressed down
31.169 + onmouseup a pointer button was released
31.170 + onmousemove a pointer was moved onto the element
31.171 + onmouseout a pointer was moved away from the element
31.172 + onkeypress a key was pressed and released
31.173 + onkeydown a key was pressed down
31.174 + onkeyup a key was released
31.175 +-->
31.176 +<!ENTITY % events
31.177 + "onclick %Script; #IMPLIED
31.178 + ondblclick %Script; #IMPLIED
31.179 + onmousedown %Script; #IMPLIED
31.180 + onmouseup %Script; #IMPLIED
31.181 + onmouseover %Script; #IMPLIED
31.182 + onmousemove %Script; #IMPLIED
31.183 + onmouseout %Script; #IMPLIED
31.184 + onkeypress %Script; #IMPLIED
31.185 + onkeydown %Script; #IMPLIED
31.186 + onkeyup %Script; #IMPLIED"
31.187 + >
31.188 +
31.189 +<!-- attributes for elements that can get the focus
31.190 + accesskey accessibility key character
31.191 + tabindex position in tabbing order
31.192 + onfocus the element got the focus
31.193 + onblur the element lost the focus
31.194 +-->
31.195 +<!ENTITY % focus
31.196 + "accesskey %Character; #IMPLIED
31.197 + tabindex %Number; #IMPLIED
31.198 + onfocus %Script; #IMPLIED
31.199 + onblur %Script; #IMPLIED"
31.200 + >
31.201 +
31.202 +<!ENTITY % attrs "%coreattrs; %i18n; %events;">
31.203 +
31.204 +<!-- text alignment for p, div, h1-h6. The default is
31.205 + align="left" for ltr headings, "right" for rtl -->
31.206 +
31.207 +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
31.208 +
31.209 +<!--=================== Text Elements ====================================-->
31.210 +
31.211 +<!ENTITY % special.extra
31.212 + "object | applet | img | map | iframe">
31.213 +
31.214 +<!ENTITY % special.basic
31.215 + "br | span | bdo">
31.216 +
31.217 +<!ENTITY % special
31.218 + "%special.basic; | %special.extra;">
31.219 +
31.220 +<!ENTITY % fontstyle.extra "big | small | font | basefont">
31.221 +
31.222 +<!ENTITY % fontstyle.basic "tt | i | b | u
31.223 + | s | strike ">
31.224 +
31.225 +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
31.226 +
31.227 +<!ENTITY % phrase.extra "sub | sup">
31.228 +<!ENTITY % phrase.basic "em | strong | dfn | code | q |
31.229 + samp | kbd | var | cite | abbr | acronym">
31.230 +
31.231 +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
31.232 +
31.233 +<!ENTITY % inline.forms "input | select | textarea | label | button">
31.234 +
31.235 +<!-- these can occur at block or inline level -->
31.236 +<!ENTITY % misc.inline "ins | del | script">
31.237 +
31.238 +<!-- these can only occur at block level -->
31.239 +<!ENTITY % misc "noscript | %misc.inline;">
31.240 +
31.241 +
31.242 +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
31.243 +
31.244 +<!-- %Inline; covers inline or "text-level" elements -->
31.245 +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
31.246 +
31.247 +<!--================== Block level elements ==============================-->
31.248 +
31.249 +<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
31.250 +<!ENTITY % lists "ul | ol | dl | menu | dir">
31.251 +<!ENTITY % blocktext "pre | hr | blockquote | address | center">
31.252 +
31.253 +<!ENTITY % block
31.254 + "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">
31.255 +
31.256 +<!-- %Flow; mixes block and inline and is used for list items etc. -->
31.257 +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
31.258 +
31.259 +<!--================== Content models for exclusions =====================-->
31.260 +
31.261 +<!-- a elements use %Inline; excluding a -->
31.262 +
31.263 +<!ENTITY % a.content
31.264 + "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
31.265 +
31.266 +<!-- pre uses %Inline excluding img, object, applet, big, small,
31.267 + sub, sup, font, or basefont -->
31.268 +
31.269 +<!ENTITY % pre.content
31.270 + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
31.271 + %inline.forms; | %misc.inline;)*">
31.272 +
31.273 +
31.274 +<!-- form uses %Flow; excluding form -->
31.275 +
31.276 +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
31.277 +
31.278 +<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
31.279 +
31.280 +<!ENTITY % button.content
31.281 + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
31.282 + table | br | span | bdo | object | applet | img | map |
31.283 + %fontstyle; | %phrase; | %misc;)*">
31.284 +
31.285 +<!--================ Document Structure ==================================-->
31.286 +
31.287 +<!-- the namespace URI designates the document profile -->
31.288 +
31.289 +<!ELEMENT html (head, frameset)>
31.290 +<!ATTLIST html
31.291 + %i18n;
31.292 + id ID #IMPLIED
31.293 + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
31.294 + >
31.295 +
31.296 +<!--================ Document Head =======================================-->
31.297 +
31.298 +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
31.299 +
31.300 +<!-- content model is %head.misc; combined with a single
31.301 + title and an optional base element in any order -->
31.302 +
31.303 +<!ELEMENT head (%head.misc;,
31.304 + ((title, %head.misc;, (base, %head.misc;)?) |
31.305 + (base, %head.misc;, (title, %head.misc;))))>
31.306 +
31.307 +<!ATTLIST head
31.308 + %i18n;
31.309 + id ID #IMPLIED
31.310 + profile %URI; #IMPLIED
31.311 + >
31.312 +
31.313 +<!-- The title element is not considered part of the flow of text.
31.314 + It should be displayed, for example as the page header or
31.315 + window title. Exactly one title is required per document.
31.316 + -->
31.317 +<!ELEMENT title (#PCDATA)>
31.318 +<!ATTLIST title
31.319 + %i18n;
31.320 + id ID #IMPLIED
31.321 + >
31.322 +
31.323 +<!-- document base URI -->
31.324 +
31.325 +<!ELEMENT base EMPTY>
31.326 +<!ATTLIST base
31.327 + id ID #IMPLIED
31.328 + href %URI; #IMPLIED
31.329 + target %FrameTarget; #IMPLIED
31.330 + >
31.331 +
31.332 +<!-- generic metainformation -->
31.333 +<!ELEMENT meta EMPTY>
31.334 +<!ATTLIST meta
31.335 + %i18n;
31.336 + id ID #IMPLIED
31.337 + http-equiv CDATA #IMPLIED
31.338 + name CDATA #IMPLIED
31.339 + content CDATA #REQUIRED
31.340 + scheme CDATA #IMPLIED
31.341 + >
31.342 +
31.343 +<!--
31.344 + Relationship values can be used in principle:
31.345 +
31.346 + a) for document specific toolbars/menus when used
31.347 + with the link element in document head e.g.
31.348 + start, contents, previous, next, index, end, help
31.349 + b) to link to a separate style sheet (rel="stylesheet")
31.350 + c) to make a link to a script (rel="script")
31.351 + d) by stylesheets to control how collections of
31.352 + html nodes are rendered into printed documents
31.353 + e) to make a link to a printable version of this document
31.354 + e.g. a PostScript or PDF version (rel="alternate" media="print")
31.355 +-->
31.356 +
31.357 +<!ELEMENT link EMPTY>
31.358 +<!ATTLIST link
31.359 + %attrs;
31.360 + charset %Charset; #IMPLIED
31.361 + href %URI; #IMPLIED
31.362 + hreflang %LanguageCode; #IMPLIED
31.363 + type %ContentType; #IMPLIED
31.364 + rel %LinkTypes; #IMPLIED
31.365 + rev %LinkTypes; #IMPLIED
31.366 + media %MediaDesc; #IMPLIED
31.367 + target %FrameTarget; #IMPLIED
31.368 + >
31.369 +
31.370 +<!-- style info, which may include CDATA sections -->
31.371 +<!ELEMENT style (#PCDATA)>
31.372 +<!ATTLIST style
31.373 + %i18n;
31.374 + id ID #IMPLIED
31.375 + type %ContentType; #REQUIRED
31.376 + media %MediaDesc; #IMPLIED
31.377 + title %Text; #IMPLIED
31.378 + xml:space (preserve) #FIXED 'preserve'
31.379 + >
31.380 +
31.381 +<!-- script statements, which may include CDATA sections -->
31.382 +<!ELEMENT script (#PCDATA)>
31.383 +<!ATTLIST script
31.384 + id ID #IMPLIED
31.385 + charset %Charset; #IMPLIED
31.386 + type %ContentType; #REQUIRED
31.387 + language CDATA #IMPLIED
31.388 + src %URI; #IMPLIED
31.389 + defer (defer) #IMPLIED
31.390 + xml:space (preserve) #FIXED 'preserve'
31.391 + >
31.392 +
31.393 +<!-- alternate content container for non script-based rendering -->
31.394 +
31.395 +<!ELEMENT noscript %Flow;>
31.396 +<!ATTLIST noscript
31.397 + %attrs;
31.398 + >
31.399 +
31.400 +<!--======================= Frames =======================================-->
31.401 +
31.402 +<!-- only one noframes element permitted per document -->
31.403 +
31.404 +<!ELEMENT frameset (frameset|frame|noframes)*>
31.405 +<!ATTLIST frameset
31.406 + %coreattrs;
31.407 + rows %MultiLengths; #IMPLIED
31.408 + cols %MultiLengths; #IMPLIED
31.409 + onload %Script; #IMPLIED
31.410 + onunload %Script; #IMPLIED
31.411 + border %Pixels; #IMPLIED
31.412 + frameborder %Pixels; #IMPLIED
31.413 + framespacing %Pixels; #IMPLIED
31.414 + >
31.415 +
31.416 +<!-- reserved frame names start with "_" otherwise starts with letter -->
31.417 +
31.418 +<!-- tiled window within frameset -->
31.419 +
31.420 +<!ELEMENT frame EMPTY>
31.421 +<!ATTLIST frame
31.422 + %coreattrs;
31.423 + longdesc %URI; #IMPLIED
31.424 + name NMTOKEN #IMPLIED
31.425 + src %URI; #IMPLIED
31.426 + frameborder (1|0) "1"
31.427 + marginwidth %Pixels; #IMPLIED
31.428 + marginheight %Pixels; #IMPLIED
31.429 + noresize (noresize) #IMPLIED
31.430 + scrolling (yes|no|auto) "auto"
31.431 + >
31.432 +
31.433 +<!-- inline subwindow -->
31.434 +
31.435 +<!ELEMENT iframe %Flow;>
31.436 +<!ATTLIST iframe
31.437 + %coreattrs;
31.438 + longdesc %URI; #IMPLIED
31.439 + name NMTOKEN #IMPLIED
31.440 + src %URI; #IMPLIED
31.441 + frameborder (1|0) "1"
31.442 + marginwidth %Pixels; #IMPLIED
31.443 + marginheight %Pixels; #IMPLIED
31.444 + scrolling (yes|no|auto) "auto"
31.445 + align %ImgAlign; #IMPLIED
31.446 + height %Length; #IMPLIED
31.447 + width %Length; #IMPLIED
31.448 + >
31.449 +
31.450 +<!-- alternate content container for non frame-based rendering -->
31.451 +
31.452 +<!ELEMENT noframes (body)>
31.453 +<!ATTLIST noframes
31.454 + %attrs;
31.455 + >
31.456 +
31.457 +<!--=================== Document Body ====================================-->
31.458 +
31.459 +<!ELEMENT body %Flow;>
31.460 +<!ATTLIST body
31.461 + %attrs;
31.462 + onload %Script; #IMPLIED
31.463 + onunload %Script; #IMPLIED
31.464 + background %URI; #IMPLIED
31.465 + bgcolor %Color; #IMPLIED
31.466 + text %Color; #IMPLIED
31.467 + link %Color; #IMPLIED
31.468 + vlink %Color; #IMPLIED
31.469 + alink %Color; #IMPLIED
31.470 + >
31.471 +
31.472 +<!ELEMENT div %Flow;> <!-- generic language/style container -->
31.473 +<!ATTLIST div
31.474 + %attrs;
31.475 + %TextAlign;
31.476 + >
31.477 +
31.478 +<!--=================== Paragraphs =======================================-->
31.479 +
31.480 +<!ELEMENT p %Inline;>
31.481 +<!ATTLIST p
31.482 + %attrs;
31.483 + %TextAlign;
31.484 + >
31.485 +
31.486 +<!--=================== Headings =========================================-->
31.487 +
31.488 +<!--
31.489 + There are six levels of headings from h1 (the most important)
31.490 + to h6 (the least important).
31.491 +-->
31.492 +
31.493 +<!ELEMENT h1 %Inline;>
31.494 +<!ATTLIST h1
31.495 + %attrs;
31.496 + %TextAlign;
31.497 + >
31.498 +
31.499 +<!ELEMENT h2 %Inline;>
31.500 +<!ATTLIST h2
31.501 + %attrs;
31.502 + %TextAlign;
31.503 + >
31.504 +
31.505 +<!ELEMENT h3 %Inline;>
31.506 +<!ATTLIST h3
31.507 + %attrs;
31.508 + %TextAlign;
31.509 + >
31.510 +
31.511 +<!ELEMENT h4 %Inline;>
31.512 +<!ATTLIST h4
31.513 + %attrs;
31.514 + %TextAlign;
31.515 + >
31.516 +
31.517 +<!ELEMENT h5 %Inline;>
31.518 +<!ATTLIST h5
31.519 + %attrs;
31.520 + %TextAlign;
31.521 + >
31.522 +
31.523 +<!ELEMENT h6 %Inline;>
31.524 +<!ATTLIST h6
31.525 + %attrs;
31.526 + %TextAlign;
31.527 + >
31.528 +
31.529 +<!--=================== Lists ============================================-->
31.530 +
31.531 +<!-- Unordered list bullet styles -->
31.532 +
31.533 +<!ENTITY % ULStyle "(disc|square|circle)">
31.534 +
31.535 +<!-- Unordered list -->
31.536 +
31.537 +<!ELEMENT ul (li)+>
31.538 +<!ATTLIST ul
31.539 + %attrs;
31.540 + type %ULStyle; #IMPLIED
31.541 + compact (compact) #IMPLIED
31.542 + >
31.543 +
31.544 +<!-- Ordered list numbering style
31.545 +
31.546 + 1 arabic numbers 1, 2, 3, ...
31.547 + a lower alpha a, b, c, ...
31.548 + A upper alpha A, B, C, ...
31.549 + i lower roman i, ii, iii, ...
31.550 + I upper roman I, II, III, ...
31.551 +
31.552 + The style is applied to the sequence number which by default
31.553 + is reset to 1 for the first list item in an ordered list.
31.554 +-->
31.555 +<!ENTITY % OLStyle "CDATA">
31.556 +
31.557 +<!-- Ordered (numbered) list -->
31.558 +
31.559 +<!ELEMENT ol (li)+>
31.560 +<!ATTLIST ol
31.561 + %attrs;
31.562 + type %OLStyle; #IMPLIED
31.563 + compact (compact) #IMPLIED
31.564 + start %Number; #IMPLIED
31.565 + >
31.566 +
31.567 +<!-- single column list (DEPRECATED) -->
31.568 +<!ELEMENT menu (li)+>
31.569 +<!ATTLIST menu
31.570 + %attrs;
31.571 + compact (compact) #IMPLIED
31.572 + >
31.573 +
31.574 +<!-- multiple column list (DEPRECATED) -->
31.575 +<!ELEMENT dir (li)+>
31.576 +<!ATTLIST dir
31.577 + %attrs;
31.578 + compact (compact) #IMPLIED
31.579 + >
31.580 +
31.581 +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
31.582 +<!ENTITY % LIStyle "CDATA">
31.583 +
31.584 +<!-- list item -->
31.585 +
31.586 +<!ELEMENT li %Flow;>
31.587 +<!ATTLIST li
31.588 + %attrs;
31.589 + type %LIStyle; #IMPLIED
31.590 + value %Number; #IMPLIED
31.591 + >
31.592 +
31.593 +<!-- definition lists - dt for term, dd for its definition -->
31.594 +
31.595 +<!ELEMENT dl (dt|dd)+>
31.596 +<!ATTLIST dl
31.597 + %attrs;
31.598 + compact (compact) #IMPLIED
31.599 + >
31.600 +
31.601 +<!ELEMENT dt %Inline;>
31.602 +<!ATTLIST dt
31.603 + %attrs;
31.604 + >
31.605 +
31.606 +<!ELEMENT dd %Flow;>
31.607 +<!ATTLIST dd
31.608 + %attrs;
31.609 + >
31.610 +
31.611 +<!--=================== Address ==========================================-->
31.612 +
31.613 +<!-- information on author -->
31.614 +
31.615 +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
31.616 +<!ATTLIST address
31.617 + %attrs;
31.618 + >
31.619 +
31.620 +<!--=================== Horizontal Rule ==================================-->
31.621 +
31.622 +<!ELEMENT hr EMPTY>
31.623 +<!ATTLIST hr
31.624 + %attrs;
31.625 + align (left|center|right) #IMPLIED
31.626 + noshade (noshade) #IMPLIED
31.627 + size %Pixels; #IMPLIED
31.628 + width %Length; #IMPLIED
31.629 + >
31.630 +
31.631 +<!--=================== Preformatted Text ================================-->
31.632 +
31.633 +<!-- content is %Inline; excluding
31.634 + "img|object|applet|big|small|sub|sup|font|basefont" -->
31.635 +
31.636 +<!ELEMENT pre %pre.content;>
31.637 +<!ATTLIST pre
31.638 + %attrs;
31.639 + width %Number; #IMPLIED
31.640 + xml:space (preserve) #FIXED 'preserve'
31.641 + >
31.642 +
31.643 +<!--=================== Block-like Quotes ================================-->
31.644 +
31.645 +<!ELEMENT blockquote %Flow;>
31.646 +<!ATTLIST blockquote
31.647 + %attrs;
31.648 + cite %URI; #IMPLIED
31.649 + >
31.650 +
31.651 +<!--=================== Text alignment ===================================-->
31.652 +
31.653 +<!-- center content -->
31.654 +<!ELEMENT center %Flow;>
31.655 +<!ATTLIST center
31.656 + %attrs;
31.657 + >
31.658 +
31.659 +<!--=================== Inserted/Deleted Text ============================-->
31.660 +
31.661 +
31.662 +<!--
31.663 + ins/del are allowed in block and inline content, but its
31.664 + inappropriate to include block content within an ins element
31.665 + occurring in inline content.
31.666 +-->
31.667 +<!ELEMENT ins %Flow;>
31.668 +<!ATTLIST ins
31.669 + %attrs;
31.670 + cite %URI; #IMPLIED
31.671 + datetime %Datetime; #IMPLIED
31.672 + >
31.673 +
31.674 +<!ELEMENT del %Flow;>
31.675 +<!ATTLIST del
31.676 + %attrs;
31.677 + cite %URI; #IMPLIED
31.678 + datetime %Datetime; #IMPLIED
31.679 + >
31.680 +
31.681 +<!--================== The Anchor Element ================================-->
31.682 +
31.683 +<!-- content is %Inline; except that anchors shouldn't be nested -->
31.684 +
31.685 +<!ELEMENT a %a.content;>
31.686 +<!ATTLIST a
31.687 + %attrs;
31.688 + %focus;
31.689 + charset %Charset; #IMPLIED
31.690 + type %ContentType; #IMPLIED
31.691 + name NMTOKEN #IMPLIED
31.692 + href %URI; #IMPLIED
31.693 + hreflang %LanguageCode; #IMPLIED
31.694 + rel %LinkTypes; #IMPLIED
31.695 + rev %LinkTypes; #IMPLIED
31.696 + shape %Shape; "rect"
31.697 + coords %Coords; #IMPLIED
31.698 + target %FrameTarget; #IMPLIED
31.699 + >
31.700 +
31.701 +<!--===================== Inline Elements ================================-->
31.702 +
31.703 +<!ELEMENT span %Inline;> <!-- generic language/style container -->
31.704 +<!ATTLIST span
31.705 + %attrs;
31.706 + >
31.707 +
31.708 +<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
31.709 +<!ATTLIST bdo
31.710 + %coreattrs;
31.711 + %events;
31.712 + lang %LanguageCode; #IMPLIED
31.713 + xml:lang %LanguageCode; #IMPLIED
31.714 + dir (ltr|rtl) #REQUIRED
31.715 + >
31.716 +
31.717 +<!ELEMENT br EMPTY> <!-- forced line break -->
31.718 +<!ATTLIST br
31.719 + %coreattrs;
31.720 + clear (left|all|right|none) "none"
31.721 + >
31.722 +
31.723 +<!ELEMENT em %Inline;> <!-- emphasis -->
31.724 +<!ATTLIST em %attrs;>
31.725 +
31.726 +<!ELEMENT strong %Inline;> <!-- strong emphasis -->
31.727 +<!ATTLIST strong %attrs;>
31.728 +
31.729 +<!ELEMENT dfn %Inline;> <!-- definitional -->
31.730 +<!ATTLIST dfn %attrs;>
31.731 +
31.732 +<!ELEMENT code %Inline;> <!-- program code -->
31.733 +<!ATTLIST code %attrs;>
31.734 +
31.735 +<!ELEMENT samp %Inline;> <!-- sample -->
31.736 +<!ATTLIST samp %attrs;>
31.737 +
31.738 +<!ELEMENT kbd %Inline;> <!-- something user would type -->
31.739 +<!ATTLIST kbd %attrs;>
31.740 +
31.741 +<!ELEMENT var %Inline;> <!-- variable -->
31.742 +<!ATTLIST var %attrs;>
31.743 +
31.744 +<!ELEMENT cite %Inline;> <!-- citation -->
31.745 +<!ATTLIST cite %attrs;>
31.746 +
31.747 +<!ELEMENT abbr %Inline;> <!-- abbreviation -->
31.748 +<!ATTLIST abbr %attrs;>
31.749 +
31.750 +<!ELEMENT acronym %Inline;> <!-- acronym -->
31.751 +<!ATTLIST acronym %attrs;>
31.752 +
31.753 +<!ELEMENT q %Inline;> <!-- inlined quote -->
31.754 +<!ATTLIST q
31.755 + %attrs;
31.756 + cite %URI; #IMPLIED
31.757 + >
31.758 +
31.759 +<!ELEMENT sub %Inline;> <!-- subscript -->
31.760 +<!ATTLIST sub %attrs;>
31.761 +
31.762 +<!ELEMENT sup %Inline;> <!-- superscript -->
31.763 +<!ATTLIST sup %attrs;>
31.764 +
31.765 +<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
31.766 +<!ATTLIST tt %attrs;>
31.767 +
31.768 +<!ELEMENT i %Inline;> <!-- italic font -->
31.769 +<!ATTLIST i %attrs;>
31.770 +
31.771 +<!ELEMENT b %Inline;> <!-- bold font -->
31.772 +<!ATTLIST b %attrs;>
31.773 +
31.774 +<!ELEMENT big %Inline;> <!-- bigger font -->
31.775 +<!ATTLIST big %attrs;>
31.776 +
31.777 +<!ELEMENT small %Inline;> <!-- smaller font -->
31.778 +<!ATTLIST small %attrs;>
31.779 +
31.780 +<!ELEMENT u %Inline;> <!-- underline -->
31.781 +<!ATTLIST u %attrs;>
31.782 +
31.783 +<!ELEMENT s %Inline;> <!-- strike-through -->
31.784 +<!ATTLIST s %attrs;>
31.785 +
31.786 +<!ELEMENT strike %Inline;> <!-- strike-through -->
31.787 +<!ATTLIST strike %attrs;>
31.788 +
31.789 +<!ELEMENT basefont EMPTY> <!-- base font size -->
31.790 +<!ATTLIST basefont
31.791 + id ID #IMPLIED
31.792 + size CDATA #REQUIRED
31.793 + color %Color; #IMPLIED
31.794 + face CDATA #IMPLIED
31.795 + >
31.796 +
31.797 +<!ELEMENT font %Inline;> <!-- local change to font -->
31.798 +<!ATTLIST font
31.799 + %coreattrs;
31.800 + %i18n;
31.801 + size CDATA #IMPLIED
31.802 + color %Color; #IMPLIED
31.803 + face CDATA #IMPLIED
31.804 + >
31.805 +
31.806 +<!--==================== Object ======================================-->
31.807 +<!--
31.808 + object is used to embed objects as part of HTML pages.
31.809 + param elements should precede other content. Parameters
31.810 + can also be expressed as attribute/value pairs on the
31.811 + object element itself when brevity is desired.
31.812 +-->
31.813 +
31.814 +<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
31.815 +<!ATTLIST object
31.816 + %attrs;
31.817 + declare (declare) #IMPLIED
31.818 + classid %URI; #IMPLIED
31.819 + codebase %URI; #IMPLIED
31.820 + data %URI; #IMPLIED
31.821 + type %ContentType; #IMPLIED
31.822 + codetype %ContentType; #IMPLIED
31.823 + archive %UriList; #IMPLIED
31.824 + standby %Text; #IMPLIED
31.825 + height %Length; #IMPLIED
31.826 + width %Length; #IMPLIED
31.827 + usemap %URI; #IMPLIED
31.828 + name NMTOKEN #IMPLIED
31.829 + tabindex %Number; #IMPLIED
31.830 + align %ImgAlign; #IMPLIED
31.831 + border %Pixels; #IMPLIED
31.832 + hspace %Pixels; #IMPLIED
31.833 + vspace %Pixels; #IMPLIED
31.834 + >
31.835 +
31.836 +<!--
31.837 + param is used to supply a named property value.
31.838 + In XML it would seem natural to follow RDF and support an
31.839 + abbreviated syntax where the param elements are replaced
31.840 + by attribute value pairs on the object start tag.
31.841 +-->
31.842 +<!ELEMENT param EMPTY>
31.843 +<!ATTLIST param
31.844 + id ID #IMPLIED
31.845 + name CDATA #REQUIRED
31.846 + value CDATA #IMPLIED
31.847 + valuetype (data|ref|object) "data"
31.848 + type %ContentType; #IMPLIED
31.849 + >
31.850 +
31.851 +<!--=================== Java applet ==================================-->
31.852 +<!--
31.853 + One of code or object attributes must be present.
31.854 + Place param elements before other content.
31.855 +-->
31.856 +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
31.857 +<!ATTLIST applet
31.858 + %coreattrs;
31.859 + codebase %URI; #IMPLIED
31.860 + archive CDATA #IMPLIED
31.861 + code CDATA #IMPLIED
31.862 + object CDATA #IMPLIED
31.863 + alt %Text; #IMPLIED
31.864 + name NMTOKEN #IMPLIED
31.865 + width %Length; #REQUIRED
31.866 + height %Length; #REQUIRED
31.867 + align %ImgAlign; #IMPLIED
31.868 + hspace %Pixels; #IMPLIED
31.869 + vspace %Pixels; #IMPLIED
31.870 + >
31.871 +
31.872 +<!--=================== Images ===========================================-->
31.873 +
31.874 +<!--
31.875 + To avoid accessibility problems for people who aren't
31.876 + able to see the image, you should provide a text
31.877 + description using the alt and longdesc attributes.
31.878 + In addition, avoid the use of server-side image maps.
31.879 +-->
31.880 +
31.881 +<!ELEMENT img EMPTY>
31.882 +<!ATTLIST img
31.883 + %attrs;
31.884 + src %URI; #REQUIRED
31.885 + alt %Text; #REQUIRED
31.886 + name NMTOKEN #IMPLIED
31.887 + longdesc %URI; #IMPLIED
31.888 + height %Length; #IMPLIED
31.889 + width %Length; #IMPLIED
31.890 + usemap %URI; #IMPLIED
31.891 + ismap (ismap) #IMPLIED
31.892 + align %ImgAlign; #IMPLIED
31.893 + border %Pixels; #IMPLIED
31.894 + hspace %Pixels; #IMPLIED
31.895 + vspace %Pixels; #IMPLIED
31.896 + >
31.897 +
31.898 +<!-- usemap points to a map element which may be in this document
31.899 + or an external document, although the latter is not widely supported -->
31.900 +
31.901 +<!--================== Client-side image maps ============================-->
31.902 +
31.903 +<!-- These can be placed in the same document or grouped in a
31.904 + separate document although this isn't yet widely supported -->
31.905 +
31.906 +<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
31.907 +<!ATTLIST map
31.908 + %i18n;
31.909 + %events;
31.910 + id ID #REQUIRED
31.911 + class CDATA #IMPLIED
31.912 + style %StyleSheet; #IMPLIED
31.913 + title %Text; #IMPLIED
31.914 + name NMTOKEN #IMPLIED
31.915 + >
31.916 +
31.917 +<!ELEMENT area EMPTY>
31.918 +<!ATTLIST area
31.919 + %attrs;
31.920 + %focus;
31.921 + shape %Shape; "rect"
31.922 + coords %Coords; #IMPLIED
31.923 + href %URI; #IMPLIED
31.924 + nohref (nohref) #IMPLIED
31.925 + alt %Text; #REQUIRED
31.926 + target %FrameTarget; #IMPLIED
31.927 + >
31.928 +
31.929 +<!--================ Forms ===============================================-->
31.930 +
31.931 +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
31.932 +
31.933 +<!ATTLIST form
31.934 + %attrs;
31.935 + action %URI; #REQUIRED
31.936 + method (get|post) "get"
31.937 + name NMTOKEN #IMPLIED
31.938 + enctype %ContentType; "application/x-www-form-urlencoded"
31.939 + onsubmit %Script; #IMPLIED
31.940 + onreset %Script; #IMPLIED
31.941 + accept %ContentTypes; #IMPLIED
31.942 + accept-charset %Charsets; #IMPLIED
31.943 + target %FrameTarget; #IMPLIED
31.944 + >
31.945 +
31.946 +<!--
31.947 + Each label must not contain more than ONE field
31.948 + Label elements shouldn't be nested.
31.949 +-->
31.950 +<!ELEMENT label %Inline;>
31.951 +<!ATTLIST label
31.952 + %attrs;
31.953 + for IDREF #IMPLIED
31.954 + accesskey %Character; #IMPLIED
31.955 + onfocus %Script; #IMPLIED
31.956 + onblur %Script; #IMPLIED
31.957 + >
31.958 +
31.959 +<!ENTITY % InputType
31.960 + "(text | password | checkbox |
31.961 + radio | submit | reset |
31.962 + file | hidden | image | button)"
31.963 + >
31.964 +
31.965 +<!-- the name attribute is required for all but submit & reset -->
31.966 +
31.967 +<!ELEMENT input EMPTY> <!-- form control -->
31.968 +<!ATTLIST input
31.969 + %attrs;
31.970 + %focus;
31.971 + type %InputType; "text"
31.972 + name CDATA #IMPLIED
31.973 + value CDATA #IMPLIED
31.974 + checked (checked) #IMPLIED
31.975 + disabled (disabled) #IMPLIED
31.976 + readonly (readonly) #IMPLIED
31.977 + size CDATA #IMPLIED
31.978 + maxlength %Number; #IMPLIED
31.979 + src %URI; #IMPLIED
31.980 + alt CDATA #IMPLIED
31.981 + usemap %URI; #IMPLIED
31.982 + onselect %Script; #IMPLIED
31.983 + onchange %Script; #IMPLIED
31.984 + accept %ContentTypes; #IMPLIED
31.985 + align %ImgAlign; #IMPLIED
31.986 + >
31.987 +
31.988 +<!ELEMENT select (optgroup|option)+> <!-- option selector -->
31.989 +<!ATTLIST select
31.990 + %attrs;
31.991 + name CDATA #IMPLIED
31.992 + size %Number; #IMPLIED
31.993 + multiple (multiple) #IMPLIED
31.994 + disabled (disabled) #IMPLIED
31.995 + tabindex %Number; #IMPLIED
31.996 + onfocus %Script; #IMPLIED
31.997 + onblur %Script; #IMPLIED
31.998 + onchange %Script; #IMPLIED
31.999 + >
31.1000 +
31.1001 +<!ELEMENT optgroup (option)+> <!-- option group -->
31.1002 +<!ATTLIST optgroup
31.1003 + %attrs;
31.1004 + disabled (disabled) #IMPLIED
31.1005 + label %Text; #REQUIRED
31.1006 + >
31.1007 +
31.1008 +<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
31.1009 +<!ATTLIST option
31.1010 + %attrs;
31.1011 + selected (selected) #IMPLIED
31.1012 + disabled (disabled) #IMPLIED
31.1013 + label %Text; #IMPLIED
31.1014 + value CDATA #IMPLIED
31.1015 + >
31.1016 +
31.1017 +<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
31.1018 +<!ATTLIST textarea
31.1019 + %attrs;
31.1020 + %focus;
31.1021 + name CDATA #IMPLIED
31.1022 + rows %Number; #REQUIRED
31.1023 + cols %Number; #REQUIRED
31.1024 + disabled (disabled) #IMPLIED
31.1025 + readonly (readonly) #IMPLIED
31.1026 + onselect %Script; #IMPLIED
31.1027 + onchange %Script; #IMPLIED
31.1028 + >
31.1029 +
31.1030 +<!--
31.1031 + The fieldset element is used to group form fields.
31.1032 + Only one legend element should occur in the content
31.1033 + and if present should only be preceded by whitespace.
31.1034 +-->
31.1035 +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
31.1036 +<!ATTLIST fieldset
31.1037 + %attrs;
31.1038 + >
31.1039 +
31.1040 +<!ENTITY % LAlign "(top|bottom|left|right)">
31.1041 +
31.1042 +<!ELEMENT legend %Inline;> <!-- fieldset label -->
31.1043 +<!ATTLIST legend
31.1044 + %attrs;
31.1045 + accesskey %Character; #IMPLIED
31.1046 + align %LAlign; #IMPLIED
31.1047 + >
31.1048 +
31.1049 +<!--
31.1050 + Content is %Flow; excluding a, form, form controls, iframe
31.1051 +-->
31.1052 +<!ELEMENT button %button.content;> <!-- push button -->
31.1053 +<!ATTLIST button
31.1054 + %attrs;
31.1055 + %focus;
31.1056 + name CDATA #IMPLIED
31.1057 + value CDATA #IMPLIED
31.1058 + type (button|submit|reset) "submit"
31.1059 + disabled (disabled) #IMPLIED
31.1060 + >
31.1061 +
31.1062 +<!-- single-line text input control (DEPRECATED) -->
31.1063 +<!ELEMENT isindex EMPTY>
31.1064 +<!ATTLIST isindex
31.1065 + %coreattrs;
31.1066 + %i18n;
31.1067 + prompt %Text; #IMPLIED
31.1068 + >
31.1069 +
31.1070 +<!--======================= Tables =======================================-->
31.1071 +
31.1072 +<!-- Derived from IETF HTML table standard, see [RFC1942] -->
31.1073 +
31.1074 +<!--
31.1075 + The border attribute sets the thickness of the frame around the
31.1076 + table. The default units are screen pixels.
31.1077 +
31.1078 + The frame attribute specifies which parts of the frame around
31.1079 + the table should be rendered. The values are not the same as
31.1080 + CALS to avoid a name clash with the valign attribute.
31.1081 +-->
31.1082 +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
31.1083 +
31.1084 +<!--
31.1085 + The rules attribute defines which rules to draw between cells:
31.1086 +
31.1087 + If rules is absent then assume:
31.1088 + "none" if border is absent or border="0" otherwise "all"
31.1089 +-->
31.1090 +
31.1091 +<!ENTITY % TRules "(none | groups | rows | cols | all)">
31.1092 +
31.1093 +<!-- horizontal placement of table relative to document -->
31.1094 +<!ENTITY % TAlign "(left|center|right)">
31.1095 +
31.1096 +<!-- horizontal alignment attributes for cell contents
31.1097 +
31.1098 + char alignment char, e.g. char=":"
31.1099 + charoff offset for alignment char
31.1100 +-->
31.1101 +<!ENTITY % cellhalign
31.1102 + "align (left|center|right|justify|char) #IMPLIED
31.1103 + char %Character; #IMPLIED
31.1104 + charoff %Length; #IMPLIED"
31.1105 + >
31.1106 +
31.1107 +<!-- vertical alignment attributes for cell contents -->
31.1108 +<!ENTITY % cellvalign
31.1109 + "valign (top|middle|bottom|baseline) #IMPLIED"
31.1110 + >
31.1111 +
31.1112 +<!ELEMENT table
31.1113 + (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
31.1114 +<!ELEMENT caption %Inline;>
31.1115 +<!ELEMENT thead (tr)+>
31.1116 +<!ELEMENT tfoot (tr)+>
31.1117 +<!ELEMENT tbody (tr)+>
31.1118 +<!ELEMENT colgroup (col)*>
31.1119 +<!ELEMENT col EMPTY>
31.1120 +<!ELEMENT tr (th|td)+>
31.1121 +<!ELEMENT th %Flow;>
31.1122 +<!ELEMENT td %Flow;>
31.1123 +
31.1124 +<!ATTLIST table
31.1125 + %attrs;
31.1126 + summary %Text; #IMPLIED
31.1127 + width %Length; #IMPLIED
31.1128 + border %Pixels; #IMPLIED
31.1129 + frame %TFrame; #IMPLIED
31.1130 + rules %TRules; #IMPLIED
31.1131 + cellspacing %Length; #IMPLIED
31.1132 + cellpadding %Length; #IMPLIED
31.1133 + align %TAlign; #IMPLIED
31.1134 + bgcolor %Color; #IMPLIED
31.1135 + >
31.1136 +
31.1137 +<!ENTITY % CAlign "(top|bottom|left|right)">
31.1138 +
31.1139 +<!ATTLIST caption
31.1140 + %attrs;
31.1141 + align %CAlign; #IMPLIED
31.1142 + >
31.1143 +
31.1144 +<!--
31.1145 +colgroup groups a set of col elements. It allows you to group
31.1146 +several semantically related columns together.
31.1147 +-->
31.1148 +<!ATTLIST colgroup
31.1149 + %attrs;
31.1150 + span %Number; "1"
31.1151 + width %MultiLength; #IMPLIED
31.1152 + %cellhalign;
31.1153 + %cellvalign;
31.1154 + >
31.1155 +
31.1156 +<!--
31.1157 + col elements define the alignment properties for cells in
31.1158 + one or more columns.
31.1159 +
31.1160 + The width attribute specifies the width of the columns, e.g.
31.1161 +
31.1162 + width=64 width in screen pixels
31.1163 + width=0.5* relative width of 0.5
31.1164 +
31.1165 + The span attribute causes the attributes of one
31.1166 + col element to apply to more than one column.
31.1167 +-->
31.1168 +<!ATTLIST col
31.1169 + %attrs;
31.1170 + span %Number; "1"
31.1171 + width %MultiLength; #IMPLIED
31.1172 + %cellhalign;
31.1173 + %cellvalign;
31.1174 + >
31.1175 +
31.1176 +<!--
31.1177 + Use thead to duplicate headers when breaking table
31.1178 + across page boundaries, or for static headers when
31.1179 + tbody sections are rendered in scrolling panel.
31.1180 +
31.1181 + Use tfoot to duplicate footers when breaking table
31.1182 + across page boundaries, or for static footers when
31.1183 + tbody sections are rendered in scrolling panel.
31.1184 +
31.1185 + Use multiple tbody sections when rules are needed
31.1186 + between groups of table rows.
31.1187 +-->
31.1188 +<!ATTLIST thead
31.1189 + %attrs;
31.1190 + %cellhalign;
31.1191 + %cellvalign;
31.1192 + >
31.1193 +
31.1194 +<!ATTLIST tfoot
31.1195 + %attrs;
31.1196 + %cellhalign;
31.1197 + %cellvalign;
31.1198 + >
31.1199 +
31.1200 +<!ATTLIST tbody
31.1201 + %attrs;
31.1202 + %cellhalign;
31.1203 + %cellvalign;
31.1204 + >
31.1205 +
31.1206 +<!ATTLIST tr
31.1207 + %attrs;
31.1208 + %cellhalign;
31.1209 + %cellvalign;
31.1210 + bgcolor %Color; #IMPLIED
31.1211 + >
31.1212 +
31.1213 +<!-- Scope is simpler than headers attribute for common tables -->
31.1214 +<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
31.1215 +
31.1216 +<!-- th is for headers, td for data and for cells acting as both -->
31.1217 +
31.1218 +<!ATTLIST th
31.1219 + %attrs;
31.1220 + abbr %Text; #IMPLIED
31.1221 + axis CDATA #IMPLIED
31.1222 + headers IDREFS #IMPLIED
31.1223 + scope %Scope; #IMPLIED
31.1224 + rowspan %Number; "1"
31.1225 + colspan %Number; "1"
31.1226 + %cellhalign;
31.1227 + %cellvalign;
31.1228 + nowrap (nowrap) #IMPLIED
31.1229 + bgcolor %Color; #IMPLIED
31.1230 + width %Pixels; #IMPLIED
31.1231 + height %Pixels; #IMPLIED
31.1232 + >
31.1233 +
31.1234 +<!ATTLIST td
31.1235 + %attrs;
31.1236 + abbr %Text; #IMPLIED
31.1237 + axis CDATA #IMPLIED
31.1238 + headers IDREFS #IMPLIED
31.1239 + scope %Scope; #IMPLIED
31.1240 + rowspan %Number; "1"
31.1241 + colspan %Number; "1"
31.1242 + %cellhalign;
31.1243 + %cellvalign;
31.1244 + nowrap (nowrap) #IMPLIED
31.1245 + bgcolor %Color; #IMPLIED
31.1246 + width %Pixels; #IMPLIED
31.1247 + height %Pixels; #IMPLIED
31.1248 + >
31.1249 +
32.1 Binary file images/buttons/new.gif has changed
33.1 Binary file images/buttons/new_down.gif has changed
34.1 Binary file images/buttons/new_faded.gif has changed
35.1 Binary file images/buttons/new_up.gif has changed
36.1 Binary file images/buttons/next.gif has changed
37.1 Binary file images/buttons/next_faded.gif has changed
38.1 Binary file images/buttons/next_up.gif has changed
39.1 Binary file images/buttons/open.gif has changed
40.1 Binary file images/buttons/open_down.gif has changed
41.1 Binary file images/buttons/open_faded.gif has changed
42.1 Binary file images/buttons/open_up.gif has changed
43.1 Binary file images/buttons/settings.gif has changed
44.1 Binary file images/buttons/settings_down.gif has changed
45.1 Binary file images/buttons/settings_faded.gif has changed
46.1 Binary file images/buttons/settings_up.gif has changed
47.1 Binary file images/docs/flash/text_editor/spec/1.gif has changed
48.1 Binary file images/docs/flash/text_editor/spec/2a-i.gif has changed
49.1 Binary file images/docs/flash/text_editor/spec/2a-ii.gif has changed
50.1 Binary file images/docs/flash/text_editor/spec/2a-iii.gif has changed
51.1 Binary file images/docs/flash/text_editor/spec/2a-iv.gif has changed
52.1 Binary file images/docs/flash/text_editor/spec/2b-i.gif has changed
53.1 Binary file images/docs/flash/text_editor/spec/2b-ii.gif has changed
54.1 Binary file images/favicon.gif-moved has changed
55.1 Binary file images/favicon.ico has changed
56.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
56.2 +++ b/images/favicon.ico-moved Sat May 01 16:19:36 2010 -0400
56.3 @@ -0,0 +1,1 @@
56.4 +favicon.gif
56.5 \ No newline at end of file
57.1 Binary file images/icons/browse/go.png has changed
58.1 Binary file images/icons/browse/home.png has changed
59.1 Binary file images/icons/browse/reload.png has changed
60.1 Binary file images/icons/browse/stop.png has changed
61.1 Binary file images/icons/new/alarm.png has changed
62.1 Binary file images/icons/new/application.png has changed
63.1 Binary file images/icons/new/bookmark.png has changed
64.1 Binary file images/icons/new/chat.png has changed
65.1 Binary file images/icons/new/copy.png has changed
66.1 Binary file images/icons/new/document.png has changed
67.1 Binary file images/icons/new/download.png has changed
68.1 Binary file images/icons/new/e-mail.png has changed
69.1 Binary file images/icons/new/folder.png has changed
70.1 Binary file images/icons/new/image.png has changed
71.1 Binary file images/icons/new/music.png has changed
72.1 Binary file images/icons/new/phone_call.png has changed
73.1 Binary file images/icons/new/search.png has changed
74.1 Binary file images/icons/new/share.png has changed
75.1 Binary file images/icons/new/text_file.png has changed
76.1 Binary file images/icons/new/upload.png has changed
77.1 Binary file images/icons/new/video.png has changed
78.1 Binary file images/icons/new/web_page.png has changed
79.1 Binary file images/icons/next/bookmark.png has changed
80.1 Binary file images/icons/next/close.png has changed
81.1 Binary file images/icons/next/logout.png has changed
82.1 Binary file images/icons/next/save.png has changed
83.1 Binary file images/icons/next/save_as.png has changed
84.1 Binary file images/icons/open/alarm.png has changed
85.1 Binary file images/icons/open/bookmark.png has changed
86.1 Binary file images/icons/open/document.png has changed
87.1 Binary file images/icons/open/e-mail.png has changed
88.1 Binary file images/icons/open/image.png has changed
89.1 Binary file images/icons/open/incoming.png has changed
90.1 Binary file images/icons/open/music.png has changed
91.1 Binary file images/icons/open/shared.png has changed
92.1 Binary file images/icons/open/text_file.png has changed
93.1 Binary file images/icons/open/video.png has changed
94.1 Binary file images/icons/settings/audio.png has changed
95.1 Binary file images/icons/settings/buttons.png has changed
96.1 Binary file images/icons/settings/chat.png has changed
97.1 Binary file images/icons/settings/clock.png has changed
98.1 Binary file images/icons/settings/downloads.png has changed
99.1 Binary file images/icons/settings/e-mail.png has changed
100.1 Binary file images/icons/settings/images.png has changed
101.1 Binary file images/icons/settings/phone.png has changed
102.1 Binary file images/icons/settings/search.png has changed
103.1 Binary file images/icons/settings/video.png has changed
104.1 Binary file images/interos.org_logo.gif has changed
105.1 Binary file images/interos.org_logo.png has changed
106.1 Binary file images/login/arrow.gif has changed
107.1 Binary file images/login/arrow_down.gif has changed
108.1 Binary file images/login/i.gif has changed
109.1 Binary file images/login/new.gif has changed
110.1 Binary file images/login/new_faded.gif has changed
111.1 Binary file images/login/next.gif has changed
112.1 Binary file images/login/next_faded.gif has changed
113.1 Binary file images/login/nteros.gif has changed
114.1 Binary file images/login/open.gif has changed
115.1 Binary file images/login/open_faded.gif has changed
116.1 Binary file images/login/settings.gif has changed
117.1 Binary file images/login/settings_faded.gif has changed
118.1 Binary file images/menu/new_bottom.gif has changed
119.1 Binary file images/menu/new_top.gif has changed
120.1 Binary file images/menu/next_bottom.gif has changed
121.1 Binary file images/menu/next_top.gif has changed
122.1 Binary file images/menu/open_bottom.gif has changed
123.1 Binary file images/menu/open_top.gif has changed
124.1 Binary file images/menu/settings_bottom.gif has changed
125.1 Binary file images/menu/settings_top.gif has changed
126.1 Binary file images/panel/bottom.gif has changed
127.1 Binary file images/panel/bottom_left.gif has changed
128.1 Binary file images/panel/bottom_right.gif has changed
129.1 Binary file images/panel/left.gif has changed
130.1 Binary file images/panel/login.gif has changed
131.1 Binary file images/panel/login/top.gif has changed
132.1 Binary file images/panel/login/top_left.gif has changed
133.1 Binary file images/panel/login/top_right.gif has changed
134.1 Binary file images/panel/main/top.gif has changed
135.1 Binary file images/panel/main/top_left.gif has changed
136.1 Binary file images/panel/main/top_right.gif has changed
137.1 Binary file images/panel/right.gif has changed
138.1 Binary file images/panel/title/top.gif has changed
139.1 Binary file images/panel/title/top_left.gif has changed
140.1 Binary file images/panel/title/top_right.gif has changed
141.1 Binary file images/panel/welcome/bottom.gif has changed
142.1 Binary file images/panel/welcome/bottom_left.gif has changed
143.1 Binary file images/panel/welcome/bottom_right.gif has changed
144.1 Binary file images/panel/welcome/left.gif has changed
145.1 Binary file images/panel/welcome/right.gif has changed
146.1 Binary file images/panel/welcome/top.gif has changed
147.1 Binary file images/panel/welcome/top_left.gif has changed
148.1 Binary file images/panel/welcome/top_right.gif has changed
149.1 Binary file images/toolbar.gif has changed
150.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
150.2 +++ b/js/default_interos.com.js Sat May 01 16:19:36 2010 -0400
150.3 @@ -0,0 +1,351 @@
150.4 +/******************************************************/
150.5 +/* interos Standard Document Header - Script */
150.6 +/******************************************************/
150.7 +/* URIs: http://interos.com/js/default.js */
150.8 +/* http://*.interos.com/js/default.js */
150.9 +/* Description: Default JavaScript for interos */
150.10 +/* Author: Brent Angeline */
150.11 +/* Script: JavaScript */
150.12 +/******************************************************/
150.13 +
150.14 +var panel, maxWidth, maxHeight, totalWidth, totalHeight;
150.15 +var mode = 'static';
150.16 +
150.17 +function capable() {
150.18 + return (document.createElementNS || document.createElement) &&
150.19 + document.getElementById && width('navigation') && initialize();
150.20 +}
150.21 +
150.22 +function initialize() {
150.23 + if (id('mainPanel')) {
150.24 + panel = 'mainPanel';
150.25 + return 1;
150.26 + } else if (id('titlePanel')) {
150.27 + panel = 'titlePanel';
150.28 + return 1;
150.29 + } else {
150.30 + return 0;
150.31 + }
150.32 +}
150.33 +
150.34 +function div() {
150.35 + if (document.createElementNS) {
150.36 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
150.37 + } else if (document.createElement) {
150.38 + return document.createElement('div');
150.39 + }
150.40 +}
150.41 +
150.42 +function id(e) {
150.43 + return document.getElementById(e);
150.44 +}
150.45 +
150.46 +function style(e) {
150.47 + return id(e).style;
150.48 +}
150.49 +
150.50 +function property(e, p) {
150.51 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
150.52 +}
150.53 +
150.54 +function width(e) {
150.55 + if (id(e).offsetWidth) {
150.56 + return id(e).offsetWidth;
150.57 + } else if (window.getComputedStyle) {
150.58 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
150.59 + } else {
150.60 + return 0;
150.61 + }
150.62 +}
150.63 +
150.64 +function height(e) {
150.65 + if (id(e).offsetHeight) {
150.66 + return id(e).offsetHeight;
150.67 + } else if (window.getComputedStyle) {
150.68 + return property(e, 'height').substring(0,
150.69 + property(e, 'height').indexOf('p'));
150.70 + } else {
150.71 + return 0;
150.72 + }
150.73 +}
150.74 +
150.75 +function x(e) {
150.76 + var x, done;
150.77 + x = done = 0;
150.78 + e = id(e);
150.79 + if (e.offsetParent) {
150.80 + while (e.offsetParent) {
150.81 + x += e.offsetLeft;
150.82 + e = e.offsetParent;
150.83 + }
150.84 + } else if (e.x) {
150.85 + x = e.x;
150.86 + }
150.87 + return x;
150.88 +}
150.89 +
150.90 +function y(e) {
150.91 + var y, done;
150.92 + y = done = 0;
150.93 + e = id(e);
150.94 + if (e.offsetParent) {
150.95 + while (e.offsetParent) {
150.96 + y += e.offsetTop;
150.97 + e = e.offsetParent;
150.98 + }
150.99 + } else if (e.y) {
150.100 + y = e.y;
150.101 + }
150.102 + return y;
150.103 +}
150.104 +
150.105 +function content(e, string) {
150.106 + if (document.all) {
150.107 + document.all[e].innerHTML = string;
150.108 + } else if (id(e).innerHTML) {
150.109 + id(e).innerHTML = string;
150.110 + }
150.111 +}
150.112 +
150.113 +function clientWidth() {
150.114 + var width = 0;
150.115 + if (self.innerWidth) {
150.116 + width = self.innerWidth;
150.117 + } else if (document.documentElement && document.documentElement.clientWidth) {
150.118 + width = document.documentElement.clientWidth;
150.119 + } else if (document.body) {
150.120 + width = document.body.clientWidth;
150.121 + }
150.122 + return width;
150.123 +}
150.124 +
150.125 +function clientHeight() {
150.126 + var height = 0;
150.127 + if (self.innerHeight) {
150.128 + height = self.innerHeight;
150.129 + } else if (document.documentElement &&
150.130 + document.documentElement.clientHeight) {
150.131 + height = document.documentElement.clientHeight;
150.132 + } else if (document.body) {
150.133 + height = document.body.clientHeight;
150.134 + }
150.135 + return height;
150.136 +}
150.137 +
150.138 +function contentWidth() {
150.139 + return (12 + width(panel) + 18);
150.140 +}
150.141 +
150.142 +function contentHeight() {
150.143 + return (height('navigation') + 16 + 12 + height(panel) + 18 + 16 +
150.144 + height('copyrightDates'));
150.145 +}
150.146 +
150.147 +function dynamicMode() {
150.148 + var bottomLeft = div();
150.149 + var left = div();
150.150 + var topLeft = div();
150.151 + var top = div();
150.152 + var topRight = div();
150.153 + var right = div();
150.154 + var bottomRight= div();
150.155 + var bottom = div();
150.156 +
150.157 + style('copyrightDates').width = width('copyrightDates') + 'px';
150.158 + style('copyrightDates').left = x('copyrightDates') + 'px';
150.159 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
150.160 + height('navigation') + 16 + 12 +
150.161 + height(panel) + 18 + 16 + 'px';
150.162 + style('copyrightDates').position = 'absolute';
150.163 + style('copyrightDates').margin = 0;
150.164 +
150.165 + if ((clientWidth() - contentWidth()) < 9) {
150.166 + style(panel).width = width(panel) - 24 + 'px';
150.167 + }
150.168 + if (panel == 'mainPanel') {
150.169 + style('body').marginLeft = '0';
150.170 + style('body').marginRight = '0';
150.171 + }
150.172 + style(panel).border = 0;
150.173 + style(panel).left = x(panel) + 'px';
150.174 + style(panel).top = ((maxHeight - totalHeight) / 2) + height('navigation') +
150.175 + 16 + 12 + 'px';
150.176 + style(panel).position = 'absolute';
150.177 +
150.178 + style('navigation').width = width('navigation') + 'px';
150.179 + style('navigation').left = x('navigation') + 'px';
150.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
150.181 + style('navigation').position = 'absolute';
150.182 +
150.183 + bottomLeft.setAttribute('id', 'bottomLeft');
150.184 + id('body').appendChild(bottomLeft);
150.185 + style('bottomLeft').left = x(panel) - 12 + 'px';
150.186 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
150.187 +
150.188 + left.setAttribute('id', 'left');
150.189 + id('body').appendChild(left);
150.190 + style('left').height = height(panel) - 84 + 'px';
150.191 + style('left').left = x(panel) - 12 + 'px';
150.192 + style('left').top = y(panel) + 84 + 'px';
150.193 +
150.194 + topLeft.setAttribute('id', 'topLeft');
150.195 + id('body').appendChild(topLeft);
150.196 + style('topLeft').left = x(panel) - 12 + 'px';
150.197 + style('topLeft').top = y(panel) - 12 + 'px';
150.198 +
150.199 + top.setAttribute('id', 'top');
150.200 + id('body').appendChild(top);
150.201 + style('top').width = width(panel) + 'px';
150.202 + style('top').left = x(panel) + 'px';
150.203 + style('top').top = y(panel) - 12 + 'px';
150.204 +
150.205 + topRight.setAttribute('id', 'topRight');
150.206 + id('body').appendChild(topRight);
150.207 + style('topRight').left = x(panel) + width(panel) + 'px';
150.208 + style('topRight').top = y(panel) - 12 + 'px';
150.209 +
150.210 + right.setAttribute('id', 'right');
150.211 + id('body').appendChild(right);
150.212 + style('right').height = height(panel) - 84 + 'px';
150.213 + style('right').left = x(panel) + width(panel) + 'px';
150.214 + style('right').top = y(panel) + 84 + 'px';
150.215 +
150.216 + bottomRight.setAttribute('id', 'bottomRight');
150.217 + id('body').appendChild(bottomRight);
150.218 + style('bottomRight').left = x(panel) + width(panel) + 'px';
150.219 + style('bottomRight').top = y(panel) + height(panel) + 'px';
150.220 +
150.221 + bottom.setAttribute('id', 'bottom');
150.222 + id('body').appendChild(bottom);
150.223 + style('bottom').width = width(panel) + 'px';
150.224 + style('bottom').left = x(panel) + 'px';
150.225 + style('bottom').top = y(panel) + height(panel) + 'px';
150.226 +
150.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
150.228 + style('left').background = 'url(/images/panel/left.gif)';
150.229 + style('topLeft').background = 'url(/images/panel/main/top_left.gif)';
150.230 + style('top').background = 'url(/images/panel/main/top.gif)';
150.231 + style('topRight').background = 'url(/images/panel/main/top_right.gif)';
150.232 + style('right').background = 'url(/images/panel/right.gif)';
150.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
150.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
150.235 +
150.236 + mode = 'dynamic';
150.237 +}
150.238 +
150.239 +function staticMode() {
150.240 + style('body').marginLeft = '19px';
150.241 + style('body').marginRight = '19px';
150.242 +
150.243 + style('copyrightDates').width = '';
150.244 + style('copyrightDates').left = '';
150.245 + style('copyrightDates').bottom = '';
150.246 + style('copyrightDates').position = '';
150.247 + style('copyrightDates').margin = '';
150.248 +
150.249 + style(panel).border = '';
150.250 + style(panel).width = '';
150.251 + style(panel).left = '';
150.252 + style(panel).top = '';
150.253 + style(panel).position = '';
150.254 +
150.255 + style('navigation').width = '';
150.256 + style('navigation').left = '';
150.257 + style('navigation').top = '';
150.258 + style('navigation').position = '';
150.259 +
150.260 + /* more code */
150.261 +
150.262 + mode = 'static';
150.263 +}
150.264 +
150.265 +function resize() {
150.266 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
150.267 + 'px';
150.268 +
150.269 + style(panel).left = ((maxWidth - width(panel)) / 2) + 'px';
150.270 + style(panel).top = ((maxHeight - totalHeight) / 2) +
150.271 + height('navigation') + 16 + 12 + 'px';
150.272 +
150.273 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
150.274 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
150.275 +
150.276 + style('bottomLeft').left = x(panel) - 12 + 'px';
150.277 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
150.278 +
150.279 + style('left').left = x(panel) - 12 + 'px';
150.280 + style('left').top = y(panel) + 53 - 12 + 'px';
150.281 +
150.282 + style('topLeft').left = x(panel) - 12 + 'px';
150.283 + style('topLeft').top = y(panel) - 12 + 'px';
150.284 +
150.285 + style('top').left = x(panel) + 'px';
150.286 + style('top').top = y(panel) - 12 + 'px';
150.287 +
150.288 + style('topRight').left = x(panel) + width(panel) + 'px';
150.289 + style('topRight').top = y(panel) - 12 + 'px';
150.290 +
150.291 + style('right').left = x(panel) + width(panel) + 'px';
150.292 + style('right').top = y(panel) + 53 - 12 + 'px';
150.293 +
150.294 + style('bottomRight').left = x(panel) + width(panel) + 'px';
150.295 + style('bottomRight').top = y(panel) + height(panel) + 'px';
150.296 +
150.297 + style('bottom').left = x(panel) + 'px';
150.298 + style('bottom').top = y(panel) + height(panel) + 'px';
150.299 +}
150.300 +
150.301 +function layout() {
150.302 + maxWidth = clientWidth();
150.303 + maxHeight = clientHeight();
150.304 + totalWidth = contentWidth();
150.305 + totalHeight = contentHeight();
150.306 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
150.307 + if (mode != 'dynamic') {
150.308 + dynamicMode();
150.309 + } else {
150.310 + resize();
150.311 + }
150.312 + } else if (mode != 'static') {
150.313 + staticMode();
150.314 + }
150.315 +}
150.316 +
150.317 +function remember() {
150.318 + document.cookie = 'javascript=on; path=/; secure';
150.319 +}
150.320 +
150.321 +window.onresize = function() {
150.322 + /*
150.323 + if (capable()) {
150.324 + layout();
150.325 + }
150.326 + */
150.327 + window.location.replace(unescape(window.location.pathname));
150.328 +}
150.329 +
150.330 +window.onload = function() {
150.331 + if (capable()) {
150.332 + layout();
150.333 + remember();
150.334 + }
150.335 +}
150.336 +
150.337 +/***********************************************************************/
150.338 +/* Copyright and Trademark Statement */
150.339 +/***********************************************************************/
150.340 +/* */
150.341 +/* All original textual and graphical site content: */
150.342 +/* */
150.343 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
150.344 +/* reserved. Reproduction in whole or in part without written */
150.345 +/* permission is prohibited. interos and the interos logos are */
150.346 +/* trademarks of Brent Angeline and interos LLC. All other company, */
150.347 +/* product, and service names mentioned herein may be the properties */
150.348 +/* of their respective owners. Comments in the interos.org forums */
150.349 +/* are the properties of their respective authors. All software */
150.350 +/* developed in the forums is open source and belongs to everyone. */
150.351 +/* */
150.352 +/***********************************************************************/
150.353 +/* e-mail: info@interos.com */
150.354 +/***********************************************************************/
151.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
151.2 +++ b/js/default_interos.com_ssl.js Sat May 01 16:19:36 2010 -0400
151.3 @@ -0,0 +1,351 @@
151.4 +/*******************************************************/
151.5 +/* interos Standard Document Header - Script */
151.6 +/*******************************************************/
151.7 +/* URIs: https://interos.com/js/default.js */
151.8 +/* https://*.interos.com/js/default.js */
151.9 +/* Description: Default JavaScript for interos */
151.10 +/* Author: Brent Angeline */
151.11 +/* Script: JavaScript */
151.12 +/*******************************************************/
151.13 +
151.14 +var panel, maxWidth, maxHeight, totalWidth, totalHeight;
151.15 +var mode = 'static';
151.16 +
151.17 +function capable() {
151.18 + return (document.createElementNS || document.createElement) &&
151.19 + document.getElementById && width('navigation') && initialize();
151.20 +}
151.21 +
151.22 +function initialize() {
151.23 + if (id('mainPanel')) {
151.24 + panel = 'mainPanel';
151.25 + return 1;
151.26 + } else if (id('titlePanel')) {
151.27 + panel = 'titlePanel';
151.28 + return 1;
151.29 + } else {
151.30 + return 0;
151.31 + }
151.32 +}
151.33 +
151.34 +function div() {
151.35 + if (document.createElementNS) {
151.36 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
151.37 + } else if (document.createElement) {
151.38 + return document.createElement('div');
151.39 + }
151.40 +}
151.41 +
151.42 +function id(e) {
151.43 + return document.getElementById(e);
151.44 +}
151.45 +
151.46 +function style(e) {
151.47 + return id(e).style;
151.48 +}
151.49 +
151.50 +function property(e, p) {
151.51 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
151.52 +}
151.53 +
151.54 +function width(e) {
151.55 + if (id(e).offsetWidth) {
151.56 + return id(e).offsetWidth;
151.57 + } else if (window.getComputedStyle) {
151.58 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
151.59 + } else {
151.60 + return 0;
151.61 + }
151.62 +}
151.63 +
151.64 +function height(e) {
151.65 + if (id(e).offsetHeight) {
151.66 + return id(e).offsetHeight;
151.67 + } else if (window.getComputedStyle) {
151.68 + return property(e, 'height').substring(0,
151.69 + property(e, 'height').indexOf('p'));
151.70 + } else {
151.71 + return 0;
151.72 + }
151.73 +}
151.74 +
151.75 +function x(e) {
151.76 + var x, done;
151.77 + x = done = 0;
151.78 + e = id(e);
151.79 + if (e.offsetParent) {
151.80 + while (e.offsetParent) {
151.81 + x += e.offsetLeft;
151.82 + e = e.offsetParent;
151.83 + }
151.84 + } else if (e.x) {
151.85 + x = e.x;
151.86 + }
151.87 + return x;
151.88 +}
151.89 +
151.90 +function y(e) {
151.91 + var y, done;
151.92 + y = done = 0;
151.93 + e = id(e);
151.94 + if (e.offsetParent) {
151.95 + while (e.offsetParent) {
151.96 + y += e.offsetTop;
151.97 + e = e.offsetParent;
151.98 + }
151.99 + } else if (e.y) {
151.100 + y = e.y;
151.101 + }
151.102 + return y;
151.103 +}
151.104 +
151.105 +function content(e, string) {
151.106 + if (document.all) {
151.107 + document.all[e].innerHTML = string;
151.108 + } else if (id(e).innerHTML) {
151.109 + id(e).innerHTML = string;
151.110 + }
151.111 +}
151.112 +
151.113 +function clientWidth() {
151.114 + var width = 0;
151.115 + if (self.innerWidth) {
151.116 + width = self.innerWidth;
151.117 + } else if (document.documentElement && document.documentElement.clientWidth) {
151.118 + width = document.documentElement.clientWidth;
151.119 + } else if (document.body) {
151.120 + width = document.body.clientWidth;
151.121 + }
151.122 + return width;
151.123 +}
151.124 +
151.125 +function clientHeight() {
151.126 + var height = 0;
151.127 + if (self.innerHeight) {
151.128 + height = self.innerHeight;
151.129 + } else if (document.documentElement &&
151.130 + document.documentElement.clientHeight) {
151.131 + height = document.documentElement.clientHeight;
151.132 + } else if (document.body) {
151.133 + height = document.body.clientHeight;
151.134 + }
151.135 + return height;
151.136 +}
151.137 +
151.138 +function contentWidth() {
151.139 + return (12 + width(panel) + 18);
151.140 +}
151.141 +
151.142 +function contentHeight() {
151.143 + return (height('navigation') + 16 + 12 + height(panel) + 18 + 16 +
151.144 + height('copyrightDates'));
151.145 +}
151.146 +
151.147 +function dynamicMode() {
151.148 + var bottomLeft = div();
151.149 + var left = div();
151.150 + var topLeft = div();
151.151 + var top = div();
151.152 + var topRight = div();
151.153 + var right = div();
151.154 + var bottomRight= div();
151.155 + var bottom = div();
151.156 +
151.157 + style('copyrightDates').width = width('copyrightDates') + 'px';
151.158 + style('copyrightDates').left = x('copyrightDates') + 'px';
151.159 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
151.160 + height('navigation') + 16 + 12 +
151.161 + height(panel) + 18 + 16 + 'px';
151.162 + style('copyrightDates').position = 'absolute';
151.163 + style('copyrightDates').margin = 0;
151.164 +
151.165 + if ((clientWidth() - contentWidth()) < 9) {
151.166 + style(panel).width = width(panel) - 24 + 'px';
151.167 + }
151.168 + if (panel == 'mainPanel') {
151.169 + style('body').marginLeft = '0';
151.170 + style('body').marginRight = '0';
151.171 + }
151.172 + style(panel).border = 0;
151.173 + style(panel).left = x(panel) + 'px';
151.174 + style(panel).top = ((maxHeight - totalHeight) / 2) + height('navigation') +
151.175 + 16 + 12 + 'px';
151.176 + style(panel).position = 'absolute';
151.177 +
151.178 + style('navigation').width = width('navigation') + 'px';
151.179 + style('navigation').left = x('navigation') + 'px';
151.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
151.181 + style('navigation').position = 'absolute';
151.182 +
151.183 + bottomLeft.setAttribute('id', 'bottomLeft');
151.184 + id('body').appendChild(bottomLeft);
151.185 + style('bottomLeft').left = x(panel) - 12 + 'px';
151.186 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
151.187 +
151.188 + left.setAttribute('id', 'left');
151.189 + id('body').appendChild(left);
151.190 + style('left').height = height(panel) - 84 + 'px';
151.191 + style('left').left = x(panel) - 12 + 'px';
151.192 + style('left').top = y(panel) + 84 + 'px';
151.193 +
151.194 + topLeft.setAttribute('id', 'topLeft');
151.195 + id('body').appendChild(topLeft);
151.196 + style('topLeft').left = x(panel) - 12 + 'px';
151.197 + style('topLeft').top = y(panel) - 12 + 'px';
151.198 +
151.199 + top.setAttribute('id', 'top');
151.200 + id('body').appendChild(top);
151.201 + style('top').width = width(panel) + 'px';
151.202 + style('top').left = x(panel) + 'px';
151.203 + style('top').top = y(panel) - 12 + 'px';
151.204 +
151.205 + topRight.setAttribute('id', 'topRight');
151.206 + id('body').appendChild(topRight);
151.207 + style('topRight').left = x(panel) + width(panel) + 'px';
151.208 + style('topRight').top = y(panel) - 12 + 'px';
151.209 +
151.210 + right.setAttribute('id', 'right');
151.211 + id('body').appendChild(right);
151.212 + style('right').height = height(panel) - 84 + 'px';
151.213 + style('right').left = x(panel) + width(panel) + 'px';
151.214 + style('right').top = y(panel) + 84 + 'px';
151.215 +
151.216 + bottomRight.setAttribute('id', 'bottomRight');
151.217 + id('body').appendChild(bottomRight);
151.218 + style('bottomRight').left = x(panel) + width(panel) + 'px';
151.219 + style('bottomRight').top = y(panel) + height(panel) + 'px';
151.220 +
151.221 + bottom.setAttribute('id', 'bottom');
151.222 + id('body').appendChild(bottom);
151.223 + style('bottom').width = width(panel) + 'px';
151.224 + style('bottom').left = x(panel) + 'px';
151.225 + style('bottom').top = y(panel) + height(panel) + 'px';
151.226 +
151.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
151.228 + style('left').background = 'url(/images/panel/left.gif)';
151.229 + style('topLeft').background = 'url(/images/panel/main/top_left.gif)';
151.230 + style('top').background = 'url(/images/panel/main/top.gif)';
151.231 + style('topRight').background = 'url(/images/panel/main/top_right.gif)';
151.232 + style('right').background = 'url(/images/panel/right.gif)';
151.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
151.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
151.235 +
151.236 + mode = 'dynamic';
151.237 +}
151.238 +
151.239 +function staticMode() {
151.240 + style('body').marginLeft = '19px';
151.241 + style('body').marginRight = '19px';
151.242 +
151.243 + style('copyrightDates').width = '';
151.244 + style('copyrightDates').left = '';
151.245 + style('copyrightDates').bottom = '';
151.246 + style('copyrightDates').position = '';
151.247 + style('copyrightDates').margin = '';
151.248 +
151.249 + style(panel).border = '';
151.250 + style(panel).width = '';
151.251 + style(panel).left = '';
151.252 + style(panel).top = '';
151.253 + style(panel).position = '';
151.254 +
151.255 + style('navigation').width = '';
151.256 + style('navigation').left = '';
151.257 + style('navigation').top = '';
151.258 + style('navigation').position = '';
151.259 +
151.260 + /* more code */
151.261 +
151.262 + mode = 'static';
151.263 +}
151.264 +
151.265 +function resize() {
151.266 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
151.267 + 'px';
151.268 +
151.269 + style(panel).left = ((maxWidth - width(panel)) / 2) + 'px';
151.270 + style(panel).top = ((maxHeight - totalHeight) / 2) +
151.271 + height('navigation') + 16 + 12 + 'px';
151.272 +
151.273 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
151.274 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
151.275 +
151.276 + style('bottomLeft').left = x(panel) - 12 + 'px';
151.277 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
151.278 +
151.279 + style('left').left = x(panel) - 12 + 'px';
151.280 + style('left').top = y(panel) + 53 - 12 + 'px';
151.281 +
151.282 + style('topLeft').left = x(panel) - 12 + 'px';
151.283 + style('topLeft').top = y(panel) - 12 + 'px';
151.284 +
151.285 + style('top').left = x(panel) + 'px';
151.286 + style('top').top = y(panel) - 12 + 'px';
151.287 +
151.288 + style('topRight').left = x(panel) + width(panel) + 'px';
151.289 + style('topRight').top = y(panel) - 12 + 'px';
151.290 +
151.291 + style('right').left = x(panel) + width(panel) + 'px';
151.292 + style('right').top = y(panel) + 53 - 12 + 'px';
151.293 +
151.294 + style('bottomRight').left = x(panel) + width(panel) + 'px';
151.295 + style('bottomRight').top = y(panel) + height(panel) + 'px';
151.296 +
151.297 + style('bottom').left = x(panel) + 'px';
151.298 + style('bottom').top = y(panel) + height(panel) + 'px';
151.299 +}
151.300 +
151.301 +function layout() {
151.302 + maxWidth = clientWidth();
151.303 + maxHeight = clientHeight();
151.304 + totalWidth = contentWidth();
151.305 + totalHeight = contentHeight();
151.306 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
151.307 + if (mode != 'dynamic') {
151.308 + dynamicMode();
151.309 + } else {
151.310 + resize();
151.311 + }
151.312 + } else if (mode != 'static') {
151.313 + staticMode();
151.314 + }
151.315 +}
151.316 +
151.317 +function remember() {
151.318 + document.cookie = 'javascript=on; path=/; secure';
151.319 +}
151.320 +
151.321 +window.onresize = function() {
151.322 + /*
151.323 + if (capable()) {
151.324 + layout();
151.325 + }
151.326 + */
151.327 + window.location.replace(unescape(window.location.pathname));
151.328 +}
151.329 +
151.330 +window.onload = function() {
151.331 + if (capable()) {
151.332 + layout();
151.333 + remember();
151.334 + }
151.335 +}
151.336 +
151.337 +/***********************************************************************/
151.338 +/* Copyright and Trademark Statement */
151.339 +/***********************************************************************/
151.340 +/* */
151.341 +/* All original textual and graphical site content: */
151.342 +/* */
151.343 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
151.344 +/* reserved. Reproduction in whole or in part without written */
151.345 +/* permission is prohibited. interos and the interos logos are */
151.346 +/* trademarks of Brent Angeline and interos LLC. All other company, */
151.347 +/* product, and service names mentioned herein may be the properties */
151.348 +/* of their respective owners. Comments in the interos.org forums */
151.349 +/* are the properties of their respective authors. All software */
151.350 +/* developed in the forums is open source and belongs to everyone. */
151.351 +/* */
151.352 +/***********************************************************************/
151.353 +/* e-mail: info@interos.com */
151.354 +/***********************************************************************/
152.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
152.2 +++ b/js/default_interos.org.js Sat May 01 16:19:36 2010 -0400
152.3 @@ -0,0 +1,351 @@
152.4 +/******************************************************/
152.5 +/* interos Standard Document Header - Script */
152.6 +/******************************************************/
152.7 +/* URIs: http://interos.org/js/default.js */
152.8 +/* http://*.interos.org/js/default.js */
152.9 +/* Description: Default JavaScript for interos */
152.10 +/* Author: Brent Angeline */
152.11 +/* Script: JavaScript */
152.12 +/******************************************************/
152.13 +
152.14 +var panel, maxWidth, maxHeight, totalWidth, totalHeight;
152.15 +var mode = 'static';
152.16 +
152.17 +function capable() {
152.18 + return (document.createElementNS || document.createElement) &&
152.19 + document.getElementById && width('navigation') && initialize();
152.20 +}
152.21 +
152.22 +function initialize() {
152.23 + if (id('mainPanel')) {
152.24 + panel = 'mainPanel';
152.25 + return 1;
152.26 + } else if (id('titlePanel')) {
152.27 + panel = 'titlePanel';
152.28 + return 1;
152.29 + } else {
152.30 + return 0;
152.31 + }
152.32 +}
152.33 +
152.34 +function div() {
152.35 + if (document.createElementNS) {
152.36 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
152.37 + } else if (document.createElement) {
152.38 + return document.createElement('div');
152.39 + }
152.40 +}
152.41 +
152.42 +function id(e) {
152.43 + return document.getElementById(e);
152.44 +}
152.45 +
152.46 +function style(e) {
152.47 + return id(e).style;
152.48 +}
152.49 +
152.50 +function property(e, p) {
152.51 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
152.52 +}
152.53 +
152.54 +function width(e) {
152.55 + if (id(e).offsetWidth) {
152.56 + return id(e).offsetWidth;
152.57 + } else if (window.getComputedStyle) {
152.58 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
152.59 + } else {
152.60 + return 0;
152.61 + }
152.62 +}
152.63 +
152.64 +function height(e) {
152.65 + if (id(e).offsetHeight) {
152.66 + return id(e).offsetHeight;
152.67 + } else if (window.getComputedStyle) {
152.68 + return property(e, 'height').substring(0,
152.69 + property(e, 'height').indexOf('p'));
152.70 + } else {
152.71 + return 0;
152.72 + }
152.73 +}
152.74 +
152.75 +function x(e) {
152.76 + var x, done;
152.77 + x = done = 0;
152.78 + e = id(e);
152.79 + if (e.offsetParent) {
152.80 + while (e.offsetParent) {
152.81 + x += e.offsetLeft;
152.82 + e = e.offsetParent;
152.83 + }
152.84 + } else if (e.x) {
152.85 + x = e.x;
152.86 + }
152.87 + return x;
152.88 +}
152.89 +
152.90 +function y(e) {
152.91 + var y, done;
152.92 + y = done = 0;
152.93 + e = id(e);
152.94 + if (e.offsetParent) {
152.95 + while (e.offsetParent) {
152.96 + y += e.offsetTop;
152.97 + e = e.offsetParent;
152.98 + }
152.99 + } else if (e.y) {
152.100 + y = e.y;
152.101 + }
152.102 + return y;
152.103 +}
152.104 +
152.105 +function content(e, string) {
152.106 + if (document.all) {
152.107 + document.all[e].innerHTML = string;
152.108 + } else if (id(e).innerHTML) {
152.109 + id(e).innerHTML = string;
152.110 + }
152.111 +}
152.112 +
152.113 +function clientWidth() {
152.114 + var width = 0;
152.115 + if (self.innerWidth) {
152.116 + width = self.innerWidth;
152.117 + } else if (document.documentElement && document.documentElement.clientWidth) {
152.118 + width = document.documentElement.clientWidth;
152.119 + } else if (document.body) {
152.120 + width = document.body.clientWidth;
152.121 + }
152.122 + return width;
152.123 +}
152.124 +
152.125 +function clientHeight() {
152.126 + var height = 0;
152.127 + if (self.innerHeight) {
152.128 + height = self.innerHeight;
152.129 + } else if (document.documentElement &&
152.130 + document.documentElement.clientHeight) {
152.131 + height = document.documentElement.clientHeight;
152.132 + } else if (document.body) {
152.133 + height = document.body.clientHeight;
152.134 + }
152.135 + return height;
152.136 +}
152.137 +
152.138 +function contentWidth() {
152.139 + return (12 + width(panel) + 18);
152.140 +}
152.141 +
152.142 +function contentHeight() {
152.143 + return (height('navigation') + 16 + 12 + height(panel) + 18 + 16 +
152.144 + height('copyrightDates'));
152.145 +}
152.146 +
152.147 +function dynamicMode() {
152.148 + var bottomLeft = div();
152.149 + var left = div();
152.150 + var topLeft = div();
152.151 + var top = div();
152.152 + var topRight = div();
152.153 + var right = div();
152.154 + var bottomRight= div();
152.155 + var bottom = div();
152.156 +
152.157 + style('copyrightDates').width = width('copyrightDates') + 'px';
152.158 + style('copyrightDates').left = x('copyrightDates') + 'px';
152.159 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
152.160 + height('navigation') + 16 + 12 +
152.161 + height(panel) + 18 + 16 + 'px';
152.162 + style('copyrightDates').position = 'absolute';
152.163 + style('copyrightDates').margin = 0;
152.164 +
152.165 + if ((clientWidth() - contentWidth()) < 9) {
152.166 + style(panel).width = width(panel) - 24 + 'px';
152.167 + }
152.168 + if (panel == 'mainPanel') {
152.169 + style('body').marginLeft = '0';
152.170 + style('body').marginRight = '0';
152.171 + }
152.172 + style(panel).border = 0;
152.173 + style(panel).left = x(panel) + 'px';
152.174 + style(panel).top = ((maxHeight - totalHeight) / 2) + height('navigation') +
152.175 + 16 + 12 + 'px';
152.176 + style(panel).position = 'absolute';
152.177 +
152.178 + style('navigation').width = width('navigation') + 'px';
152.179 + style('navigation').left = x('navigation') + 'px';
152.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
152.181 + style('navigation').position = 'absolute';
152.182 +
152.183 + bottomLeft.setAttribute('id', 'bottomLeft');
152.184 + id('body').appendChild(bottomLeft);
152.185 + style('bottomLeft').left = x(panel) - 12 + 'px';
152.186 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
152.187 +
152.188 + left.setAttribute('id', 'left');
152.189 + id('body').appendChild(left);
152.190 + style('left').height = height(panel) - 84 + 'px';
152.191 + style('left').left = x(panel) - 12 + 'px';
152.192 + style('left').top = y(panel) + 84 + 'px';
152.193 +
152.194 + topLeft.setAttribute('id', 'topLeft');
152.195 + id('body').appendChild(topLeft);
152.196 + style('topLeft').left = x(panel) - 12 + 'px';
152.197 + style('topLeft').top = y(panel) - 12 + 'px';
152.198 +
152.199 + top.setAttribute('id', 'top');
152.200 + id('body').appendChild(top);
152.201 + style('top').width = width(panel) + 'px';
152.202 + style('top').left = x(panel) + 'px';
152.203 + style('top').top = y(panel) - 12 + 'px';
152.204 +
152.205 + topRight.setAttribute('id', 'topRight');
152.206 + id('body').appendChild(topRight);
152.207 + style('topRight').left = x(panel) + width(panel) + 'px';
152.208 + style('topRight').top = y(panel) - 12 + 'px';
152.209 +
152.210 + right.setAttribute('id', 'right');
152.211 + id('body').appendChild(right);
152.212 + style('right').height = height(panel) - 84 + 'px';
152.213 + style('right').left = x(panel) + width(panel) + 'px';
152.214 + style('right').top = y(panel) + 84 + 'px';
152.215 +
152.216 + bottomRight.setAttribute('id', 'bottomRight');
152.217 + id('body').appendChild(bottomRight);
152.218 + style('bottomRight').left = x(panel) + width(panel) + 'px';
152.219 + style('bottomRight').top = y(panel) + height(panel) + 'px';
152.220 +
152.221 + bottom.setAttribute('id', 'bottom');
152.222 + id('body').appendChild(bottom);
152.223 + style('bottom').width = width(panel) + 'px';
152.224 + style('bottom').left = x(panel) + 'px';
152.225 + style('bottom').top = y(panel) + height(panel) + 'px';
152.226 +
152.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
152.228 + style('left').background = 'url(/images/panel/left.gif)';
152.229 + style('topLeft').background = 'url(/images/panel/main/top_left.gif)';
152.230 + style('top').background = 'url(/images/panel/main/top.gif)';
152.231 + style('topRight').background = 'url(/images/panel/main/top_right.gif)';
152.232 + style('right').background = 'url(/images/panel/right.gif)';
152.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
152.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
152.235 +
152.236 + mode = 'dynamic';
152.237 +}
152.238 +
152.239 +function staticMode() {
152.240 + style('body').marginLeft = '19px';
152.241 + style('body').marginRight = '19px';
152.242 +
152.243 + style('copyrightDates').width = '';
152.244 + style('copyrightDates').left = '';
152.245 + style('copyrightDates').bottom = '';
152.246 + style('copyrightDates').position = '';
152.247 + style('copyrightDates').margin = '';
152.248 +
152.249 + style(panel).border = '';
152.250 + style(panel).width = '';
152.251 + style(panel).left = '';
152.252 + style(panel).top = '';
152.253 + style(panel).position = '';
152.254 +
152.255 + style('navigation').width = '';
152.256 + style('navigation').left = '';
152.257 + style('navigation').top = '';
152.258 + style('navigation').position = '';
152.259 +
152.260 + /* more code */
152.261 +
152.262 + mode = 'static';
152.263 +}
152.264 +
152.265 +function resize() {
152.266 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
152.267 + 'px';
152.268 +
152.269 + style(panel).left = ((maxWidth - width(panel)) / 2) + 'px';
152.270 + style(panel).top = ((maxHeight - totalHeight) / 2) +
152.271 + height('navigation') + 16 + 12 + 'px';
152.272 +
152.273 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
152.274 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
152.275 +
152.276 + style('bottomLeft').left = x(panel) - 12 + 'px';
152.277 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
152.278 +
152.279 + style('left').left = x(panel) - 12 + 'px';
152.280 + style('left').top = y(panel) + 53 - 12 + 'px';
152.281 +
152.282 + style('topLeft').left = x(panel) - 12 + 'px';
152.283 + style('topLeft').top = y(panel) - 12 + 'px';
152.284 +
152.285 + style('top').left = x(panel) + 'px';
152.286 + style('top').top = y(panel) - 12 + 'px';
152.287 +
152.288 + style('topRight').left = x(panel) + width(panel) + 'px';
152.289 + style('topRight').top = y(panel) - 12 + 'px';
152.290 +
152.291 + style('right').left = x(panel) + width(panel) + 'px';
152.292 + style('right').top = y(panel) + 53 - 12 + 'px';
152.293 +
152.294 + style('bottomRight').left = x(panel) + width(panel) + 'px';
152.295 + style('bottomRight').top = y(panel) + height(panel) + 'px';
152.296 +
152.297 + style('bottom').left = x(panel) + 'px';
152.298 + style('bottom').top = y(panel) + height(panel) + 'px';
152.299 +}
152.300 +
152.301 +function layout() {
152.302 + maxWidth = clientWidth();
152.303 + maxHeight = clientHeight();
152.304 + totalWidth = contentWidth();
152.305 + totalHeight = contentHeight();
152.306 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
152.307 + if (mode != 'dynamic') {
152.308 + dynamicMode();
152.309 + } else {
152.310 + resize();
152.311 + }
152.312 + } else if (mode != 'static') {
152.313 + staticMode();
152.314 + }
152.315 +}
152.316 +
152.317 +function remember() {
152.318 + document.cookie = 'javascript=on; path=/; secure';
152.319 +}
152.320 +
152.321 +window.onresize = function() {
152.322 + /*
152.323 + if (capable()) {
152.324 + layout();
152.325 + }
152.326 + */
152.327 + window.location.replace(unescape(window.location.pathname));
152.328 +}
152.329 +
152.330 +window.onload = function() {
152.331 + if (capable()) {
152.332 + layout();
152.333 + remember();
152.334 + }
152.335 +}
152.336 +
152.337 +/***********************************************************************/
152.338 +/* Copyright and Trademark Statement */
152.339 +/***********************************************************************/
152.340 +/* */
152.341 +/* All original textual and graphical site content: */
152.342 +/* */
152.343 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
152.344 +/* reserved. Reproduction in whole or in part without written */
152.345 +/* permission is prohibited. interos and the interos logos are */
152.346 +/* trademarks of Brent Angeline and interos LLC. All other company, */
152.347 +/* product, and service names mentioned herein may be the properties */
152.348 +/* of their respective owners. Comments in the interos.org forums */
152.349 +/* are the properties of their respective authors. All software */
152.350 +/* developed in the forums is open source and belongs to everyone. */
152.351 +/* */
152.352 +/***********************************************************************/
152.353 +/* e-mail: info@interos.org */
152.354 +/***********************************************************************/
153.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
153.2 +++ b/js/default_interos.org_ssl.js Sat May 01 16:19:36 2010 -0400
153.3 @@ -0,0 +1,351 @@
153.4 +/*******************************************************/
153.5 +/* interos Standard Document Header - Script */
153.6 +/*******************************************************/
153.7 +/* URIs: https://interos.org/js/default.js */
153.8 +/* https://*.interos.org/js/default.js */
153.9 +/* Description: Default JavaScript for interos */
153.10 +/* Author: Brent Angeline */
153.11 +/* Script: JavaScript */
153.12 +/*******************************************************/
153.13 +
153.14 +var panel, maxWidth, maxHeight, totalWidth, totalHeight;
153.15 +var mode = 'static';
153.16 +
153.17 +function capable() {
153.18 + return (document.createElementNS || document.createElement) &&
153.19 + document.getElementById && width('navigation') && initialize();
153.20 +}
153.21 +
153.22 +function initialize() {
153.23 + if (id('mainPanel')) {
153.24 + panel = 'mainPanel';
153.25 + return 1;
153.26 + } else if (id('titlePanel')) {
153.27 + panel = 'titlePanel';
153.28 + return 1;
153.29 + } else {
153.30 + return 0;
153.31 + }
153.32 +}
153.33 +
153.34 +function div() {
153.35 + if (document.createElementNS) {
153.36 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
153.37 + } else if (document.createElement) {
153.38 + return document.createElement('div');
153.39 + }
153.40 +}
153.41 +
153.42 +function id(e) {
153.43 + return document.getElementById(e);
153.44 +}
153.45 +
153.46 +function style(e) {
153.47 + return id(e).style;
153.48 +}
153.49 +
153.50 +function property(e, p) {
153.51 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
153.52 +}
153.53 +
153.54 +function width(e) {
153.55 + if (id(e).offsetWidth) {
153.56 + return id(e).offsetWidth;
153.57 + } else if (window.getComputedStyle) {
153.58 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
153.59 + } else {
153.60 + return 0;
153.61 + }
153.62 +}
153.63 +
153.64 +function height(e) {
153.65 + if (id(e).offsetHeight) {
153.66 + return id(e).offsetHeight;
153.67 + } else if (window.getComputedStyle) {
153.68 + return property(e, 'height').substring(0,
153.69 + property(e, 'height').indexOf('p'));
153.70 + } else {
153.71 + return 0;
153.72 + }
153.73 +}
153.74 +
153.75 +function x(e) {
153.76 + var x, done;
153.77 + x = done = 0;
153.78 + e = id(e);
153.79 + if (e.offsetParent) {
153.80 + while (e.offsetParent) {
153.81 + x += e.offsetLeft;
153.82 + e = e.offsetParent;
153.83 + }
153.84 + } else if (e.x) {
153.85 + x = e.x;
153.86 + }
153.87 + return x;
153.88 +}
153.89 +
153.90 +function y(e) {
153.91 + var y, done;
153.92 + y = done = 0;
153.93 + e = id(e);
153.94 + if (e.offsetParent) {
153.95 + while (e.offsetParent) {
153.96 + y += e.offsetTop;
153.97 + e = e.offsetParent;
153.98 + }
153.99 + } else if (e.y) {
153.100 + y = e.y;
153.101 + }
153.102 + return y;
153.103 +}
153.104 +
153.105 +function content(e, string) {
153.106 + if (document.all) {
153.107 + document.all[e].innerHTML = string;
153.108 + } else if (id(e).innerHTML) {
153.109 + id(e).innerHTML = string;
153.110 + }
153.111 +}
153.112 +
153.113 +function clientWidth() {
153.114 + var width = 0;
153.115 + if (self.innerWidth) {
153.116 + width = self.innerWidth;
153.117 + } else if (document.documentElement && document.documentElement.clientWidth) {
153.118 + width = document.documentElement.clientWidth;
153.119 + } else if (document.body) {
153.120 + width = document.body.clientWidth;
153.121 + }
153.122 + return width;
153.123 +}
153.124 +
153.125 +function clientHeight() {
153.126 + var height = 0;
153.127 + if (self.innerHeight) {
153.128 + height = self.innerHeight;
153.129 + } else if (document.documentElement &&
153.130 + document.documentElement.clientHeight) {
153.131 + height = document.documentElement.clientHeight;
153.132 + } else if (document.body) {
153.133 + height = document.body.clientHeight;
153.134 + }
153.135 + return height;
153.136 +}
153.137 +
153.138 +function contentWidth() {
153.139 + return (12 + width(panel) + 18);
153.140 +}
153.141 +
153.142 +function contentHeight() {
153.143 + return (height('navigation') + 16 + 12 + height(panel) + 18 + 16 +
153.144 + height('copyrightDates'));
153.145 +}
153.146 +
153.147 +function dynamicMode() {
153.148 + var bottomLeft = div();
153.149 + var left = div();
153.150 + var topLeft = div();
153.151 + var top = div();
153.152 + var topRight = div();
153.153 + var right = div();
153.154 + var bottomRight= div();
153.155 + var bottom = div();
153.156 +
153.157 + style('copyrightDates').width = width('copyrightDates') + 'px';
153.158 + style('copyrightDates').left = x('copyrightDates') + 'px';
153.159 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
153.160 + height('navigation') + 16 + 12 +
153.161 + height(panel) + 18 + 16 + 'px';
153.162 + style('copyrightDates').position = 'absolute';
153.163 + style('copyrightDates').margin = 0;
153.164 +
153.165 + if ((clientWidth() - contentWidth()) < 9) {
153.166 + style(panel).width = width(panel) - 24 + 'px';
153.167 + }
153.168 + if (panel == 'mainPanel') {
153.169 + style('body').marginLeft = '0';
153.170 + style('body').marginRight = '0';
153.171 + }
153.172 + style(panel).border = 0;
153.173 + style(panel).left = x(panel) + 'px';
153.174 + style(panel).top = ((maxHeight - totalHeight) / 2) + height('navigation') +
153.175 + 16 + 12 + 'px';
153.176 + style(panel).position = 'absolute';
153.177 +
153.178 + style('navigation').width = width('navigation') + 'px';
153.179 + style('navigation').left = x('navigation') + 'px';
153.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
153.181 + style('navigation').position = 'absolute';
153.182 +
153.183 + bottomLeft.setAttribute('id', 'bottomLeft');
153.184 + id('body').appendChild(bottomLeft);
153.185 + style('bottomLeft').left = x(panel) - 12 + 'px';
153.186 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
153.187 +
153.188 + left.setAttribute('id', 'left');
153.189 + id('body').appendChild(left);
153.190 + style('left').height = height(panel) - 84 + 'px';
153.191 + style('left').left = x(panel) - 12 + 'px';
153.192 + style('left').top = y(panel) + 84 + 'px';
153.193 +
153.194 + topLeft.setAttribute('id', 'topLeft');
153.195 + id('body').appendChild(topLeft);
153.196 + style('topLeft').left = x(panel) - 12 + 'px';
153.197 + style('topLeft').top = y(panel) - 12 + 'px';
153.198 +
153.199 + top.setAttribute('id', 'top');
153.200 + id('body').appendChild(top);
153.201 + style('top').width = width(panel) + 'px';
153.202 + style('top').left = x(panel) + 'px';
153.203 + style('top').top = y(panel) - 12 + 'px';
153.204 +
153.205 + topRight.setAttribute('id', 'topRight');
153.206 + id('body').appendChild(topRight);
153.207 + style('topRight').left = x(panel) + width(panel) + 'px';
153.208 + style('topRight').top = y(panel) - 12 + 'px';
153.209 +
153.210 + right.setAttribute('id', 'right');
153.211 + id('body').appendChild(right);
153.212 + style('right').height = height(panel) - 84 + 'px';
153.213 + style('right').left = x(panel) + width(panel) + 'px';
153.214 + style('right').top = y(panel) + 84 + 'px';
153.215 +
153.216 + bottomRight.setAttribute('id', 'bottomRight');
153.217 + id('body').appendChild(bottomRight);
153.218 + style('bottomRight').left = x(panel) + width(panel) + 'px';
153.219 + style('bottomRight').top = y(panel) + height(panel) + 'px';
153.220 +
153.221 + bottom.setAttribute('id', 'bottom');
153.222 + id('body').appendChild(bottom);
153.223 + style('bottom').width = width(panel) + 'px';
153.224 + style('bottom').left = x(panel) + 'px';
153.225 + style('bottom').top = y(panel) + height(panel) + 'px';
153.226 +
153.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
153.228 + style('left').background = 'url(/images/panel/left.gif)';
153.229 + style('topLeft').background = 'url(/images/panel/main/top_left.gif)';
153.230 + style('top').background = 'url(/images/panel/main/top.gif)';
153.231 + style('topRight').background = 'url(/images/panel/main/top_right.gif)';
153.232 + style('right').background = 'url(/images/panel/right.gif)';
153.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
153.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
153.235 +
153.236 + mode = 'dynamic';
153.237 +}
153.238 +
153.239 +function staticMode() {
153.240 + style('body').marginLeft = '19px';
153.241 + style('body').marginRight = '19px';
153.242 +
153.243 + style('copyrightDates').width = '';
153.244 + style('copyrightDates').left = '';
153.245 + style('copyrightDates').bottom = '';
153.246 + style('copyrightDates').position = '';
153.247 + style('copyrightDates').margin = '';
153.248 +
153.249 + style(panel).border = '';
153.250 + style(panel).width = '';
153.251 + style(panel).left = '';
153.252 + style(panel).top = '';
153.253 + style(panel).position = '';
153.254 +
153.255 + style('navigation').width = '';
153.256 + style('navigation').left = '';
153.257 + style('navigation').top = '';
153.258 + style('navigation').position = '';
153.259 +
153.260 + /* more code */
153.261 +
153.262 + mode = 'static';
153.263 +}
153.264 +
153.265 +function resize() {
153.266 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
153.267 + 'px';
153.268 +
153.269 + style(panel).left = ((maxWidth - width(panel)) / 2) + 'px';
153.270 + style(panel).top = ((maxHeight - totalHeight) / 2) +
153.271 + height('navigation') + 16 + 12 + 'px';
153.272 +
153.273 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
153.274 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
153.275 +
153.276 + style('bottomLeft').left = x(panel) - 12 + 'px';
153.277 + style('bottomLeft').top = y(panel) + height(panel) + 'px';
153.278 +
153.279 + style('left').left = x(panel) - 12 + 'px';
153.280 + style('left').top = y(panel) + 53 - 12 + 'px';
153.281 +
153.282 + style('topLeft').left = x(panel) - 12 + 'px';
153.283 + style('topLeft').top = y(panel) - 12 + 'px';
153.284 +
153.285 + style('top').left = x(panel) + 'px';
153.286 + style('top').top = y(panel) - 12 + 'px';
153.287 +
153.288 + style('topRight').left = x(panel) + width(panel) + 'px';
153.289 + style('topRight').top = y(panel) - 12 + 'px';
153.290 +
153.291 + style('right').left = x(panel) + width(panel) + 'px';
153.292 + style('right').top = y(panel) + 53 - 12 + 'px';
153.293 +
153.294 + style('bottomRight').left = x(panel) + width(panel) + 'px';
153.295 + style('bottomRight').top = y(panel) + height(panel) + 'px';
153.296 +
153.297 + style('bottom').left = x(panel) + 'px';
153.298 + style('bottom').top = y(panel) + height(panel) + 'px';
153.299 +}
153.300 +
153.301 +function layout() {
153.302 + maxWidth = clientWidth();
153.303 + maxHeight = clientHeight();
153.304 + totalWidth = contentWidth();
153.305 + totalHeight = contentHeight();
153.306 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
153.307 + if (mode != 'dynamic') {
153.308 + dynamicMode();
153.309 + } else {
153.310 + resize();
153.311 + }
153.312 + } else if (mode != 'static') {
153.313 + staticMode();
153.314 + }
153.315 +}
153.316 +
153.317 +function remember() {
153.318 + document.cookie = 'javascript=on; path=/; secure';
153.319 +}
153.320 +
153.321 +window.onresize = function() {
153.322 + /*
153.323 + if (capable()) {
153.324 + layout();
153.325 + }
153.326 + */
153.327 + window.location.replace(unescape(window.location.pathname));
153.328 +}
153.329 +
153.330 +window.onload = function() {
153.331 + if (capable()) {
153.332 + layout();
153.333 + remember();
153.334 + }
153.335 +}
153.336 +
153.337 +/***********************************************************************/
153.338 +/* Copyright and Trademark Statement */
153.339 +/***********************************************************************/
153.340 +/* */
153.341 +/* All original textual and graphical site content: */
153.342 +/* */
153.343 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
153.344 +/* reserved. Reproduction in whole or in part without written */
153.345 +/* permission is prohibited. interos and the interos logos are */
153.346 +/* trademarks of Brent Angeline and interos LLC. All other company, */
153.347 +/* product, and service names mentioned herein may be the properties */
153.348 +/* of their respective owners. Comments in the interos.org forums */
153.349 +/* are the properties of their respective authors. All software */
153.350 +/* developed in the forums is open source and belongs to everyone. */
153.351 +/* */
153.352 +/***********************************************************************/
153.353 +/* e-mail: info@interos.org */
153.354 +/***********************************************************************/
154.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
154.2 +++ b/js/home_interos.com.js Sat May 01 16:19:36 2010 -0400
154.3 @@ -0,0 +1,375 @@
154.4 +/*****************************************************/
154.5 +/* interos Standard Document Header - Script */
154.6 +/*****************************************************/
154.7 +/* URIs: http://interos.com/js/home.js */
154.8 +/* http://www.interos.com/js/home.js */
154.9 +/* Description: JavaScript for interos */
154.10 +/* Author: Brent Angeline */
154.11 +/* Script: JavaScript */
154.12 +/*****************************************************/
154.13 +
154.14 +var maxWidth, maxHeight, totalWidth, totalHeight;
154.15 +var mode = 'static';
154.16 +
154.17 +function capable() {
154.18 + return (document.createElementNS || document.createElement) &&
154.19 + document.getElementById && width('navigation');
154.20 +}
154.21 +
154.22 +function div() {
154.23 + if (document.createElementNS) {
154.24 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
154.25 + } else if (document.createElement) {
154.26 + return document.createElement('div');
154.27 + }
154.28 +}
154.29 +
154.30 +function id(e) {
154.31 + return document.getElementById(e);
154.32 +}
154.33 +
154.34 +function style(e) {
154.35 + return id(e).style;
154.36 +}
154.37 +
154.38 +function property(e, p) {
154.39 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
154.40 +}
154.41 +
154.42 +function width(e) {
154.43 + if (id(e).offsetWidth) {
154.44 + return id(e).offsetWidth;
154.45 + } else if (window.getComputedStyle) {
154.46 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
154.47 + } else {
154.48 + return 0;
154.49 + }
154.50 +}
154.51 +
154.52 +function height(e) {
154.53 + if (id(e).offsetHeight) {
154.54 + return id(e).offsetHeight;
154.55 + } else if (window.getComputedStyle) {
154.56 + return property(e, 'height').substring(0,
154.57 + property(e, 'height').indexOf('p'));
154.58 + } else {
154.59 + return 0;
154.60 + }
154.61 +}
154.62 +
154.63 +function x(e) {
154.64 + var x, done;
154.65 + x = done = 0;
154.66 + e = id(e);
154.67 + if (e.offsetParent) {
154.68 + while (e.offsetParent) {
154.69 + x += e.offsetLeft;
154.70 + e = e.offsetParent;
154.71 + }
154.72 + } else if (e.x) {
154.73 + x = e.x;
154.74 + }
154.75 + return x;
154.76 +}
154.77 +
154.78 +function y(e) {
154.79 + var y, done;
154.80 + y = done = 0;
154.81 + e = id(e);
154.82 + if (e.offsetParent) {
154.83 + while (e.offsetParent) {
154.84 + y += e.offsetTop;
154.85 + e = e.offsetParent;
154.86 + }
154.87 + } else if (e.y) {
154.88 + y = e.y;
154.89 + }
154.90 + return y;
154.91 +}
154.92 +
154.93 +function content(e, string) {
154.94 + if (document.all) {
154.95 + document.all[e].innerHTML = string;
154.96 + } else if (id(e).innerHTML) {
154.97 + id(e).innerHTML = string;
154.98 + }
154.99 +}
154.100 +
154.101 +function clientWidth() {
154.102 + var width = 0;
154.103 + if (self.innerWidth) {
154.104 + width = self.innerWidth;
154.105 + } else if (document.documentElement && document.documentElement.clientWidth) {
154.106 + width = document.documentElement.clientWidth;
154.107 + } else if (document.body) {
154.108 + width = document.body.clientWidth;
154.109 + }
154.110 + return width;
154.111 +}
154.112 +
154.113 +function clientHeight() {
154.114 + var height = 0;
154.115 + if (self.innerHeight) {
154.116 + height = self.innerHeight;
154.117 + } else if (document.documentElement &&
154.118 + document.documentElement.clientHeight) {
154.119 + height = document.documentElement.clientHeight;
154.120 + } else if (document.body) {
154.121 + height = document.body.clientHeight;
154.122 + }
154.123 + return height;
154.124 +}
154.125 +
154.126 +function contentWidth() {
154.127 + if (width('mainPanel') > 372) {
154.128 + return (8 + 12 + width('mainPanel') + 18 + 8);
154.129 + } else {
154.130 + return (8 + 12 + 372 + 18 + 8);
154.131 + }
154.132 +}
154.133 +
154.134 +function contentHeight() {
154.135 + return (height('navigation') + 16 + 12 + height('mainPanel') + 18 + 16 +
154.136 + height('copyrightDates'));
154.137 +}
154.138 +
154.139 +function dynamicMode() {
154.140 + var bottomLeft = div();
154.141 + var left = div();
154.142 + var topLeft = div();
154.143 + var top = div();
154.144 + var topRight = div();
154.145 + var right = div();
154.146 + var bottomRight= div();
154.147 + var bottom = div();
154.148 + var i = div();
154.149 + var nteros = div();
154.150 +
154.151 + style('body').marginLeft = 0;
154.152 + style('body').marginRight = 0;
154.153 +
154.154 + style('copyrightDates').width = width('copyrightDates') + 'px';
154.155 + style('copyrightDates').left = x('copyrightDates') + 'px';
154.156 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
154.157 + height('navigation') + 16 + 12 +
154.158 + height('mainPanel') + 18 + 16 + 'px';
154.159 + style('copyrightDates').position = 'absolute';
154.160 + style('copyrightDates').margin = 0;
154.161 +
154.162 + style('title').height = '60px';
154.163 + content('title', '');
154.164 +
154.165 + style('mainPanel').border = 0;
154.166 + style('mainPanel').background =
154.167 + '#bfbfbf url(/images/panel/login.gif) repeat-x';
154.168 + if (width('mainPanel') < 372) {
154.169 + style('mainPanel').width = '372px';
154.170 + } else {
154.171 + style('mainPanel').width = width('mainPanel') + 'px';
154.172 + }
154.173 + style('mainPanel').left = x('mainPanel') + 'px'
154.174 + style('mainPanel').top = ((maxHeight - totalHeight) / 2) +
154.175 + height('navigation') + 16 + 12 + 'px';
154.176 + style('mainPanel').position = 'absolute';
154.177 +
154.178 + style('navigation').width = width('navigation') + 'px';
154.179 + style('navigation').left = x('navigation') + 'px';
154.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
154.181 + style('navigation').position = 'absolute';
154.182 +
154.183 + bottomLeft.setAttribute('id', 'bottomLeft');
154.184 + id('body').appendChild(bottomLeft);
154.185 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
154.186 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
154.187 +
154.188 + left.setAttribute('id', 'left');
154.189 + id('body').appendChild(left);
154.190 + style('left').height = height('mainPanel') - 53 + 12 + 'px';
154.191 + style('left').left = x('mainPanel') - 12 + 'px';
154.192 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
154.193 +
154.194 + topLeft.setAttribute('id', 'topLeft');
154.195 + id('body').appendChild(topLeft);
154.196 + style('topLeft').left = x('mainPanel') - 12 + 'px';
154.197 + style('topLeft').top = y('mainPanel') - 12 + 'px';
154.198 +
154.199 + top.setAttribute('id', 'top');
154.200 + id('body').appendChild(top);
154.201 + style('top').width = width('mainPanel') + 'px';
154.202 + style('top').left = x('mainPanel') + 'px';
154.203 + style('top').top = y('mainPanel') - 12 + 'px';
154.204 +
154.205 + topRight.setAttribute('id', 'topRight');
154.206 + id('body').appendChild(topRight);
154.207 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
154.208 + style('topRight').top = y('mainPanel') - 12 + 'px';
154.209 +
154.210 + right.setAttribute('id', 'right');
154.211 + id('body').appendChild(right);
154.212 + style('right').height = height('mainPanel') - 53 + 12 + 'px';
154.213 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
154.214 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
154.215 +
154.216 + bottomRight.setAttribute('id', 'bottomRight');
154.217 + id('body').appendChild(bottomRight);
154.218 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
154.219 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
154.220 +
154.221 + bottom.setAttribute('id', 'bottom');
154.222 + id('body').appendChild(bottom);
154.223 + style('bottom').width = width('mainPanel') + 'px';
154.224 + style('bottom').left = x('mainPanel') + 'px';
154.225 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
154.226 +
154.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
154.228 + style('left').background = 'url(/images/panel/left.gif)';
154.229 + style('topLeft').background = 'url(/images/panel/login/top_left.gif)';
154.230 + style('top').background = 'url(/images/panel/login/top.gif)';
154.231 + style('topRight').background = 'url(/images/panel/login/top_right.gif)';
154.232 + style('right').background = 'url(/images/panel/right.gif)';
154.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
154.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
154.235 +
154.236 + i.setAttribute('id', 'i');
154.237 + id('body').appendChild(i);
154.238 + style('i').zIndex = 2;
154.239 + style('i').width = '52px';
154.240 + style('i').height = '60px';
154.241 + style('i').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) + 'px';
154.242 + style('i').top = y('mainPanel') + 7 + 'px';
154.243 + style('i').position = 'absolute';
154.244 + style('i').background = 'url(/images/login/i.gif)';
154.245 +
154.246 + nteros.setAttribute('id', 'nteros');
154.247 + id('body').appendChild(nteros);
154.248 + style('nteros').zIndex = 2;
154.249 + style('nteros').width = '284px';
154.250 + style('nteros').height = '60px';
154.251 + style('nteros').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) +
154.252 + 52 + 'px';
154.253 + style('nteros').top = y('mainPanel') + 7 + 'px';
154.254 + style('nteros').position = 'absolute';
154.255 + style('nteros').background = 'url(/images/login/nteros.gif)';
154.256 +
154.257 + mode = 'dynamic';
154.258 +}
154.259 +
154.260 +function staticMode() {
154.261 + style('body').marginLeft = '19px';
154.262 + style('body').marginRight = '19px';
154.263 +
154.264 + style('copyrightDates').width = '';
154.265 + style('copyrightDates').left = '';
154.266 + style('copyrightDates').bottom = '';
154.267 + style('copyrightDates').position = '';
154.268 + style('copyrightDates').margin = '';
154.269 +
154.270 + style('title').height = '';
154.271 + content('title', '');
154.272 +
154.273 + style('mainPanel').border = '';
154.274 + style('mainPanel').width = '';
154.275 + style('mainPanel').left = '';
154.276 + style('mainPanel').top = '';
154.277 + style('mainPanel').position = '';
154.278 +
154.279 + style('navigation').width = '';
154.280 + style('navigation').left = '';
154.281 + style('navigation').top = '';
154.282 + style('navigation').position = '';
154.283 +
154.284 + /* more code */
154.285 +
154.286 + mode = 'static';
154.287 +}
154.288 +
154.289 +function resize() {
154.290 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
154.291 + 'px';
154.292 +
154.293 + style('mainPanel').left = ((maxWidth - width('mainPanel')) / 2) + 'px';
154.294 + style('mainPanel').top = ((maxHeight - totalHeight) / 2) +
154.295 + height('navigation') + 16 + 12 + 'px';
154.296 +
154.297 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
154.298 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
154.299 +
154.300 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
154.301 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
154.302 +
154.303 + style('left').left = x('mainPanel') - 12 + 'px';
154.304 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
154.305 +
154.306 + style('topLeft').left = x('mainPanel') - 12 + 'px';
154.307 + style('topLeft').top = y('mainPanel') - 12 + 'px';
154.308 +
154.309 + style('top').left = x('mainPanel') + 'px';
154.310 + style('top').top = y('mainPanel') - 12 + 'px';
154.311 +
154.312 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
154.313 + style('topRight').top = y('mainPanel') - 12 + 'px';
154.314 +
154.315 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
154.316 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
154.317 +
154.318 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
154.319 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
154.320 +
154.321 + style('bottom').left = x('mainPanel') + 'px';
154.322 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
154.323 +}
154.324 +
154.325 +function layout() {
154.326 + maxWidth = clientWidth();
154.327 + maxHeight = clientHeight();
154.328 + totalWidth = contentWidth();
154.329 + totalHeight = contentHeight();
154.330 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
154.331 + if (mode != 'dynamic') {
154.332 + dynamicMode();
154.333 + } else {
154.334 + resize();
154.335 + }
154.336 + } else if (mode != 'static') {
154.337 + staticMode();
154.338 + }
154.339 +}
154.340 +
154.341 +function remember() {
154.342 + document.cookie = 'javascript=on; path=/; secure';
154.343 +}
154.344 +
154.345 +window.onresize = function() {
154.346 + /*
154.347 + if (capable()) {
154.348 + layout();
154.349 + }
154.350 + */
154.351 + window.location.replace(unescape(window.location.pathname));
154.352 +}
154.353 +
154.354 +window.onload = function() {
154.355 + if (capable()) {
154.356 + layout();
154.357 + remember();
154.358 + }
154.359 +}
154.360 +
154.361 +/***********************************************************************/
154.362 +/* Copyright and Trademark Statement */
154.363 +/***********************************************************************/
154.364 +/* */
154.365 +/* All original textual and graphical site content: */
154.366 +/* */
154.367 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
154.368 +/* reserved. Reproduction in whole or in part without written */
154.369 +/* permission is prohibited. interos and the interos logos are */
154.370 +/* trademarks of Brent Angeline and interos LLC. All other company, */
154.371 +/* product, and service names mentioned herein may be the properties */
154.372 +/* of their respective owners. Comments in the interos.org forums */
154.373 +/* are the properties of their respective authors. All software */
154.374 +/* developed in the forums is open source and belongs to everyone. */
154.375 +/* */
154.376 +/***********************************************************************/
154.377 +/* e-mail: info@interos.com */
154.378 +/***********************************************************************/
155.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
155.2 +++ b/js/home_interos.com_ssl.js Sat May 01 16:19:36 2010 -0400
155.3 @@ -0,0 +1,375 @@
155.4 +/******************************************************/
155.5 +/* interos Standard Document Header - Script */
155.6 +/*****************************************************/
155.7 +/* URIs: https://interos.com/js/home.js */
155.8 +/* https://www.interos.com/js/home.js */
155.9 +/* Description: JavaScript for interos */
155.10 +/* Author: Brent Angeline */
155.11 +/* Script: JavaScript */
155.12 +/******************************************************/
155.13 +
155.14 +var maxWidth, maxHeight, totalWidth, totalHeight;
155.15 +var mode = 'static';
155.16 +
155.17 +function capable() {
155.18 + return (document.createElementNS || document.createElement) &&
155.19 + document.getElementById && width('navigation');
155.20 +}
155.21 +
155.22 +function div() {
155.23 + if (document.createElementNS) {
155.24 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
155.25 + } else if (document.createElement) {
155.26 + return document.createElement('div');
155.27 + }
155.28 +}
155.29 +
155.30 +function id(e) {
155.31 + return document.getElementById(e);
155.32 +}
155.33 +
155.34 +function style(e) {
155.35 + return id(e).style;
155.36 +}
155.37 +
155.38 +function property(e, p) {
155.39 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
155.40 +}
155.41 +
155.42 +function width(e) {
155.43 + if (id(e).offsetWidth) {
155.44 + return id(e).offsetWidth;
155.45 + } else if (window.getComputedStyle) {
155.46 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
155.47 + } else {
155.48 + return 0;
155.49 + }
155.50 +}
155.51 +
155.52 +function height(e) {
155.53 + if (id(e).offsetHeight) {
155.54 + return id(e).offsetHeight;
155.55 + } else if (window.getComputedStyle) {
155.56 + return property(e, 'height').substring(0,
155.57 + property(e, 'height').indexOf('p'));
155.58 + } else {
155.59 + return 0;
155.60 + }
155.61 +}
155.62 +
155.63 +function x(e) {
155.64 + var x, done;
155.65 + x = done = 0;
155.66 + e = id(e);
155.67 + if (e.offsetParent) {
155.68 + while (e.offsetParent) {
155.69 + x += e.offsetLeft;
155.70 + e = e.offsetParent;
155.71 + }
155.72 + } else if (e.x) {
155.73 + x = e.x;
155.74 + }
155.75 + return x;
155.76 +}
155.77 +
155.78 +function y(e) {
155.79 + var y, done;
155.80 + y = done = 0;
155.81 + e = id(e);
155.82 + if (e.offsetParent) {
155.83 + while (e.offsetParent) {
155.84 + y += e.offsetTop;
155.85 + e = e.offsetParent;
155.86 + }
155.87 + } else if (e.y) {
155.88 + y = e.y;
155.89 + }
155.90 + return y;
155.91 +}
155.92 +
155.93 +function content(e, string) {
155.94 + if (document.all) {
155.95 + document.all[e].innerHTML = string;
155.96 + } else if (id(e).innerHTML) {
155.97 + id(e).innerHTML = string;
155.98 + }
155.99 +}
155.100 +
155.101 +function clientWidth() {
155.102 + var width = 0;
155.103 + if (self.innerWidth) {
155.104 + width = self.innerWidth;
155.105 + } else if (document.documentElement && document.documentElement.clientWidth) {
155.106 + width = document.documentElement.clientWidth;
155.107 + } else if (document.body) {
155.108 + width = document.body.clientWidth;
155.109 + }
155.110 + return width;
155.111 +}
155.112 +
155.113 +function clientHeight() {
155.114 + var height = 0;
155.115 + if (self.innerHeight) {
155.116 + height = self.innerHeight;
155.117 + } else if (document.documentElement &&
155.118 + document.documentElement.clientHeight) {
155.119 + height = document.documentElement.clientHeight;
155.120 + } else if (document.body) {
155.121 + height = document.body.clientHeight;
155.122 + }
155.123 + return height;
155.124 +}
155.125 +
155.126 +function contentWidth() {
155.127 + if (width('mainPanel') > 372) {
155.128 + return (8 + 12 + width('mainPanel') + 18 + 8);
155.129 + } else {
155.130 + return (8 + 12 + 372 + 18 + 8);
155.131 + }
155.132 +}
155.133 +
155.134 +function contentHeight() {
155.135 + return (height('navigation') + 16 + 12 + height('mainPanel') + 18 + 16 +
155.136 + height('copyrightDates'));
155.137 +}
155.138 +
155.139 +function dynamicMode() {
155.140 + var bottomLeft = div();
155.141 + var left = div();
155.142 + var topLeft = div();
155.143 + var top = div();
155.144 + var topRight = div();
155.145 + var right = div();
155.146 + var bottomRight= div();
155.147 + var bottom = div();
155.148 + var i = div();
155.149 + var nteros = div();
155.150 +
155.151 + style('body').marginLeft = 0;
155.152 + style('body').marginRight = 0;
155.153 +
155.154 + style('copyrightDates').width = width('copyrightDates') + 'px';
155.155 + style('copyrightDates').left = x('copyrightDates') + 'px';
155.156 + style('copyrightDates').top = ((maxHeight - totalHeight) / 2) +
155.157 + height('navigation') + 16 + 12 +
155.158 + height('mainPanel') + 18 + 16 + 'px';
155.159 + style('copyrightDates').position = 'absolute';
155.160 + style('copyrightDates').margin = 0;
155.161 +
155.162 + style('title').height = '60px';
155.163 + content('title', '');
155.164 +
155.165 + style('mainPanel').border = 0;
155.166 + style('mainPanel').background =
155.167 + '#bfbfbf url(/images/panel/login.gif) repeat-x';
155.168 + if (width('mainPanel') < 372) {
155.169 + style('mainPanel').width = '372px';
155.170 + } else {
155.171 + style('mainPanel').width = width('mainPanel') + 'px';
155.172 + }
155.173 + style('mainPanel').left = x('mainPanel') + 'px'
155.174 + style('mainPanel').top = ((maxHeight - totalHeight) / 2) +
155.175 + height('navigation') + 16 + 12 + 'px';
155.176 + style('mainPanel').position = 'absolute';
155.177 +
155.178 + style('navigation').width = width('navigation') + 'px';
155.179 + style('navigation').left = x('navigation') + 'px';
155.180 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
155.181 + style('navigation').position = 'absolute';
155.182 +
155.183 + bottomLeft.setAttribute('id', 'bottomLeft');
155.184 + id('body').appendChild(bottomLeft);
155.185 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
155.186 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
155.187 +
155.188 + left.setAttribute('id', 'left');
155.189 + id('body').appendChild(left);
155.190 + style('left').height = height('mainPanel') - 53 + 12 + 'px';
155.191 + style('left').left = x('mainPanel') - 12 + 'px';
155.192 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
155.193 +
155.194 + topLeft.setAttribute('id', 'topLeft');
155.195 + id('body').appendChild(topLeft);
155.196 + style('topLeft').left = x('mainPanel') - 12 + 'px';
155.197 + style('topLeft').top = y('mainPanel') - 12 + 'px';
155.198 +
155.199 + top.setAttribute('id', 'top');
155.200 + id('body').appendChild(top);
155.201 + style('top').width = width('mainPanel') + 'px';
155.202 + style('top').left = x('mainPanel') + 'px';
155.203 + style('top').top = y('mainPanel') - 12 + 'px';
155.204 +
155.205 + topRight.setAttribute('id', 'topRight');
155.206 + id('body').appendChild(topRight);
155.207 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
155.208 + style('topRight').top = y('mainPanel') - 12 + 'px';
155.209 +
155.210 + right.setAttribute('id', 'right');
155.211 + id('body').appendChild(right);
155.212 + style('right').height = height('mainPanel') - 53 + 12 + 'px';
155.213 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
155.214 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
155.215 +
155.216 + bottomRight.setAttribute('id', 'bottomRight');
155.217 + id('body').appendChild(bottomRight);
155.218 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
155.219 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
155.220 +
155.221 + bottom.setAttribute('id', 'bottom');
155.222 + id('body').appendChild(bottom);
155.223 + style('bottom').width = width('mainPanel') + 'px';
155.224 + style('bottom').left = x('mainPanel') + 'px';
155.225 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
155.226 +
155.227 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
155.228 + style('left').background = 'url(/images/panel/left.gif)';
155.229 + style('topLeft').background = 'url(/images/panel/login/top_left.gif)';
155.230 + style('top').background = 'url(/images/panel/login/top.gif)';
155.231 + style('topRight').background = 'url(/images/panel/login/top_right.gif)';
155.232 + style('right').background = 'url(/images/panel/right.gif)';
155.233 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
155.234 + style('bottom').background = 'url(/images/panel/bottom.gif)';
155.235 +
155.236 + i.setAttribute('id', 'i');
155.237 + id('body').appendChild(i);
155.238 + style('i').zIndex = 2;
155.239 + style('i').width = '52px';
155.240 + style('i').height = '60px';
155.241 + style('i').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) + 'px';
155.242 + style('i').top = y('mainPanel') + 7 + 'px';
155.243 + style('i').position = 'absolute';
155.244 + style('i').background = 'url(/images/login/i.gif)';
155.245 +
155.246 + nteros.setAttribute('id', 'nteros');
155.247 + id('body').appendChild(nteros);
155.248 + style('nteros').zIndex = 2;
155.249 + style('nteros').width = '284px';
155.250 + style('nteros').height = '60px';
155.251 + style('nteros').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) +
155.252 + 52 + 'px';
155.253 + style('nteros').top = y('mainPanel') + 7 + 'px';
155.254 + style('nteros').position = 'absolute';
155.255 + style('nteros').background = 'url(/images/login/nteros.gif)';
155.256 +
155.257 + mode = 'dynamic';
155.258 +}
155.259 +
155.260 +function staticMode() {
155.261 + style('body').marginLeft = '19px';
155.262 + style('body').marginRight = '19px';
155.263 +
155.264 + style('copyrightDates').width = '';
155.265 + style('copyrightDates').left = '';
155.266 + style('copyrightDates').bottom = '';
155.267 + style('copyrightDates').position = '';
155.268 + style('copyrightDates').margin = '';
155.269 +
155.270 + style('title').height = '';
155.271 + content('title', '');
155.272 +
155.273 + style('mainPanel').border = '';
155.274 + style('mainPanel').width = '';
155.275 + style('mainPanel').left = '';
155.276 + style('mainPanel').top = '';
155.277 + style('mainPanel').position = '';
155.278 +
155.279 + style('navigation').width = '';
155.280 + style('navigation').left = '';
155.281 + style('navigation').top = '';
155.282 + style('navigation').position = '';
155.283 +
155.284 + /* more code */
155.285 +
155.286 + mode = 'static';
155.287 +}
155.288 +
155.289 +function resize() {
155.290 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
155.291 + 'px';
155.292 +
155.293 + style('mainPanel').left = ((maxWidth - width('mainPanel')) / 2) + 'px';
155.294 + style('mainPanel').top = ((maxHeight - totalHeight) / 2) +
155.295 + height('navigation') + 16 + 12 + 'px';
155.296 +
155.297 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
155.298 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
155.299 +
155.300 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
155.301 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
155.302 +
155.303 + style('left').left = x('mainPanel') - 12 + 'px';
155.304 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
155.305 +
155.306 + style('topLeft').left = x('mainPanel') - 12 + 'px';
155.307 + style('topLeft').top = y('mainPanel') - 12 + 'px';
155.308 +
155.309 + style('top').left = x('mainPanel') + 'px';
155.310 + style('top').top = y('mainPanel') - 12 + 'px';
155.311 +
155.312 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
155.313 + style('topRight').top = y('mainPanel') - 12 + 'px';
155.314 +
155.315 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
155.316 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
155.317 +
155.318 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
155.319 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
155.320 +
155.321 + style('bottom').left = x('mainPanel') + 'px';
155.322 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
155.323 +}
155.324 +
155.325 +function layout() {
155.326 + maxWidth = clientWidth();
155.327 + maxHeight = clientHeight();
155.328 + totalWidth = contentWidth();
155.329 + totalHeight = contentHeight();
155.330 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
155.331 + if (mode != 'dynamic') {
155.332 + dynamicMode();
155.333 + } else {
155.334 + resize();
155.335 + }
155.336 + } else if (mode != 'static') {
155.337 + staticMode();
155.338 + }
155.339 +}
155.340 +
155.341 +function remember() {
155.342 + document.cookie = 'javascript=on; path=/; secure';
155.343 +}
155.344 +
155.345 +window.onresize = function() {
155.346 + /*
155.347 + if (capable()) {
155.348 + layout();
155.349 + }
155.350 + */
155.351 + window.location.replace(unescape(window.location.pathname));
155.352 +}
155.353 +
155.354 +window.onload = function() {
155.355 + if (capable()) {
155.356 + layout();
155.357 + remember();
155.358 + }
155.359 +}
155.360 +
155.361 +/***********************************************************************/
155.362 +/* Copyright and Trademark Statement */
155.363 +/***********************************************************************/
155.364 +/* */
155.365 +/* All original textual and graphical site content: */
155.366 +/* */
155.367 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
155.368 +/* reserved. Reproduction in whole or in part without written */
155.369 +/* permission is prohibited. interos and the interos logos are */
155.370 +/* trademarks of Brent Angeline and interos LLC. All other company, */
155.371 +/* product, and service names mentioned herein may be the properties */
155.372 +/* of their respective owners. Comments in the interos.org forums */
155.373 +/* are the properties of their respective authors. All software */
155.374 +/* developed in the forums is open source and belongs to everyone. */
155.375 +/* */
155.376 +/***********************************************************************/
155.377 +/* e-mail: info@interos.com */
155.378 +/***********************************************************************/
156.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
156.2 +++ b/js/login_interos.com_ssl.js Sat May 01 16:19:36 2010 -0400
156.3 @@ -0,0 +1,460 @@
156.4 +/*******************************************************/
156.5 +/* interos Standard Document Header - Script */
156.6 +/*******************************************************/
156.7 +/* URIs: https://interos.com/js/login.js */
156.8 +/* https://www.interos.com/js/login.js */
156.9 +/* Description: JavaScript for interos login */
156.10 +/* Author: Brent Angeline */
156.11 +/* Script: JavaScript */
156.12 +/*******************************************************/
156.13 +
156.14 +var maxWidth, maxHeight, totalWidth, totalHeight;
156.15 +var mode = 'static';
156.16 +
156.17 +function capable() {
156.18 + return (document.createElementNS || document.createElement) &&
156.19 + document.getElementById && width('newUser');
156.20 +}
156.21 +
156.22 +function preload() {
156.23 + var image = new Image();
156.24 + image.src = '/images/login/new.gif';
156.25 + image.src = '/images/login/open.gif';
156.26 + image.src = '/images/login/next.gif';
156.27 + image.src = '/images/login/settings.gif';
156.28 +}
156.29 +
156.30 +function div() {
156.31 + if (document.createElementNS) {
156.32 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
156.33 + } else if (document.createElement) {
156.34 + return document.createElement('div');
156.35 + }
156.36 +}
156.37 +
156.38 +function id(e) {
156.39 + return document.getElementById(e);
156.40 +}
156.41 +
156.42 +function style(e) {
156.43 + return id(e).style;
156.44 +}
156.45 +
156.46 +function property(e, p) {
156.47 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
156.48 +}
156.49 +
156.50 +function width(e) {
156.51 + if (id(e).offsetWidth) {
156.52 + return id(e).offsetWidth;
156.53 + } else if (window.getComputedStyle) {
156.54 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
156.55 + } else {
156.56 + return 0;
156.57 + }
156.58 +}
156.59 +
156.60 +function height(e) {
156.61 + if (id(e).offsetHeight) {
156.62 + return id(e).offsetHeight;
156.63 + } else if (window.getComputedStyle) {
156.64 + return property(e, 'height').substring(0,
156.65 + property(e, 'height').indexOf('p'));
156.66 + } else {
156.67 + return 0;
156.68 + }
156.69 +}
156.70 +
156.71 +function x(e) {
156.72 + var x, done;
156.73 + x = done = 0;
156.74 + e = id(e);
156.75 + if (e.offsetParent) {
156.76 + while (e.offsetParent) {
156.77 + x += e.offsetLeft;
156.78 + e = e.offsetParent;
156.79 + }
156.80 + } else if (e.x) {
156.81 + x = e.x;
156.82 + }
156.83 + return x;
156.84 +}
156.85 +
156.86 +function y(e) {
156.87 + var y, done;
156.88 + y = done = 0;
156.89 + e = id(e);
156.90 + if (e.offsetParent) {
156.91 + while (e.offsetParent) {
156.92 + y += e.offsetTop;
156.93 + e = e.offsetParent;
156.94 + }
156.95 + } else if (e.y) {
156.96 + y = e.y;
156.97 + }
156.98 + return y;
156.99 +}
156.100 +
156.101 +function content(e, string) {
156.102 + if (document.all) {
156.103 + document.all[e].innerHTML = string;
156.104 + } else if (id(e).innerHTML) {
156.105 + id(e).innerHTML = string;
156.106 + }
156.107 +}
156.108 +
156.109 +function clientWidth() {
156.110 + var width = 0;
156.111 + if (self.innerWidth) {
156.112 + width = self.innerWidth;
156.113 + } else if (document.documentElement && document.documentElement.clientWidth) {
156.114 + width = document.documentElement.clientWidth;
156.115 + } else if (document.body) {
156.116 + width = document.body.clientWidth;
156.117 + }
156.118 + return width;
156.119 +}
156.120 +
156.121 +function clientHeight() {
156.122 + var height = 0;
156.123 + if (self.innerHeight) {
156.124 + height = self.innerHeight;
156.125 + } else if (document.documentElement &&
156.126 + document.documentElement.clientHeight) {
156.127 + height = document.documentElement.clientHeight;
156.128 + } else if (document.body) {
156.129 + height = document.body.clientHeight;
156.130 + }
156.131 + return height;
156.132 +}
156.133 +
156.134 +function contentWidth() {
156.135 + return (12 + width('mainPanel') + 18);
156.136 +}
156.137 +
156.138 +function contentHeight() {
156.139 + return (height('navigation') + 16 + 12 + height('mainPanel') - 5 + 18 + 16 +
156.140 + height('newUser'));
156.141 +}
156.142 +
156.143 +function dynamicMode() {
156.144 + var bottomLeft = div();
156.145 + var left = div();
156.146 + var topLeft = div();
156.147 + var top = div();
156.148 + var topRight = div();
156.149 + var right = div();
156.150 + var bottomRight= div();
156.151 + var bottom = div();
156.152 + var newButton = div();
156.153 + var newLabel = div();
156.154 + var openButton = div();
156.155 + var openLabel = div();
156.156 + var nextButton = div();
156.157 + var nextLabel = div();
156.158 + var settingsButton = div();
156.159 + var settingsLabel = div();
156.160 + var i = div();
156.161 + var nteros = div();
156.162 +
156.163 + style('copyrightDates').width = width('copyrightDates') + 'px';
156.164 + style('copyrightDates').left = x('copyrightDates') + 'px';
156.165 + style('copyrightDates').bottom = '28px';
156.166 + style('copyrightDates').position = 'absolute';
156.167 + style('copyrightDates').margin = 0;
156.168 +
156.169 + style('copyrightDates').display = 'none';
156.170 +
156.171 + style('newUser').width = width('newUser') + 'px';
156.172 + style('newUser').left = x('newUser') + 'px';
156.173 + style('newUser').top = ((maxHeight - totalHeight) / 2) +
156.174 + height('navigation') + 16 + 12 +
156.175 + height('mainPanel') + 18 + 'px';
156.176 + style('newUser').position = 'absolute';
156.177 +
156.178 + style('title').height = '60px';
156.179 + content('title', '');
156.180 +
156.181 + style('mainPanel').border = 0;
156.182 + style('mainPanel').background =
156.183 + '#bfbfbf url(/images/panel/login.gif) repeat-x';
156.184 + if (width('mainPanel') < 336) {
156.185 + style('mainPanel').width = '336px';
156.186 +
156.187 + style('loginForm').width = '336px';
156.188 + } else {
156.189 + style('loginForm').width = width('mainPanel') + 'px';
156.190 + }
156.191 + style('loginForm').left = x('mainPanel') + 'px';
156.192 + style('loginForm').top = ((maxHeight - totalHeight) / 2) +
156.193 + height('navigation') + 16 + 12 + 'px';
156.194 + style('loginForm').zIndex = 1;
156.195 + style('loginForm').position = 'absolute';
156.196 +
156.197 + style('navigation').width = width('navigation') + 'px';
156.198 + style('navigation').left = x('navigation') + 'px';
156.199 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
156.200 + style('navigation').position = 'absolute';
156.201 +
156.202 + bottomLeft.setAttribute('id', 'bottomLeft');
156.203 + id('body').appendChild(bottomLeft);
156.204 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
156.205 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
156.206 +
156.207 + left.setAttribute('id', 'left');
156.208 + id('body').appendChild(left);
156.209 + style('left').height = height('mainPanel') - 53 + 12 + 'px';
156.210 + style('left').left = x('mainPanel') - 12 + 'px';
156.211 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
156.212 +
156.213 + topLeft.setAttribute('id', 'topLeft');
156.214 + id('body').appendChild(topLeft);
156.215 + style('topLeft').left = x('mainPanel') - 12 + 'px';
156.216 + style('topLeft').top = y('mainPanel') - 12 + 'px';
156.217 +
156.218 + top.setAttribute('id', 'top');
156.219 + id('body').appendChild(top);
156.220 + style('top').width = width('mainPanel') + 'px';
156.221 + style('top').left = x('mainPanel') + 'px';
156.222 + style('top').top = y('mainPanel') - 12 + 'px';
156.223 +
156.224 + topRight.setAttribute('id', 'topRight');
156.225 + id('body').appendChild(topRight);
156.226 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
156.227 + style('topRight').top = y('mainPanel') - 12 + 'px';
156.228 +
156.229 + right.setAttribute('id', 'right');
156.230 + id('body').appendChild(right);
156.231 + style('right').height = height('mainPanel') - 53 + 12 + 'px';
156.232 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
156.233 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
156.234 +
156.235 + bottomRight.setAttribute('id', 'bottomRight');
156.236 + id('body').appendChild(bottomRight);
156.237 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
156.238 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
156.239 +
156.240 + bottom.setAttribute('id', 'bottom');
156.241 + id('body').appendChild(bottom);
156.242 + style('bottom').width = width('mainPanel') + 'px';
156.243 + style('bottom').left = x('mainPanel') + 'px';
156.244 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
156.245 +
156.246 + style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
156.247 + style('left').background = 'url(/images/panel/left.gif)';
156.248 + style('topLeft').background = 'url(/images/panel/login/top_left.gif)';
156.249 + style('top').background = 'url(/images/panel/login/top.gif)';
156.250 + style('topRight').background = 'url(/images/panel/login/top_right.gif)';
156.251 + style('right').background = 'url(/images/panel/right.gif)';
156.252 + style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
156.253 + style('bottom').background = 'url(/images/panel/bottom.gif)';
156.254 +
156.255 + newButton.setAttribute('id', 'newButton');
156.256 + id('body').appendChild(newButton);
156.257 + style('newButton').left = 0;
156.258 + style('newButton').bottom = 0;
156.259 + style('newButton').background = 'url(/images/login/new_faded.gif)';
156.260 +
156.261 + newLabel.setAttribute('id', 'newLabel');
156.262 + id('body').appendChild(newLabel);
156.263 + id('newLabel').innerHTML = '1. new';
156.264 +
156.265 + openButton.setAttribute('id', 'openButton');
156.266 + id('body').appendChild(openButton);
156.267 + style('openButton').left = 0;
156.268 + style('openButton').top = 0;
156.269 + style('openButton').background = 'url(/images/login/open_faded.gif)';
156.270 +
156.271 + openLabel.setAttribute('id', 'openLabel');
156.272 + id('body').appendChild(openLabel);
156.273 + id('openLabel').innerHTML = '2. open';
156.274 +
156.275 + nextButton.setAttribute('id', 'nextButton');
156.276 + id('body').appendChild(nextButton);
156.277 + style('nextButton').right = 0;
156.278 + style('nextButton').top = 0;
156.279 + style('nextButton').background = 'url(/images/login/next_faded.gif)';
156.280 +
156.281 + nextLabel.setAttribute('id', 'nextLabel');
156.282 + id('body').appendChild(nextLabel);
156.283 + id('nextLabel').innerHTML = '3. next';
156.284 +
156.285 + settingsButton.setAttribute('id', 'settingsButton');
156.286 + id('body').appendChild(settingsButton);
156.287 + style('settingsButton').right = 0;
156.288 + style('settingsButton').bottom = 0;
156.289 + style('settingsButton').background =
156.290 + 'url(/images/login/settings_faded.gif)';
156.291 +
156.292 + settingsLabel.setAttribute('id', 'settingsLabel');
156.293 + id('body').appendChild(settingsLabel);
156.294 + id('settingsLabel').innerHTML = '4. settings';
156.295 +
156.296 + i.setAttribute('id', 'i');
156.297 + id('body').appendChild(i);
156.298 + style('i').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) + 'px';
156.299 + style('i').top = y('mainPanel') + 7 + 'px';
156.300 + style('i').background = 'url(/images/login/i.gif)';
156.301 +
156.302 + nteros.setAttribute('id', 'nteros');
156.303 + id('body').appendChild(nteros);
156.304 + style('nteros').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) +
156.305 + 52 + 'px';
156.306 + style('nteros').top = y('mainPanel') + 7 + 'px';
156.307 + style('nteros').background = 'url(/images/login/nteros.gif)';
156.308 +
156.309 + mode = 'dynamic';
156.310 +}
156.311 +
156.312 +function staticMode() {
156.313 + style('copyrightDates').width = '';
156.314 + style('copyrightDates').left = '';
156.315 + style('copyrightDates').bottom = '';
156.316 + style('copyrightDates').position = '';
156.317 + style('copyrightDates').margin = '';
156.318 +
156.319 + style('newUser').width = '';
156.320 + style('newUser').left = '';
156.321 + style('newUser').top = '';
156.322 + style('newUser').position = '';
156.323 +
156.324 + style('title').height = '';
156.325 + content('title', '');
156.326 +
156.327 + style('mainPanel').border = '';
156.328 + style('mainPanel').background = '';
156.329 + style('mainPanel').width = '';
156.330 +
156.331 + style('loginForm').width = '';
156.332 + style('loginForm').left = '';
156.333 + style('loginForm').top = '';
156.334 + style('loginForm').zIndex = '';
156.335 + style('loginForm').position = '';
156.336 +
156.337 + style('navigation').width = '';
156.338 + style('navigation').left = '';
156.339 + style('navigation').top = '';
156.340 + style('navigation').position = '';
156.341 +
156.342 + /* more code */
156.343 +
156.344 + mode = 'static';
156.345 +}
156.346 +
156.347 +function resize() {
156.348 + style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) +
156.349 + 'px';
156.350 +
156.351 + style('newUser').left = ((maxWidth - width('newUser')) / 2) + 'px';
156.352 + style('newUser').top = ((maxHeight - totalHeight) / 2) +
156.353 + height('navigation') + 16 + 12 +
156.354 + height('mainPanel') + 18 + 'px';
156.355 +
156.356 + style('loginForm').left = ((maxWidth - width('loginForm')) / 2) + 'px';
156.357 + style('loginForm').top = ((maxHeight - totalHeight) / 2) +
156.358 + height('navigation') + 16 + 12 + 'px';
156.359 +
156.360 + style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
156.361 + style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
156.362 +
156.363 + style('bottomLeft').left = x('mainPanel') - 12 + 'px';
156.364 + style('bottomLeft').top = y('mainPanel') + height('mainPanel') + 'px';
156.365 +
156.366 + style('left').left = x('mainPanel') - 12 + 'px';
156.367 + style('left').top = y('mainPanel') + 53 - 12 + 'px';
156.368 +
156.369 + style('topLeft').left = x('mainPanel') - 12 + 'px';
156.370 + style('topLeft').top = y('mainPanel') - 12 + 'px';
156.371 +
156.372 + style('top').left = x('mainPanel') + 'px';
156.373 + style('top').top = y('mainPanel') - 12 + 'px';
156.374 +
156.375 + style('topRight').left = x('mainPanel') + width('mainPanel') + 'px';
156.376 + style('topRight').top = y('mainPanel') - 12 + 'px';
156.377 +
156.378 + style('right').left = x('mainPanel') + width('mainPanel') + 'px';
156.379 + style('right').top = y('mainPanel') + 53 - 12 + 'px';
156.380 +
156.381 + style('bottomRight').left = x('mainPanel') + width('mainPanel') + 'px';
156.382 + style('bottomRight').top = y('mainPanel') + height('mainPanel') + 'px';
156.383 +
156.384 + style('bottom').left = x('mainPanel') + 'px';
156.385 + style('bottom').top = y('mainPanel') + height('mainPanel') + 'px';
156.386 +
156.387 + style('i').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) + 'px';
156.388 + style('i').top = y('mainPanel') + 7 + 'px';
156.389 +
156.390 + style('nteros').left = x('mainPanel') + ((width('mainPanel') - 336) / 2) +
156.391 + 52 + 'px';
156.392 + style('nteros').top = y('mainPanel') + 7 + 'px';
156.393 +}
156.394 +
156.395 +function layout() {
156.396 + maxWidth = clientWidth();
156.397 + maxHeight = clientHeight();
156.398 + totalWidth = contentWidth();
156.399 + totalHeight = contentHeight();
156.400 + if ((totalWidth < maxWidth) && ((72 + totalHeight + 72) < maxHeight)) {
156.401 + if (mode != 'dynamic') {
156.402 + dynamicMode();
156.403 + } else {
156.404 + resize();
156.405 + }
156.406 + } else if (mode != 'static') {
156.407 + staticMode();
156.408 + }
156.409 +}
156.410 +
156.411 +function focus() {
156.412 + /*
156.413 + if (document.getElementById) {
156.414 + if (id('login').focus) {
156.415 + id('login').focus();
156.416 + }
156.417 + } else if (document.loginForm && document.loginForm.login &&
156.418 + document.loginForm.login.focus) {
156.419 + document.loginForm.login.focus();
156.420 + }
156.421 + */
156.422 +}
156.423 +
156.424 +function remember() {
156.425 + document.cookie = 'javascript=on; path=/; secure';
156.426 +}
156.427 +
156.428 +window.onresize = function() {
156.429 + /*
156.430 + if (capable()) {
156.431 + layout();
156.432 + }
156.433 + */
156.434 + window.location.replace(unescape(window.location.pathname));
156.435 +}
156.436 +
156.437 +window.onload = function() {
156.438 + if (capable()) {
156.439 + preload();
156.440 + layout();
156.441 + remember();
156.442 + }
156.443 + focus();
156.444 +}
156.445 +
156.446 +/***********************************************************************/
156.447 +/* Copyright and Trademark Statement */
156.448 +/***********************************************************************/
156.449 +/* */
156.450 +/* All original textual and graphical site content: */
156.451 +/* */
156.452 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
156.453 +/* reserved. Reproduction in whole or in part without written */
156.454 +/* permission is prohibited. interos and the interos logos are */
156.455 +/* trademarks of Brent Angeline and interos LLC. All other company, */
156.456 +/* product, and service names mentioned herein may be the properties */
156.457 +/* of their respective owners. Comments in the interos.org forums */
156.458 +/* are the properties of their respective authors. All software */
156.459 +/* developed in the forums is open source and belongs to everyone. */
156.460 +/* */
156.461 +/***********************************************************************/
156.462 +/* e-mail: info@interos.com */
156.463 +/***********************************************************************/
157.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
157.2 +++ b/js/welcome_interos.com_ssl.js Sat May 01 16:19:36 2010 -0400
157.3 @@ -0,0 +1,272 @@
157.4 +/*********************************************************/
157.5 +/* interos Standard Document Header - Script */
157.6 +/*********************************************************/
157.7 +/* URIs: https://interos.com/js/welcome.js */
157.8 +/* https://www.interos.com/js/welcome.js */
157.9 +/* Description: JavaScript for interos welcome */
157.10 +/* Author: Brent Angeline */
157.11 +/* Script: JavaScript */
157.12 +/*********************************************************/
157.13 +
157.14 +var maxWidth, maxHeight, totalWidth, totalHeight;
157.15 +var mode = 'static';
157.16 +
157.17 +function capable() {
157.18 + return (document.createElementNS || document.createElement) &&
157.19 + document.getElementById && width('welcomePanel');
157.20 +}
157.21 +
157.22 +function div() {
157.23 + if (document.createElementNS) {
157.24 + return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
157.25 + } else if (document.createElement) {
157.26 + return document.createElement('div');
157.27 + }
157.28 +}
157.29 +
157.30 +function id(e) {
157.31 + return document.getElementById(e);
157.32 +}
157.33 +
157.34 +function style(e) {
157.35 + return id(e).style;
157.36 +}
157.37 +
157.38 +function property(e, p) {
157.39 + return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
157.40 +}
157.41 +
157.42 +function width(e) {
157.43 + if (id(e).offsetWidth) {
157.44 + return id(e).offsetWidth;
157.45 + } else if (window.getComputedStyle) {
157.46 + return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
157.47 + } else {
157.48 + return 0;
157.49 + }
157.50 +}
157.51 +
157.52 +function height(e) {
157.53 + if (id(e).offsetHeight) {
157.54 + return id(e).offsetHeight;
157.55 + } else if (window.getComputedStyle) {
157.56 + return property(e, 'height').substring(0,
157.57 + property(e, 'height').indexOf('p'));
157.58 + } else {
157.59 + return 0;
157.60 + }
157.61 +}
157.62 +
157.63 +function x(e) {
157.64 + var x, done;
157.65 + x = done = 0;
157.66 + e = id(e);
157.67 + if (e.offsetParent) {
157.68 + while (e.offsetParent) {
157.69 + x += e.offsetLeft;
157.70 + e = e.offsetParent;
157.71 + }
157.72 + } else if (e.x) {
157.73 + x = e.x;
157.74 + }
157.75 + return x;
157.76 +}
157.77 +
157.78 +function y(e) {
157.79 + var y, done;
157.80 + y = done = 0;
157.81 + e = id(e);
157.82 + if (e.offsetParent) {
157.83 + while (e.offsetParent) {
157.84 + y += e.offsetTop;
157.85 + e = e.offsetParent;
157.86 + }
157.87 + } else if (e.y) {
157.88 + y = e.y;
157.89 + }
157.90 + return y;
157.91 +}
157.92 +
157.93 +function content(e, string) {
157.94 + if (document.all) {
157.95 + document.all[e].innerHTML = string;
157.96 + } else if (id(e).innerHTML) {
157.97 + id(e).innerHTML = string;
157.98 + }
157.99 +}
157.100 +
157.101 +function clientWidth() {
157.102 + var width = 0;
157.103 + if (self.innerWidth) {
157.104 + width = self.innerWidth;
157.105 + } else if (document.documentElement && document.documentElement.clientWidth) {
157.106 + width = document.documentElement.clientWidth;
157.107 + } else if (document.body) {
157.108 + width = document.body.clientWidth;
157.109 + }
157.110 + return width;
157.111 +}
157.112 +
157.113 +function clientHeight() {
157.114 + var height = 0;
157.115 + if (self.innerHeight) {
157.116 + height = self.innerHeight;
157.117 + } else if (document.documentElement &&
157.118 + document.documentElement.clientHeight) {
157.119 + height = document.documentElement.clientHeight;
157.120 + } else if (document.body) {
157.121 + height = document.body.clientHeight;
157.122 + }
157.123 + return height;
157.124 +}
157.125 +
157.126 +function contentWidth() {
157.127 + return (8 + 12 + width('welcomePanel') + 18 + 8);
157.128 +}
157.129 +
157.130 +function contentHeight() {
157.131 + return (72 + 12 + height('welcomePanel') + 18 + 72);
157.132 +}
157.133 +
157.134 +function dynamicMode() {
157.135 + var bottomLeft = div();
157.136 + var left = div();
157.137 + var topLeft = div();
157.138 + var top = div();
157.139 + var topRight = div();
157.140 + var right = div();
157.141 + var bottomRight= div();
157.142 + var bottom = div();
157.143 +
157.144 + style('welcomePanel').border = 0;
157.145 + style('welcomePanel').left = x('welcomePanel') + 'px';
157.146 + style('welcomePanel').top = ((maxHeight - totalHeight) / 2) + height('navigation') +
157.147 + 16 + 12 + 'px';
157.148 + style('welcomePanel').position = 'absolute';
157.149 +
157.150 + bottomLeft.setAttribute('id', 'bottomLeft');
157.151 + id('body').appendChild(bottomLeft);
157.152 + style('bottomLeft').left = x('welcomePanel') - 12 + 'px';
157.153 + style('bottomLeft').top = y('welcomePanel') + height('welcomePanel') + 'px';
157.154 +
157.155 + left.setAttribute('id', 'left');
157.156 + id('body').appendChild(left);
157.157 + style('left').height = height('welcomePanel') - 84 + 'px';
157.158 + style('left').left = x('welcomePanel') - 12 + 'px';
157.159 + style('left').top = y('welcomePanel') + 84 + 'px';
157.160 +
157.161 + topLeft.setAttribute('id', 'topLeft');
157.162 + id('body').appendChild(topLeft);
157.163 + style('topLeft').left = x('welcomePanel') - 12 + 'px';
157.164 + style('topLeft').top = y('welcomePanel') - 12 + 'px';
157.165 +
157.166 + top.setAttribute('id', 'top');
157.167 + id('body').appendChild(top);
157.168 + style('top').width = width('welcomePanel') + 'px';
157.169 + style('top').left = x('welcomePanel') + 'px';
157.170 + style('top').top = y('welcomePanel') - 12 + 'px';
157.171 +
157.172 + topRight.setAttribute('id', 'topRight');
157.173 + id('body').appendChild(topRight);
157.174 + style('topRight').left = x('welcomePanel') + width('welcomePanel') + 'px';
157.175 + style('topRight').top = y('welcomePanel') - 12 + 'px';
157.176 +
157.177 + right.setAttribute('id', 'right');
157.178 + id('body').appendChild(right);
157.179 + style('right').height = height('welcomePanel') - 84 + 'px';
157.180 + style('right').left = x('welcomePanel') + width('welcomePanel') + 'px';
157.181 + style('right').top = y('welcomePanel') + 84 + 'px';
157.182 +
157.183 + bottomRight.setAttribute('id', 'bottomRight');
157.184 + id('body').appendChild(bottomRight);
157.185 + style('bottomRight').left = x('welcomePanel') + width('welcomePanel') + 'px';
157.186 + style('bottomRight').top = y('welcomePanel') + height('welcomePanel') + 'px';
157.187 +
157.188 + bottom.setAttribute('id', 'bottom');
157.189 + id('body').appendChild(bottom);
157.190 + style('bottom').width = width('welcomePanel') + 'px';
157.191 + style('bottom').left = x('welcomePanel'l) + 'px';
157.192 + style('bottom').top = y('welcomePanel') + height('welcomePanel') + 'px';
157.193 +
157.194 + style('bottomLeft').background = 'url(/images/panel/welcome/bottom_left.gif)';
157.195 + style('left').background = 'url(/images/panel/welcome/left.gif)';
157.196 + style('topLeft').background = 'url(/images/panel/welcome/top_left.gif)';
157.197 + style('top').background = 'url(/images/panel/welcome/top.gif)';
157.198 + style('topRight').background = 'url(/images/panel/welcome/top_right.gif)';
157.199 + style('right').background = 'url(/images/welcome/right.gif)';
157.200 + style('bottomRight').background = 'url(/images/panel/welcome/bottom_right.gif)';
157.201 + style('bottom').background = 'url(/images/panel/welcome/bottom.gif)';
157.202 +
157.203 + mode = 'dynamic';
157.204 +}
157.205 +
157.206 +function staticMode() {
157.207 + style('welcomePanel').border = '';
157.208 + style('welcomePanel').width = '';
157.209 + style('welcomePanel').left = '';
157.210 + style('welcomePanel').top = '';
157.211 + style('welcomePanel').position = '';
157.212 +
157.213 + /* more code */
157.214 +
157.215 + mode = 'static';
157.216 +}
157.217 +
157.218 +function resize() {
157.219 +
157.220 +}
157.221 +
157.222 +function layout() {
157.223 + maxWidth = clientWidth();
157.224 + maxHeight = clientHeight();
157.225 + totalWidth = contentWidth();
157.226 + totalHeight = contentHeight();
157.227 + if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
157.228 + if (mode != 'dynamic') {
157.229 + dynamicMode();
157.230 + } else {
157.231 + resize();
157.232 + }
157.233 + } else if (mode != 'static') {
157.234 + staticMode();
157.235 + }
157.236 +}
157.237 +
157.238 +function remember() {
157.239 + document.cookie = 'javascript=on; path=/; secure';
157.240 +}
157.241 +
157.242 +window.onresize = function() {
157.243 + /*
157.244 + if (capable()) {
157.245 + layout();
157.246 + }
157.247 + */
157.248 + window.location.replace(unescape(window.location.pathname));
157.249 +}
157.250 +
157.251 +window.onload = function() {
157.252 + if (capable()) {
157.253 + layout();
157.254 + remember();
157.255 + }
157.256 +}
157.257 +
157.258 +/***********************************************************************/
157.259 +/* Copyright and Trademark Statement */
157.260 +/***********************************************************************/
157.261 +/* */
157.262 +/* All original textual and graphical site content: */
157.263 +/* */
157.264 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
157.265 +/* reserved. Reproduction in whole or in part without written */
157.266 +/* permission is prohibited. interos and the interos logos are */
157.267 +/* trademarks of Brent Angeline and interos LLC. All other company, */
157.268 +/* product, and service names mentioned herein may be the properties */
157.269 +/* of their respective owners. Comments in the interos.org forums */
157.270 +/* are the properties of their respective authors. All software */
157.271 +/* developed in the forums is open source and belongs to everyone. */
157.272 +/* */
157.273 +/***********************************************************************/
157.274 +/* e-mail: info@interos.com */
157.275 +/***********************************************************************/
158.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
158.2 +++ b/style/content_interos.com_ssl.css Sat May 01 16:19:36 2010 -0400
158.3 @@ -0,0 +1,39 @@
158.4 +/*************************************************************/
158.5 +/* interos Standard Document Header - CSS */
158.6 +/*************************************************************/
158.7 +/* URIs: https://interos.com/style/content.css */
158.8 +/* https://www.interos.com/style/content.css */
158.9 +/* Description: Cascading Style Sheet for interos content */
158.10 +/* Author: Brent Angeline */
158.11 +/* CSS: W3C-Validated CSS */
158.12 +/*************************************************************/
158.13 +
158.14 +html, body {
158.15 + color: #000000;
158.16 + background: #808080;
158.17 + display: block;
158.18 +}
158.19 +#content {
158.20 + position: absolute;
158.21 + width: 100%;
158.22 + height: 100%;
158.23 +}
158.24 +
158.25 +/************************************************************************/
158.26 +/* Copyright and Trademark Statement */
158.27 +/************************************************************************/
158.28 +/* */
158.29 +/* All original textual and graphical site content: */
158.30 +/* */
158.31 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
158.32 +/* reserved. Reproduction in whole or in part without written */
158.33 +/* permission is prohibited. interos and the interos logos are */
158.34 +/* trademarks of Brent Angeline and interos LLC. All other company */
158.35 +/* names, product names, and services mentioned herein may be the */
158.36 +/* property of their respective owners. Comments in the interos.org */
158.37 +/* forums are the property of their respective posters. All software */
158.38 +/* developed in the forums is open source and belongs to everyone. */
158.39 +/* */
158.40 +/************************************************************************/
158.41 +/* e-mail: info@interos.com */
158.42 +/************************************************************************/
159.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
159.2 +++ b/style/default_interos.com.css Sat May 01 16:19:36 2010 -0400
159.3 @@ -0,0 +1,183 @@
159.4 +/****************************************************************/
159.5 +/* interos Standard Document Header - CSS */
159.6 +/****************************************************************/
159.7 +/* URIs: http://interos.com/sys/style/default.css */
159.8 +/* http://*.interos.com/sys/style/default.css */
159.9 +/* Description: Default Cascading Style Sheet for interos */
159.10 +/* Author: Brent Angeline */
159.11 +/* CSS: W3C-Validated CSS */
159.12 +/****************************************************************/
159.13 +
159.14 +html, body, center, p, div, h1, h2, h3 {
159.15 + display: block;
159.16 +}
159.17 +html, body {
159.18 + color: #a0a0a0;
159.19 + background: #404040;
159.20 +}
159.21 +html {
159.22 + font: 1em sans-serif;
159.23 + margin: 0;
159.24 +}
159.25 +body {
159.26 + margin: 8px 19px 22px;
159.27 +}
159.28 +p {
159.29 + margin: 16px 0;
159.30 +}
159.31 +a {
159.32 + color: #d7d7d7;
159.33 + text-decoration: none;
159.34 +}
159.35 +a:hover, .box, #mainPanel a:active, #titlePanel a:active {
159.36 + color: #ffffff;
159.37 +}
159.38 +a:hover {
159.39 + text-decoration: underline;
159.40 +}
159.41 +a:active, #mainPanel a, #titlePanel a {
159.42 + color: #000000;
159.43 +}
159.44 +table {
159.45 + display: table;
159.46 + border-spacing: 2px;
159.47 + border-collapse: separate;
159.48 + margin-top: 0;
159.49 + margin-bottom: 0;
159.50 + text-indent: 0;
159.51 +}
159.52 +thead, tfoot, tbody {
159.53 + vertical-align: middle;
159.54 +}
159.55 +thead {
159.56 + display: table-header-group;
159.57 +}
159.58 +tfoot {
159.59 + display: table-footer-group;
159.60 + height: 1.17em;
159.61 +}
159.62 +tbody {
159.63 + display: table-row-group;
159.64 +}
159.65 +tr, th, td {
159.66 + vertical-align: inherit;
159.67 +}
159.68 +tr {
159.69 + display: table-row;
159.70 +}
159.71 +th, td {
159.72 + display: table-cell;
159.73 + padding: 1px 13px;
159.74 +}
159.75 +td {
159.76 + text-align: inherit;
159.77 +}
159.78 +h1, h2, #mainPanel p, #titlePanel p {
159.79 + padding: 0 16px;
159.80 +}
159.81 +h1, h3 {
159.82 + font-weight: bold;
159.83 +}
159.84 +h1 {
159.85 + font-size: 2em;
159.86 + margin: 21px 0;
159.87 +}
159.88 +h2 {
159.89 + font-weight: normal;
159.90 + font-size: 1.17em;
159.91 + margin: 19px 0 11px;
159.92 +}
159.93 +h3 {
159.94 + background: #85a4c4 url(/sys/style/images/box/head.gif) repeat-x;
159.95 + font-size: 1.17em;
159.96 + font-style: italic;
159.97 + margin: 19px 0;
159.98 + padding: 9px 13px;
159.99 + border-top: 1px solid #ffffff;
159.100 + border-bottom: 1px solid #bfbfbf;
159.101 +}
159.102 +strong {
159.103 + font-weight: bolder;
159.104 +}
159.105 +div p br {
159.106 + display: none;
159.107 +}
159.108 +.box {
159.109 + background: #808080;
159.110 + margin: 20px 2px 20px 0;
159.111 + padding-bottom: 8px;
159.112 + border-left: 1px solid #ffffff;
159.113 + border-right: 1px solid #ffffff;
159.114 + border-bottom: 1px solid #ffffff;
159.115 +}
159.116 +.box a {
159.117 + color: #bfefff;
159.118 +}
159.119 +.box a:hover {
159.120 + color: #def7ff;
159.121 +}
159.122 +.box a:active {
159.123 + color: #ffe6de;
159.124 +}
159.125 +.box p {
159.126 + padding: 0 19px;
159.127 +}
159.128 +#mainPanel, #titlePanel {
159.129 + color: #000000;
159.130 + border-top: 2px solid #fafafa;
159.131 + border-left: 2px solid #fafafa;
159.132 + border-bottom: 3px solid #050505;
159.133 + border-right: 3px solid #050505;
159.134 + z-index: 2;
159.135 +}
159.136 +#mainPanel {
159.137 + background: #bfbfbf url(/style/images/panel/main.gif) repeat-x;
159.138 +}
159.139 +#titlePanel {
159.140 + background: #bfbfbf url(/style/images/panel/title.gif) repeat-x;
159.141 + width: 100%;
159.142 +}
159.143 +#copyrightDates {
159.144 + font-size: .83em;
159.145 + margin-top: 22px;
159.146 +}
159.147 +#bottomLeft, #left, #topLeft, #top, #topRight, #right, #bottomRight, #bottom {
159.148 + position: absolute;
159.149 +}
159.150 +#bottomLeft, #left, #topLeft {
159.151 + width: 12px;
159.152 +}
159.153 +#bottomLeft, #bottomRight, #bottom {
159.154 + height: 18px;
159.155 +}
159.156 +#left, #right {
159.157 + z-index: 1;
159.158 +}
159.159 +#topLeft, #topRight {
159.160 + height: 96px;
159.161 +}
159.162 +#top {
159.163 + height: 12px;
159.164 +}
159.165 +#topRight, #right, #bottomRight {
159.166 + width: 18px;
159.167 +}
159.168 +
159.169 +/************************************************************************/
159.170 +/* Copyright and Trademark Statement */
159.171 +/************************************************************************/
159.172 +/* */
159.173 +/* All original textual and graphical site content: */
159.174 +/* */
159.175 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
159.176 +/* reserved. Reproduction in whole or in part without written */
159.177 +/* permission is prohibited. interos and the interos logos are */
159.178 +/* trademarks of Brent Angeline and interos LLC. All other company */
159.179 +/* names, product names, and services mentioned herein may be the */
159.180 +/* property of their respective owners. Comments in the interos.org */
159.181 +/* forums are the property of their respective posters. All software */
159.182 +/* developed in the forums is open source and belongs to everyone. */
159.183 +/* */
159.184 +/************************************************************************/
159.185 +/* e-mail: info@interos.com */
159.186 +/************************************************************************/
160.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
160.2 +++ b/style/default_interos.com_ssl.css Sat May 01 16:19:36 2010 -0400
160.3 @@ -0,0 +1,183 @@
160.4 +/*************************************************************/
160.5 +/* interos Standard Document Header - CSS */
160.6 +/*************************************************************/
160.7 +/* URIs: https://interos.com/style/default.css */
160.8 +/* https://*.interos.com/style/default.css */
160.9 +/* Description: Default Cascading Style Sheet for interos */
160.10 +/* Author: Brent Angeline */
160.11 +/* CSS: W3C-Validated CSS */
160.12 +/*************************************************************/
160.13 +
160.14 +html, body, center, p, div, h1, h2, h3 {
160.15 + display: block;
160.16 +}
160.17 +html, body {
160.18 + color: #a0a0a0;
160.19 + background: #404040;
160.20 +}
160.21 +html {
160.22 + font: 1em sans-serif;
160.23 + margin: 0;
160.24 +}
160.25 +body {
160.26 + margin: 8px 19px 22px;
160.27 +}
160.28 +p {
160.29 + margin: 16px 0;
160.30 +}
160.31 +a {
160.32 + color: #d7d7d7;
160.33 + text-decoration: none;
160.34 +}
160.35 +a:hover, .box, #mainPanel a:active, #titlePanel a:active {
160.36 + color: #ffffff;
160.37 +}
160.38 +a:hover {
160.39 + text-decoration: underline;
160.40 +}
160.41 +a:active, #mainPanel a, #titlePanel a {
160.42 + color: #000000;
160.43 +}
160.44 +table {
160.45 + display: table;
160.46 + border-spacing: 2px;
160.47 + border-collapse: separate;
160.48 + margin-top: 0;
160.49 + margin-bottom: 0;
160.50 + text-indent: 0;
160.51 +}
160.52 +thead, tfoot, tbody {
160.53 + vertical-align: middle;
160.54 +}
160.55 +thead {
160.56 + display: table-header-group;
160.57 +}
160.58 +tfoot {
160.59 + display: table-footer-group;
160.60 + height: 1.17em;
160.61 +}
160.62 +tbody {
160.63 + display: table-row-group;
160.64 +}
160.65 +tr, th, td {
160.66 + vertical-align: inherit;
160.67 +}
160.68 +tr {
160.69 + display: table-row;
160.70 +}
160.71 +th, td {
160.72 + display: table-cell;
160.73 + padding: 1px 13px;
160.74 +}
160.75 +td {
160.76 + text-align: inherit;
160.77 +}
160.78 +h1, h2, #mainPanel p, #titlePanel p {
160.79 + padding: 0 16px;
160.80 +}
160.81 +h1, h3 {
160.82 + font-weight: bold;
160.83 +}
160.84 +h1 {
160.85 + font-size: 2em;
160.86 + margin: 21px 0;
160.87 +}
160.88 +h2 {
160.89 + font-weight: normal;
160.90 + font-size: 1.17em;
160.91 + margin: 19px 0 11px;
160.92 +}
160.93 +h3 {
160.94 + background: #85a4c4 url(/style/images/box/head.gif) repeat-x;
160.95 + font-size: 1.17em;
160.96 + font-style: italic;
160.97 + margin: 19px 0;
160.98 + padding: 9px 13px;
160.99 + border-top: 1px solid #ffffff;
160.100 + border-bottom: 1px solid #bfbfbf;
160.101 +}
160.102 +strong {
160.103 + font-weight: bolder;
160.104 +}
160.105 +div p br {
160.106 + display: none;
160.107 +}
160.108 +.box {
160.109 + background: #808080;
160.110 + margin: 20px 2px 20px 0;
160.111 + padding-bottom: 8px;
160.112 + border-left: 1px solid #ffffff;
160.113 + border-right: 1px solid #ffffff;
160.114 + border-bottom: 1px solid #ffffff;
160.115 +}
160.116 +.box a {
160.117 + color: #bfefff;
160.118 +}
160.119 +.box a:hover {
160.120 + color: #def7ff;
160.121 +}
160.122 +.box a:active {
160.123 + color: #ffe6de;
160.124 +}
160.125 +.box p {
160.126 + padding: 0 19px;
160.127 +}
160.128 +#mainPanel, #titlePanel {
160.129 + color: #000000;
160.130 + border-top: 2px solid #fafafa;
160.131 + border-left: 2px solid #fafafa;
160.132 + border-bottom: 3px solid #050505;
160.133 + border-right: 3px solid #050505;
160.134 + z-index: 2;
160.135 +}
160.136 +#mainPanel {
160.137 + background: #bfbfbf url(/style/images/panel/main.gif) repeat-x;
160.138 +}
160.139 +#titlePanel {
160.140 + background: #bfbfbf url(/style/images/panel/title.gif) repeat-x;
160.141 + width: 100%;
160.142 +}
160.143 +#copyrightDates {
160.144 + font-size: .83em;
160.145 + margin-top: 22px;
160.146 +}
160.147 +#bottomLeft, #left, #topLeft, #top, #topRight, #right, #bottomRight, #bottom {
160.148 + position: absolute;
160.149 +}
160.150 +#bottomLeft, #left, #topLeft {
160.151 + width: 12px;
160.152 +}
160.153 +#bottomLeft, #bottomRight, #bottom {
160.154 + height: 18px;
160.155 +}
160.156 +#left, #right {
160.157 + z-index: 1;
160.158 +}
160.159 +#topLeft, #topRight {
160.160 + height: 96px;
160.161 +}
160.162 +#top {
160.163 + height: 12px;
160.164 +}
160.165 +#topRight, #right, #bottomRight {
160.166 + width: 18px;
160.167 +}
160.168 +
160.169 +/************************************************************************/
160.170 +/* Copyright and Trademark Statement */
160.171 +/************************************************************************/
160.172 +/* */
160.173 +/* All original textual and graphical site content: */
160.174 +/* */
160.175 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
160.176 +/* reserved. Reproduction in whole or in part without written */
160.177 +/* permission is prohibited. interos and the interos logos are */
160.178 +/* trademarks of Brent Angeline and interos LLC. All other company */
160.179 +/* names, product names, and services mentioned herein may be the */
160.180 +/* property of their respective owners. Comments in the interos.org */
160.181 +/* forums are the property of their respective posters. All software */
160.182 +/* developed in the forums is open source and belongs to everyone. */
160.183 +/* */
160.184 +/************************************************************************/
160.185 +/* e-mail: info@interos.com */
160.186 +/************************************************************************/
161.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
161.2 +++ b/style/default_interos.org.css Sat May 01 16:19:36 2010 -0400
161.3 @@ -0,0 +1,186 @@
161.4 +/*************************************************************/
161.5 +/* interos Standard Document Header - CSS */
161.6 +/*************************************************************/
161.7 +/* URIs: http://interos.org/style/default.css */
161.8 +/* http://*.interos.org/style/default.css */
161.9 +/* Description: Default Cascading Style Sheet for interos */
161.10 +/* Author: Brent Angeline */
161.11 +/* CSS: W3C-Validated CSS */
161.12 +/*************************************************************/
161.13 +
161.14 +html, body, center, p, div, h1, h2, h3 {
161.15 + display: block;
161.16 +}
161.17 +html, body {
161.18 + color: #a0a0a0;
161.19 + background: #404040;
161.20 +}
161.21 +html {
161.22 + font: 1em sans-serif;
161.23 + margin: 0;
161.24 +}
161.25 +body {
161.26 + margin: 8px 19px 22px;
161.27 +}
161.28 +p {
161.29 + margin: 16px 0;
161.30 +}
161.31 +a {
161.32 + color: #d7d7d7;
161.33 + text-decoration: none;
161.34 +}
161.35 +a:hover, .box, #mainPanel a:active, #titlePanel a:active {
161.36 + color: #ffffff;
161.37 +}
161.38 +a:hover {
161.39 + text-decoration: underline;
161.40 +}
161.41 +a:active, #mainPanel a, #titlePanel a {
161.42 + color: #000000;
161.43 +}
161.44 +table {
161.45 + display: table;
161.46 + border-spacing: 2px;
161.47 + border-collapse: separate;
161.48 + margin-top: 0;
161.49 + margin-bottom: 0;
161.50 + text-indent: 0;
161.51 +}
161.52 +thead, tfoot, tbody {
161.53 + vertical-align: middle;
161.54 +}
161.55 +thead {
161.56 + display: table-header-group;
161.57 +}
161.58 +tfoot {
161.59 + display: table-footer-group;
161.60 + height: 1.17em;
161.61 +}
161.62 +tbody {
161.63 + display: table-row-group;
161.64 +}
161.65 +tr, th, td {
161.66 + vertical-align: inherit;
161.67 +}
161.68 +tr {
161.69 + display: table-row;
161.70 +}
161.71 +th, td {
161.72 + display: table-cell;
161.73 + padding: 1px 13px;
161.74 +}
161.75 +td {
161.76 + text-align: inherit;
161.77 +}
161.78 +h1, h2, #mainPanel p, #titlePanel p {
161.79 + padding: 0 16px;
161.80 +}
161.81 +h1, h3 {
161.82 + font-weight: bold;
161.83 +}
161.84 +h1 {
161.85 + font-size: 2em;
161.86 + margin: 21px 0;
161.87 +}
161.88 +h2 {
161.89 + font-weight: normal;
161.90 + font-size: 1.17em;
161.91 + margin: 19px 0 11px;
161.92 +}
161.93 +h3 {
161.94 + background: #85a4c4 url(/style/images/box/head.gif) repeat-x;
161.95 + font-size: 1.17em;
161.96 + font-style: italic;
161.97 + margin: 19px 0;
161.98 + padding: 9px 13px;
161.99 + border-top: 1px solid #ffffff;
161.100 + border-bottom: 1px solid #bfbfbf;
161.101 +}
161.102 +strong {
161.103 + font-weight: bolder;
161.104 +}
161.105 +div p br {
161.106 + display: none;
161.107 +}
161.108 +.default {
161.109 + margin-top: 12px;
161.110 +}
161.111 +.box {
161.112 + background: #808080;
161.113 + margin: 20px 2px 20px 0;
161.114 + padding-bottom: 8px;
161.115 + border-left: 1px solid #ffffff;
161.116 + border-right: 1px solid #ffffff;
161.117 + border-bottom: 1px solid #ffffff;
161.118 +}
161.119 +.box a {
161.120 + color: #bfefff;
161.121 +}
161.122 +.box a:hover {
161.123 + color: #def7ff;
161.124 +}
161.125 +.box a:active {
161.126 + color: #ffe6de;
161.127 +}
161.128 +.box p {
161.129 + padding: 0 19px;
161.130 +}
161.131 +#mainPanel, #titlePanel {
161.132 + color: #000000;
161.133 + border-top: 2px solid #fafafa;
161.134 + border-left: 2px solid #fafafa;
161.135 + border-bottom: 3px solid #050505;
161.136 + border-right: 3px solid #050505;
161.137 + z-index: 2;
161.138 +}
161.139 +#mainPanel {
161.140 + background: #bfbfbf url(/style/images/panel/main.gif) repeat-x;
161.141 +}
161.142 +#titlePanel {
161.143 + background: #bfbfbf url(/style/images/panel/title.gif) repeat-x;
161.144 + width: 100%;
161.145 +}
161.146 +#copyrightDates {
161.147 + font-size: .83em;
161.148 + margin-top: 22px;
161.149 +}
161.150 +#bottomLeft, #left, #topLeft, #top, #topRight, #right, #bottomRight, #bottom {
161.151 + position: absolute;
161.152 +}
161.153 +#bottomLeft, #left, #topLeft {
161.154 + width: 12px;
161.155 +}
161.156 +#bottomLeft, #bottomRight, #bottom {
161.157 + height: 18px;
161.158 +}
161.159 +#left, #right {
161.160 + z-index: 1;
161.161 +}
161.162 +#topLeft, #topRight {
161.163 + height: 96px;
161.164 +}
161.165 +#top {
161.166 + height: 12px;
161.167 +}
161.168 +#topRight, #right, #bottomRight {
161.169 + width: 18px;
161.170 +}
161.171 +
161.172 +/************************************************************************/
161.173 +/* Copyright and Trademark Statement */
161.174 +/************************************************************************/
161.175 +/* */
161.176 +/* All original textual and graphical site content: */
161.177 +/* */
161.178 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
161.179 +/* reserved. Reproduction in whole or in part without written */
161.180 +/* permission is prohibited. interos and the interos logos are */
161.181 +/* trademarks of Brent Angeline and interos LLC. All other company */
161.182 +/* names, product names, and services mentioned herein may be the */
161.183 +/* property of their respective owners. Comments in the interos.org */
161.184 +/* forums are the property of their respective posters. All software */
161.185 +/* developed in the forums is open source and belongs to everyone. */
161.186 +/* */
161.187 +/************************************************************************/
161.188 +/* e-mail: info@interos.org */
161.189 +/************************************************************************/
162.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
162.2 +++ b/style/default_interos.org_ssl.css Sat May 01 16:19:36 2010 -0400
162.3 @@ -0,0 +1,186 @@
162.4 +/*************************************************************/
162.5 +/* interos Standard Document Header - CSS */
162.6 +/*************************************************************/
162.7 +/* URIs: https://interos.org/style/default.css */
162.8 +/* https://*.interos.org/style/default.css */
162.9 +/* Description: Default Cascading Style Sheet for interos */
162.10 +/* Author: Brent Angeline */
162.11 +/* CSS: W3C-Validated CSS */
162.12 +/*************************************************************/
162.13 +
162.14 +html, body, center, p, div, h1, h2, h3 {
162.15 + display: block;
162.16 +}
162.17 +html, body {
162.18 + color: #a0a0a0;
162.19 + background: #404040;
162.20 +}
162.21 +html {
162.22 + font: 1em sans-serif;
162.23 + margin: 0;
162.24 +}
162.25 +body {
162.26 + margin: 8px 19px 22px;
162.27 +}
162.28 +p {
162.29 + margin: 16px 0;
162.30 +}
162.31 +a {
162.32 + color: #d7d7d7;
162.33 + text-decoration: none;
162.34 +}
162.35 +a:hover, .box, #mainPanel a:active, #titlePanel a:active {
162.36 + color: #ffffff;
162.37 +}
162.38 +a:hover {
162.39 + text-decoration: underline;
162.40 +}
162.41 +a:active, #mainPanel a, #titlePanel a {
162.42 + color: #000000;
162.43 +}
162.44 +table {
162.45 + display: table;
162.46 + border-spacing: 2px;
162.47 + border-collapse: separate;
162.48 + margin-top: 0;
162.49 + margin-bottom: 0;
162.50 + text-indent: 0;
162.51 +}
162.52 +thead, tfoot, tbody {
162.53 + vertical-align: middle;
162.54 +}
162.55 +thead {
162.56 + display: table-header-group;
162.57 +}
162.58 +tfoot {
162.59 + display: table-footer-group;
162.60 + height: 1.17em;
162.61 +}
162.62 +tbody {
162.63 + display: table-row-group;
162.64 +}
162.65 +tr, th, td {
162.66 + vertical-align: inherit;
162.67 +}
162.68 +tr {
162.69 + display: table-row;
162.70 +}
162.71 +th, td {
162.72 + display: table-cell;
162.73 + padding: 1px 13px;
162.74 +}
162.75 +td {
162.76 + text-align: inherit;
162.77 +}
162.78 +h1, h2, #mainPanel p, #titlePanel p {
162.79 + padding: 0 16px;
162.80 +}
162.81 +h1, h3 {
162.82 + font-weight: bold;
162.83 +}
162.84 +h1 {
162.85 + font-size: 2em;
162.86 + margin: 21px 0;
162.87 +}
162.88 +h2 {
162.89 + font-weight: normal;
162.90 + font-size: 1.17em;
162.91 + margin: 19px 0 11px;
162.92 +}
162.93 +h3 {
162.94 + background: #85a4c4 url(/style/images/box/head.gif) repeat-x;
162.95 + font-size: 1.17em;
162.96 + font-style: italic;
162.97 + margin: 19px 0;
162.98 + padding: 9px 13px;
162.99 + border-top: 1px solid #ffffff;
162.100 + border-bottom: 1px solid #bfbfbf;
162.101 +}
162.102 +strong {
162.103 + font-weight: bolder;
162.104 +}
162.105 +div p br {
162.106 + display: none;
162.107 +}
162.108 +.default {
162.109 + margin-top: 12px;
162.110 +}
162.111 +.box {
162.112 + background: #808080;
162.113 + margin: 20px 2px 20px 0;
162.114 + padding-bottom: 8px;
162.115 + border-left: 1px solid #ffffff;
162.116 + border-right: 1px solid #ffffff;
162.117 + border-bottom: 1px solid #ffffff;
162.118 +}
162.119 +.box a {
162.120 + color: #bfefff;
162.121 +}
162.122 +.box a:hover {
162.123 + color: #def7ff;
162.124 +}
162.125 +.box a:active {
162.126 + color: #ffe6de;
162.127 +}
162.128 +.box p {
162.129 + padding: 0 19px;
162.130 +}
162.131 +#mainPanel, #titlePanel {
162.132 + color: #000000;
162.133 + border-top: 2px solid #fafafa;
162.134 + border-left: 2px solid #fafafa;
162.135 + border-bottom: 3px solid #050505;
162.136 + border-right: 3px solid #050505;
162.137 + z-index: 2;
162.138 +}
162.139 +#mainPanel {
162.140 + background: #bfbfbf url(/style/images/panel/main.gif) repeat-x;
162.141 +}
162.142 +#titlePanel {
162.143 + background: #bfbfbf url(/style/images/panel/title.gif) repeat-x;
162.144 + width: 100%;
162.145 +}
162.146 +#copyrightDates {
162.147 + font-size: .83em;
162.148 + margin-top: 22px;
162.149 +}
162.150 +#bottomLeft, #left, #topLeft, #top, #topRight, #right, #bottomRight, #bottom {
162.151 + position: absolute;
162.152 +}
162.153 +#bottomLeft, #left, #topLeft {
162.154 + width: 12px;
162.155 +}
162.156 +#bottomLeft, #bottomRight, #bottom {
162.157 + height: 18px;
162.158 +}
162.159 +#left, #right {
162.160 + z-index: 1;
162.161 +}
162.162 +#topLeft, #topRight {
162.163 + height: 96px;
162.164 +}
162.165 +#top {
162.166 + height: 12px;
162.167 +}
162.168 +#topRight, #right, #bottomRight {
162.169 + width: 18px;
162.170 +}
162.171 +
162.172 +/************************************************************************/
162.173 +/* Copyright and Trademark Statement */
162.174 +/************************************************************************/
162.175 +/* */
162.176 +/* All original textual and graphical site content: */
162.177 +/* */
162.178 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
162.179 +/* reserved. Reproduction in whole or in part without written */
162.180 +/* permission is prohibited. interos and the interos logos are */
162.181 +/* trademarks of Brent Angeline and interos LLC. All other company */
162.182 +/* names, product names, and services mentioned herein may be the */
162.183 +/* property of their respective owners. Comments in the interos.org */
162.184 +/* forums are the property of their respective posters. All software */
162.185 +/* developed in the forums is open source and belongs to everyone. */
162.186 +/* */
162.187 +/************************************************************************/
162.188 +/* e-mail: info@interos.org */
162.189 +/************************************************************************/
163.1 Binary file style/images/box/head.gif has changed
164.1 Binary file style/images/box/highlight.gif has changed
165.1 Binary file style/images/buttons/new.gif has changed
166.1 Binary file style/images/buttons/new_down.gif has changed
167.1 Binary file style/images/buttons/new_faded.gif has changed
168.1 Binary file style/images/buttons/new_up.gif has changed
169.1 Binary file style/images/buttons/new_up_faded.gif has changed
170.1 Binary file style/images/buttons/next.gif has changed
171.1 Binary file style/images/buttons/next_down.gif has changed
172.1 Binary file style/images/buttons/next_faded.gif has changed
173.1 Binary file style/images/buttons/next_up.gif has changed
174.1 Binary file style/images/buttons/next_up_faded.gif has changed
175.1 Binary file style/images/buttons/open.gif has changed
176.1 Binary file style/images/buttons/open_down.gif has changed
177.1 Binary file style/images/buttons/open_faded.gif has changed
178.1 Binary file style/images/buttons/open_up.gif has changed
179.1 Binary file style/images/buttons/open_up_faded.gif has changed
180.1 Binary file style/images/buttons/settings.gif has changed
181.1 Binary file style/images/buttons/settings_down.gif has changed
182.1 Binary file style/images/buttons/settings_faded.gif has changed
183.1 Binary file style/images/buttons/settings_up.gif has changed
184.1 Binary file style/images/buttons/settings_up_faded.gif has changed
185.1 Binary file style/images/menu/active.gif has changed
186.1 Binary file style/images/menu/new_hover.gif has changed
187.1 Binary file style/images/menu/new_top.gif has changed
188.1 Binary file style/images/menu/next_hover.gif has changed
189.1 Binary file style/images/menu/next_top.gif has changed
190.1 Binary file style/images/menu/open_hover.gif has changed
191.1 Binary file style/images/menu/open_top.gif has changed
192.1 Binary file style/images/menu/settings_hover.gif has changed
193.1 Binary file style/images/menu/settings_top.gif has changed
194.1 Binary file style/images/panel/main.gif has changed
195.1 Binary file style/images/panel/title.gif has changed
196.1 Binary file style/images/panel/welcome.gif has changed
197.1 Binary file style/images/toolbar.gif has changed
198.1 Binary file style/images/toolbar_shaded.gif has changed
199.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
199.2 +++ b/style/login_interos.com_ssl.css Sat May 01 16:19:36 2010 -0400
199.3 @@ -0,0 +1,200 @@
199.4 +/***********************************************************/
199.5 +/* interos Standard Document Header - CSS */
199.6 +/***********************************************************/
199.7 +/* URIs: https://interos.com/style/login.css */
199.8 +/* https://www.interos.com/style/login.css */
199.9 +/* Description: Cascading Style Sheet for interos login */
199.10 +/* Author: Brent Angeline */
199.11 +/* CSS: W3C-Validated CSS */
199.12 +/***********************************************************/
199.13 +
199.14 +html, body, center, p, form, h1, h2, div {
199.15 + display: block;
199.16 +}
199.17 +html, body {
199.18 + color: #a0a0a0;
199.19 + background: #404040;
199.20 +}
199.21 +html {
199.22 + font: 1em sans-serif;
199.23 + margin: 0;
199.24 +}
199.25 +body {
199.26 + margin: 8px 0 3px;
199.27 +}
199.28 +p {
199.29 + margin: 16px 0;
199.30 +}
199.31 +a {
199.32 + color: #d7d7d7;
199.33 + text-decoration: none;
199.34 +}
199.35 +a:hover, #mainPanel a:active, #newUser a:hover strong {
199.36 + color: #ffffff;
199.37 +}
199.38 +a:hover {
199.39 + text-decoration: underline;
199.40 +}
199.41 +a:active, #mainPanel, #mainPanel a, #newUser a:active strong {
199.42 + color: #000000;
199.43 +}
199.44 +table {
199.45 + display: table;
199.46 + border-spacing: 2px;
199.47 + border-collapse: separate;
199.48 + margin-top: 0;
199.49 + margin-bottom: 0;
199.50 + text-indent: 0;
199.51 +}
199.52 +thead, tfoot, tbody {
199.53 + vertical-align: middle;
199.54 +}
199.55 +thead {
199.56 + display: table-header-group;
199.57 +}
199.58 +tfoot {
199.59 + display: table-footer-group;
199.60 +}
199.61 +tfoot td {
199.62 + height: 2.17em;
199.63 +}
199.64 +tbody {
199.65 + display: table-row-group;
199.66 +}
199.67 +tr, th, td {
199.68 + vertical-align: inherit;
199.69 +}
199.70 +tr {
199.71 + display: table-row;
199.72 +}
199.73 +th, td {
199.74 + display: table-cell;
199.75 + padding: 1px;
199.76 +}
199.77 +td {
199.78 + text-align: left;
199.79 +}
199.80 +h1, h2 {
199.81 + font-weight: bold;
199.82 +}
199.83 +h1 {
199.84 + font-size: 2em;
199.85 + margin: 21px 0;
199.86 +}
199.87 +h2 {
199.88 + font-weight: normal;
199.89 + font-size: 1.17em;
199.90 + margin: 19px 0 27px;
199.91 +}
199.92 +label {
199.93 + font-size: 1.08em;
199.94 + margin: 0 4px 0 28px;
199.95 +}
199.96 +strong {
199.97 + font-weight: bolder;
199.98 +}
199.99 +div p br, tfoot td br {
199.100 + display: none;
199.101 +}
199.102 +#mainPanel {
199.103 + background: #bfbfbf url(/style/images/panel/main.gif) repeat-x;
199.104 + border-top: 2px solid #fafafa;
199.105 + border-left: 2px solid #fafafa;
199.106 + border-bottom: 3px solid #050505;
199.107 + border-right: 3px solid #050505;
199.108 + z-index: 2;
199.109 +}
199.110 +#login, #password, #copyrightDates {
199.111 + font: .83em sans-serif;
199.112 +}
199.113 +#submitButton {
199.114 + text-align: center;
199.115 + margin: 0 28px 0 4px;
199.116 + width: 5.125em;
199.117 +}
199.118 +#newUser a strong {
199.119 + color: #e7e7e7;
199.120 +}
199.121 +#copyrightDates {
199.122 + margin-top: 22px;
199.123 +}
199.124 +#bottomLeft, #left, #topLeft, #top, #topRight, #right, #bottomRight, #bottom,
199.125 +#i, #nteros,
199.126 +#newButton, #nextButton, #openButton, #settingsButton,
199.127 +#newLabel, #openLabel, #nextLabel, #settingsLabel {
199.128 + position: absolute;
199.129 +}
199.130 +#bottomLeft, #left, #topLeft {
199.131 + width: 12px;
199.132 +}
199.133 +#bottomLeft, #bottomRight, #bottom {
199.134 + height: 18px;
199.135 +}
199.136 +#left, #right {
199.137 + z-index: 1;
199.138 +}
199.139 +#topLeft, #topRight {
199.140 + height: 53px;
199.141 +}
199.142 +#top {
199.143 + height: 12px;
199.144 +}
199.145 +#topRight, #right, #bottomRight {
199.146 + width: 18px;
199.147 +}
199.148 +#i, #nteros {
199.149 + height: 60px;
199.150 + z-index: 3;
199.151 +}
199.152 +#i {
199.153 + width: 52px;
199.154 +}
199.155 +#nteros {
199.156 + width: 284px;
199.157 +}
199.158 +#newButton, #openButton, #nextButton, #settingsButton {
199.159 + width: 72px;
199.160 + height: 72px;
199.161 +}
199.162 +#newLabel, #openLabel, #nextLabel, #settingsLabel {
199.163 + font-size: 24px;
199.164 +}
199.165 +#newLabel {
199.166 + color: #15c015;
199.167 + left: 80px;
199.168 + bottom: 22px;
199.169 +}
199.170 +#openLabel {
199.171 + color: #c0c015;
199.172 + left: 80px;
199.173 + top: 22px;
199.174 +}
199.175 +#nextLabel {
199.176 + color: #c05959;
199.177 + right: 80px;
199.178 + top: 22px;
199.179 +}
199.180 +#settingsLabel {
199.181 + color: #158ab5;
199.182 + right: 80px;
199.183 + bottom: 22px;
199.184 +}
199.185 +
199.186 +/************************************************************************/
199.187 +/* Copyright and Trademark Statement */
199.188 +/************************************************************************/
199.189 +/* */
199.190 +/* All original textual and graphical site content: */
199.191 +/* */
199.192 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
199.193 +/* reserved. Reproduction in whole or in part without written */
199.194 +/* permission is prohibited. interos and the interos logos are */
199.195 +/* trademarks of Brent Angeline and interos LLC. All other company */
199.196 +/* names, product names, and services mentioned herein may be the */
199.197 +/* property of their respective owners. Comments in the interos.org */
199.198 +/* forums are the property of their respective posters. All software */
199.199 +/* developed in the forums is open source and belongs to everyone. */
199.200 +/* */
199.201 +/************************************************************************/
199.202 +/* e-mail: info@interos.com */
199.203 +/************************************************************************/
200.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
200.2 +++ b/style/main_interos.com_ssl.css Sat May 01 16:19:36 2010 -0400
200.3 @@ -0,0 +1,260 @@
200.4 +/**********************************************************/
200.5 +/* interos Standard Document Header - CSS */
200.6 +/**********************************************************/
200.7 +/* URIs: https://interos.com/style/main.css */
200.8 +/* https://www.interos.com/style/main.css */
200.9 +/* Description: Cascading Style Sheet for interos main */
200.10 +/* Author: Brent Angeline */
200.11 +/* CSS: W3C-Validated CSS */
200.12 +/**********************************************************/
200.13 +
200.14 +html, frameset, body, center, table, p, h1, h2, h3, div,
200.15 +#openButton, #nextButton, #openMenuButton, #nextMenuButton,
200.16 +#newButton, #settingsButton, #newMenuButton, #settingsMenuButton {
200.17 + display: block;
200.18 +}
200.19 +html, frameset, body {
200.20 + color: #c0c0c0;
200.21 + background: #808080;
200.22 + font: 1em sans-serif;
200.23 + margin: 0;
200.24 +}
200.25 +p {
200.26 + margin: 16px 0;
200.27 +}
200.28 +a {
200.29 + color: #d7d7d7;
200.30 + text-decoration: none;
200.31 +}
200.32 +a:hover, .box, #welcomePanel a:active {
200.33 + color: #ffffff;
200.34 +}
200.35 +a:hover {
200.36 + text-decoration: underline;
200.37 +}
200.38 +a:active, #welcomePanel a {
200.39 + color: #000000;
200.40 +}
200.41 +a:focus {
200.42 + outline-offset: -1px;
200.43 +}
200.44 +table {
200.45 + display: table;
200.46 + border-collapse: separate;
200.47 + margin-top: 0;
200.48 + margin-bottom: 0;
200.49 + text-indent: 0;
200.50 +}
200.51 +thead, tfoot, tbody {
200.52 + vertical-align: middle;
200.53 +}
200.54 +thead {
200.55 + display: table-header-group;
200.56 +}
200.57 +tfoot {
200.58 + display: table-footer-group;
200.59 +}
200.60 +tbody {
200.61 + display: table-row-group;
200.62 +}
200.63 +tr, th, td {
200.64 + vertical-align: inherit;
200.65 +}
200.66 +tr {
200.67 + display: table-row;
200.68 +}
200.69 +th, td {
200.70 + display: table-cell;
200.71 +}
200.72 +td {
200.73 + text-align: inherit;
200.74 +}
200.75 +h1, h2, h3 {
200.76 + font-weight: bold;
200.77 +}
200.78 +strong {
200.79 + font-weight: bolder;
200.80 +}
200.81 +.bottom {
200.82 + position: absolute;
200.83 + left: 0;
200.84 + bottom: 0;
200.85 +}
200.86 +.hidden {
200.87 + display: none;
200.88 +}
200.89 +#topToolbar, #bottomToolbar, #topToolbarFaded, #bottomToolbarFaded {
200.90 + border-spacing: 0;
200.91 + height: 72px;
200.92 +}
200.93 +#topToolbar td, #bottomToolbar td, #topToolbarFaded td, #bottomToolbarFaded td {
200.94 + padding: 0;
200.95 +}
200.96 +#topToolbar a, #bottomToolbar a, #topToolbarFaded a, #bottomToolbarFaded a {
200.97 + font-style: italic;
200.98 + text-decoration: none;
200.99 +}
200.100 +#topToolbar a:hover, #bottomToolbar a:hover,
200.101 +#topToolbarFaded a:hover, #bottomToolbarFaded a:hover {
200.102 + text-decoration: underline;
200.103 +}
200.104 +#openButton {
200.105 + color: #eaeaea;
200.106 + background: #a9a95a url(/style/images/buttons/open_faded.gif) repeat-x;
200.107 + width: 100%;
200.108 +}
200.109 +#openButton:hover {
200.110 + color: #ffffff;
200.111 + background: #9e9e28 url(/style/images/buttons/open.gif) repeat-x;
200.112 +}
200.113 +#openMenuButton {
200.114 + color: #eaeaea;
200.115 + background: #6c6d25 url(/style/images/buttons/open_up_faded.gif) repeat-x;
200.116 + width: 100%;
200.117 +}
200.118 +#openMenuButton:hover {
200.119 + color: #ffffff;
200.120 + background: #868942 url(/style/images/buttons/open_up.gif) repeat-x;
200.121 +}
200.122 +#openButton:active, #openMenuButton:active {
200.123 + color: #000000;
200.124 + background: #c1c154 url(/style/images/buttons/open_down.gif) repeat-x;
200.125 +}
200.126 +#topToolbar, #bottomToolbar {
200.127 + color: #000000;
200.128 + background: #c0c0c0 url(/style/images/toolbar.gif) repeat-x;
200.129 +}
200.130 +#topToolbarFaded, #topToolbarCornerFaded,
200.131 +#bottomToolbarFaded, #bottomToolbarCornerFaded {
200.132 + color: #000000;
200.133 + background: #c0c0c0 url(/style/images/toolbar_shaded.gif) repeat-x;
200.134 +}
200.135 +#nextButton {
200.136 + color: #eaeaea;
200.137 + background: #a95a5a url(/style/images/buttons/next_faded.gif) repeat-x;
200.138 + width: 100%;
200.139 +}
200.140 +#nextButton:hover {
200.141 + color: #ffffff;
200.142 + background: #9e2828 url(/style/images/buttons/next.gif) repeat-x;
200.143 +}
200.144 +#nextMenuButton {
200.145 + color: #eaeaea;
200.146 + background: #6c2525 url(/style/images/buttons/next_up_faded.gif) repeat-x;
200.147 + width: 100%;
200.148 +}
200.149 +#nextMenuButton:hover {
200.150 + color: #ffffff;
200.151 + background: #894342 url(/style/images/buttons/next_up.gif) repeat-x;
200.152 +}
200.153 +#nextButton:active, #nextMenuButton:active {
200.154 + color: #000000;
200.155 + background: #be494c url(/style/images/buttons/next_down.gif) repeat-x;
200.156 +}
200.157 +#welcomePanel {
200.158 + position: relative;
200.159 + color: #000000;
200.160 + background: #dfdfdf url(/style/images/panel/welcome.gif) repeat-x;
200.161 + border-spacing: 2px;
200.162 + border-top: 2px solid #fafafa;
200.163 + border-left: 2px solid #fafafa;
200.164 + border-bottom: 3px solid #050505;
200.165 + border-right: 3px solid #050505;
200.166 + margin: 0 8px;
200.167 + top: -18px;
200.168 +}
200.169 +#welcomePanel th, #welcomePanel td {
200.170 + padding: 1px 13px;
200.171 +}
200.172 +#welcomePanel th {
200.173 + border-bottom: 1px solid #bfbfbf;
200.174 +}
200.175 +#welcomePanel h1, #welcomePanel h2, #welcomePanel p {
200.176 + padding: 0 16px;
200.177 +}
200.178 +#welcomePanel h1 {
200.179 + font-size: 2em;
200.180 + margin: 21px 0;
200.181 +}
200.182 +#welcomePanel h2 {
200.183 + font-size: 1.17em;
200.184 + margin: 19px 0 11px;
200.185 +}
200.186 +#welcomePanel tfoot {
200.187 + height: 1.17em;
200.188 +}
200.189 +#new, #try {
200.190 + color: #5f9e28;
200.191 +}
200.192 +#open {
200.193 + color: #9e9e28;
200.194 +}
200.195 +#next {
200.196 + color: #9e2828;
200.197 +}
200.198 +#settings {
200.199 + color: #2828bc;
200.200 +}
200.201 +#newButton {
200.202 + color: #eaeaea;
200.203 + background: #7fa85a url(/style/images/buttons/new_faded.gif) repeat-x;
200.204 + width: 100%;
200.205 +}
200.206 +#newButton:hover {
200.207 + color: #ffffff;
200.208 + background: #5f9e28 url(/style/images/buttons/new.gif) repeat-x;
200.209 +}
200.210 +#newMenuButton {
200.211 + color: #eaeaea;
200.212 + background: #476d25 url(/style/images/buttons/new_up_faded.gif) repeat-x;
200.213 + width: 100%;
200.214 +}
200.215 +#newMenuButton:hover {
200.216 + color: #ffffff;
200.217 + background: #6d9447 url(/style/images/buttons/new_up.gif) repeat-x;
200.218 +}
200.219 +#newButton:active, #newMenuButton:active {
200.220 + color: #000000;
200.221 + background: #8fc154 url(/style/images/buttons/new_down.gif) repeat-x;
200.222 +}
200.223 +#settingsButton {
200.224 + color: #eaeaea;
200.225 + background: #5a5abd url(/style/images/buttons/settings_faded.gif) repeat-x;
200.226 + width: 100%;
200.227 +}
200.228 +#settingsButton:hover {
200.229 + color: #ffffff;
200.230 + background: #2828bc url(/style/images/buttons/settings.gif) repeat-x;
200.231 +}
200.232 +#settingsMenuButton {
200.233 + color: #eaeaea;
200.234 + background: #25257d url(/style/images/buttons/settings_up_faded.gif) repeat-x;
200.235 + width: 100%;
200.236 +}
200.237 +#settingsMenuButton:hover {
200.238 + color: #ffffff;
200.239 + background: #4747a3 url(/style/images/buttons/settings_up.gif) repeat-x;
200.240 +}
200.241 +#settingsButton:active, #settingsMenuButton:active {
200.242 + color: #000000;
200.243 + background: #4949cb url(/style/images/buttons/settings_down.gif) repeat-x;
200.244 +}
200.245 +
200.246 +/************************************************************************/
200.247 +/* Copyright and Trademark Statement */
200.248 +/************************************************************************/
200.249 +/* */
200.250 +/* All original textual and graphical site content: */
200.251 +/* */
200.252 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
200.253 +/* reserved. Reproduction in whole or in part without written */
200.254 +/* permission is prohibited. interos and the interos logos are */
200.255 +/* trademarks of Brent Angeline and interos LLC. All other company */
200.256 +/* names, product names, and services mentioned herein may be the */
200.257 +/* property of their respective owners. Comments in the interos.org */
200.258 +/* forums are the property of their respective posters. All software */
200.259 +/* developed in the forums is open source and belongs to everyone. */
200.260 +/* */
200.261 +/************************************************************************/
200.262 +/* e-mail: info@interos.com */
200.263 +/************************************************************************/
201.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
201.2 +++ b/style/menu_interos.com_ssl.css Sat May 01 16:19:36 2010 -0400
201.3 @@ -0,0 +1,140 @@
201.4 +/**********************************************************/
201.5 +/* interos Standard Document Header - CSS */
201.6 +/**********************************************************/
201.7 +/* URIs: https://interos.com/style/menu.css */
201.8 +/* https://www.interos.com/style/menu.css */
201.9 +/* Description: Cascading Style Sheet for interos menu */
201.10 +/* Author: Brent Angeline */
201.11 +/* CSS: W3C-Validated CSS */
201.12 +/**********************************************************/
201.13 +
201.14 +html, body, a, h1, div {
201.15 + display: block;
201.16 +}
201.17 +html, body {
201.18 + font: 1em sans-serif;
201.19 + color: #000000;
201.20 + background: #808080;
201.21 + margin: 0;
201.22 +}
201.23 +table {
201.24 + border-spacing: 0;
201.25 + border-collapse: collapse;
201.26 +}
201.27 +th, td {
201.28 + text-align: left;
201.29 + padding: 0;
201.30 +}
201.31 +h1 {
201.32 + margin: 21px 27px;
201.33 +}
201.34 +a {
201.35 + font-size: 1.5em;
201.36 + text-decoration: none;
201.37 + color: #ffffff;
201.38 + padding: 2px 6px 2px 4px;
201.39 +}
201.40 +a:focus {
201.41 + outline-offset: -1px;
201.42 +}
201.43 +a:hover span {
201.44 + text-decoration: underline;
201.45 +}
201.46 +a:active span {
201.47 + color: #000000;
201.48 +}
201.49 +img {
201.50 + vertical-align: middle;
201.51 + margin-right: 6px;
201.52 + border: 0;
201.53 +}
201.54 +br {
201.55 + display: none;
201.56 +}
201.57 +.newMenu {
201.58 + background: #6d9447 url(/style/images/menu/new_top.gif) repeat-x;
201.59 +}
201.60 +.openMenu {
201.61 + background: #868942 url(/style/images/menu/open_top.gif) repeat-x;
201.62 +}
201.63 +.nextMenu {
201.64 + background: #894342 url(/style/images/menu/next_top.gif) repeat-x;
201.65 +}
201.66 +.settingsMenu {
201.67 + background: #4747a3 url(/style/images/menu/settings_top.gif) repeat-x;
201.68 +}
201.69 +#newMenu, #openMenu, #nextMenu, #settingsMenu {
201.70 + position: absolute;
201.71 + width: 100%;
201.72 + height: 100%;
201.73 +}
201.74 +#newMenu table, #openMenu table {
201.75 + float: left;
201.76 +}
201.77 +#nextMenu table, #settingsMenu table {
201.78 + float: right;
201.79 +}
201.80 +#newMenuContent, #settingsMenuContent, #openMenuContent, #nextMenuContent {
201.81 + position: absolute;
201.82 + width: 100%;
201.83 + top: 9px;
201.84 +}
201.85 +#newMenu h1 {
201.86 + color: #b1c69d;
201.87 +}
201.88 +#newMenu a {
201.89 + color: #ecf1e7;
201.90 +}
201.91 +#newMenu a:hover {
201.92 + background: #b86a6a url(/style/images/menu/new_hover.gif);
201.93 +}
201.94 +#openMenu h1 {
201.95 + color: #bec09a;
201.96 +}
201.97 +#openMenu a {
201.98 + color: #eff0e7;
201.99 +}
201.100 +#openMenu a:hover {
201.101 + background: #8a4262 url(/style/images/menu/open_hover.gif);
201.102 +}
201.103 +#nextMenu h1 {
201.104 + color: #c09b9a;
201.105 +}
201.106 +#nextMenu a {
201.107 + color: #f0e7e7;
201.108 +}
201.109 +#nextMenu a:hover {
201.110 + background: #658a42 url(/style/images/menu/next_hover.gif);
201.111 +}
201.112 +#settingsMenu h1 {
201.113 + color: #9d9dce;
201.114 +}
201.115 +#settingsMenu a {
201.116 + color: #e7e7f3;
201.117 +}
201.118 +#settingsMenu a:hover {
201.119 + background: #a37a48 url(/style/images/menu/settings_hover.gif);
201.120 +}
201.121 +#newMenu a:active, #openMenu a:active,
201.122 +#nextMenu a:active, #settingsMenu a:active {
201.123 + background: #b86a6a url(/style/images/menu/active.gif);
201.124 +}
201.125 +
201.126 +/************************************************************************/
201.127 +/* Copyright and Trademark Statement */
201.128 +/************************************************************************/
201.129 +/* */
201.130 +/* All original textual and graphical site content: */
201.131 +/* */
201.132 +/* Copyright 2001-2009 Brent Angeline and interos LLC. All rights */
201.133 +/* reserved. Reproduction in whole or in part without written */
201.134 +/* permission is prohibited. interos and the interos logos are */
201.135 +/* trademarks of Brent Angeline and interos LLC. All other company */
201.136 +/* names, product names, and services mentioned herein may be the */
201.137 +/* property of their respective owners. Comments in the interos.org */
201.138 +/* forums are the property of their respective posters. All software */
201.139 +/* developed in the forums is open source and belongs to everyone. */
201.140 +/* */
201.141 +/************************************************************************/
201.142 +/* e-mail: info@interos.com */
201.143 +/************************************************************************/
202.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
202.2 +++ b/xhtml/cgi/bottom_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
202.3 @@ -0,0 +1,74 @@
202.4 +<?xml version="1.0" encoding="utf-8"?>
202.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
202.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
202.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
202.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
202.9 + <!--=================================================-->
202.10 + <!-- interos Standard Document Header - Markup -->
202.11 + <!--=================================================-->
202.12 + <!-- URIs: https://interos.com/bottom -->
202.13 + <!-- https://www.interos.com/bottom -->
202.14 + <!-- Title: interos bottom toolbar -->
202.15 + <!-- Author: Brent Angeline -->
202.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
202.17 + <!--=================================================-->
202.18 + <head>
202.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
202.20 + <meta name="title" content="interos bottom toolbar" />
202.21 + <meta name="description" content="bottom toolbar for interos" />
202.22 + <meta name="author" content="Brent Angeline" />
202.23 + <meta name="copyright"
202.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
202.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
202.26 + <title>interos bottom toolbar</title>
202.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
202.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
202.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
202.30 + media="screen, projection" />
202.31 + <script type="text/javascript" src="/js/bottom.js"></script>
202.32 + </head>
202.33 + <body id="body">
202.34 + <center>
202.35 + <table id="bottomToolbar" width="100%"
202.36 + border="0" cellpadding="0" cellspacing="0">
202.37 + <tr>
202.38 + <td width="72"
202.39 + height="72"><center>
202.40 + <a id="newButton"
202.41 + href="/interos?menu=new"
202.42 + style="padding: 26px 0 27px"
202.43 + target="_top"><strong>new</strong></a>
202.44 + </center></td>
202.45 + <td><center>
202.46 + <span class="hidden">|</span>
202.47 + </center></td>
202.48 + <td width="72"
202.49 + height="72"><center>
202.50 + <a id="settingsButton"
202.51 + href="/interos?menu=settings"
202.52 + style="padding: 26px 0 27px"
202.53 + target="_top"><strong>settings</strong></a>
202.54 + </center></td>
202.55 + </tr>
202.56 + </table>
202.57 + </center>
202.58 + </body>
202.59 + <!--=====================================================================-->
202.60 + <!-- Copyright and Trademark Statement -->
202.61 + <!--=====================================================================-->
202.62 + <!-- -->
202.63 + <!-- All original textual and graphical site content: -->
202.64 + <!-- -->
202.65 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
202.66 + <!-- reserved. Reproduction in whole or in part without written -->
202.67 + <!-- permission is prohibited. interos and the interos logos are -->
202.68 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
202.69 + <!-- product, and service names mentioned herein may be the properties -->
202.70 + <!-- of their respective owners. Comments in the interos.org forums -->
202.71 + <!-- are the properties of their respective authors. All software -->
202.72 + <!-- developed in the forums is open source and belongs to everyone. -->
202.73 + <!-- -->
202.74 + <!--=====================================================================-->
202.75 + <!-- e-mail: info@interos.com -->
202.76 + <!--=====================================================================-->
202.77 +</html>
203.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
203.2 +++ b/xhtml/cgi/bottom_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
203.3 @@ -0,0 +1,154 @@
203.4 +<?xml version="1.0" encoding="utf-8"?>
203.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
203.6 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
203.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
203.8 + <!--=================================================-->
203.9 + <!-- interos Standard Document Header - Markup -->
203.10 + <!--=================================================-->
203.11 + <!-- URIs: https://interos.com/bottom -->
203.12 + <!-- https://www.interos.com/bottom -->
203.13 + <!-- Title: interos bottom toolbar -->
203.14 + <!-- Author: Brent Angeline -->
203.15 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
203.16 + <!--=================================================-->
203.17 + <head>
203.18 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
203.19 + <meta name="title" content="interos bottom toolbar" />
203.20 + <meta name="description" content="bottom toolbar for interos" />
203.21 + <meta name="author" content="Brent Angeline" />
203.22 + <meta name="copyright"
203.23 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
203.24 + <meta name="robots" content="noindex, nofollow, noarchive" />
203.25 + <title>interos bottom toolbar</title>
203.26 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
203.27 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
203.28 + <style type="text/css">
203.29 + html, body, center, a, strong {
203.30 + display: block;
203.31 + }
203.32 + html, body {
203.33 + color: #c0c0c0;
203.34 + background: #808080;
203.35 + font: 1em sans-serif;
203.36 + margin: 0;
203.37 + }
203.38 + a {
203.39 + color: #d7d7d7;
203.40 + font-style: italic;
203.41 + text-decoration: none;
203.42 + height: 72px;
203.43 + }
203.44 + a:focus {
203.45 + outline-offset: -1px;
203.46 + }
203.47 + a:hover strong {
203.48 + text-decoration: underline;
203.49 + }
203.50 + .toolbar {
203.51 + color: #000000;
203.52 + background: #c0c0c0 url(/style/images/toolbar.gif) repeat-x;
203.53 + }
203.54 + .hidden {
203.55 + display: none;
203.56 + }
203.57 + #newLink, #settingsLink {
203.58 + display: table;
203.59 + height: 72px;
203.60 + overflow: hidden;
203.61 + #position: relative;
203.62 + }
203.63 + #newButton, #settingsButton {
203.64 + cursor: pointer;
203.65 + display: table-cell;
203.66 + vertical-align: middle;
203.67 + text-align: center;
203.68 + width: 72px;
203.69 + #position: absolute;
203.70 + #top: 50%;
203.71 + #left: 0;
203.72 + }
203.73 + #newText, #settingsText {
203.74 + #position: relative;
203.75 + #top: -50%
203.76 + }
203.77 + #newLink {
203.78 + color: #eaeaea;
203.79 + background: #7fa85a
203.80 + url(/style/images/buttons/new_faded.gif) repeat-x;
203.81 + }
203.82 + #newLink:hover {
203.83 + color: #ffffff;
203.84 + background: #5f9e28
203.85 + url(/style/images/buttons/new.gif) repeat-x;
203.86 + }
203.87 + #newLink:active {
203.88 + color: #000000;
203.89 + background: #8fc154 bottom
203.90 + url(/style/images/buttons/new_down.gif) repeat-x;
203.91 + }
203.92 + #settingsLink {
203.93 + color: #eaeaea;
203.94 + background: #5a5abd
203.95 + url(/style/images/buttons/settings_faded.gif) repeat-x;
203.96 + }
203.97 + #settingsLink:hover {
203.98 + color: #ffffff;
203.99 + background: #2828bc
203.100 + url(/style/images/buttons/settings.gif) repeat-x;
203.101 + }
203.102 + #settingsLink:active {
203.103 + color: #000000;
203.104 + background: #4949cb bottom
203.105 + url(/style/images/buttons/settings_down.gif) repeat-x;
203.106 + }
203.107 + </style>
203.108 + </head>
203.109 + <body>
203.110 + <center>
203.111 + <table class="toolbar" width="100%"
203.112 + border="0" cellpadding="0" cellspacing="0">
203.113 + <tr>
203.114 + <td width="72"
203.115 + height="72"><center>
203.116 + <a id="newLink" href="#">
203.117 + <span id="newButton">
203.118 + <strong id="newText">
203.119 + new
203.120 + </strong>
203.121 + </span>
203.122 + </a>
203.123 + </center></td>
203.124 + <td><center> <span class="hidden">|</span> </center></td>
203.125 + <td width="72"
203.126 + height="72"><center>
203.127 + <a id="settingsLink" href="#">
203.128 + <span id="settingsButton">
203.129 + <strong id="settingsText">
203.130 + settings
203.131 + </strong>
203.132 + </span>
203.133 + </a>
203.134 + </center></td>
203.135 + </tr>
203.136 + </table>
203.137 + </center>
203.138 + </body>
203.139 + <!--=====================================================================-->
203.140 + <!-- Copyright and Trademark Statement -->
203.141 + <!--=====================================================================-->
203.142 + <!-- -->
203.143 + <!-- All original textual and graphical site content: -->
203.144 + <!-- -->
203.145 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
203.146 + <!-- reserved. Reproduction in whole or in part without written -->
203.147 + <!-- permission is prohibited. interos and the interos logos are -->
203.148 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
203.149 + <!-- product, and service names mentioned herein may be the properties -->
203.150 + <!-- of their respective owners. Comments in the interos.org forums -->
203.151 + <!-- are the properties of their respective authors. All software -->
203.152 + <!-- developed in the forums is open source and belongs to everyone. -->
203.153 + <!-- -->
203.154 + <!--=====================================================================-->
203.155 + <!-- e-mail: info@interos.com -->
203.156 + <!--=====================================================================-->
203.157 +</html>
204.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
204.2 +++ b/xhtml/cgi/bottom_new_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
204.3 @@ -0,0 +1,72 @@
204.4 +<?xml version="1.0" encoding="utf-8"?>
204.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
204.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
204.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
204.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
204.9 + <!--======================================================-->
204.10 + <!-- interos Standard Document Header - Markup -->
204.11 + <!--======================================================-->
204.12 + <!-- URIs: https://interos.com/bottom?button=new -->
204.13 + <!-- https://www.interos.com/bottom?button=new -->
204.14 + <!-- Title: interos new menu button -->
204.15 + <!-- Author: Brent Angeline -->
204.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
204.17 + <!--======================================================-->
204.18 + <head>
204.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
204.20 + <meta name="title" content="interos new menu button" />
204.21 + <meta name="description" content="button for interos new menu" />
204.22 + <meta name="author" content="Brent Angeline" />
204.23 + <meta name="copyright"
204.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
204.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
204.26 + <title>interos new menu button</title>
204.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
204.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
204.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
204.30 + media="screen, projection" />
204.31 + <script type="text/javascript" src="/js/bottom.js"></script>
204.32 + </head>
204.33 + <body id="body">
204.34 + <center>
204.35 + <table id="bottomToolbarFaded" width="100%"
204.36 + border="0" cellpadding="0" cellspacing="0">
204.37 + <tr>
204.38 + <td width="72"
204.39 + height="72"><center>
204.40 + <a id="newMenuButton"
204.41 + href="/main"
204.42 + style="padding: 26px 0 27px"
204.43 + target="_top"><strong>« back</strong></a>
204.44 + </center></td>
204.45 + <td><center>
204.46 + <span class="hidden">|</span>
204.47 + </center></td>
204.48 + <td id="bottomToolbarCornerFaded"
204.49 + width="72"
204.50 + height="72"><p>
204.51 + <br />
204.52 + </p></td>
204.53 + </tr>
204.54 + </table>
204.55 + </center>
204.56 + </body>
204.57 + <!--=====================================================================-->
204.58 + <!-- Copyright and Trademark Statement -->
204.59 + <!--=====================================================================-->
204.60 + <!-- -->
204.61 + <!-- All original textual and graphical site content: -->
204.62 + <!-- -->
204.63 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
204.64 + <!-- reserved. Reproduction in whole or in part without written -->
204.65 + <!-- permission is prohibited. interos and the interos logos are -->
204.66 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
204.67 + <!-- product, and service names mentioned herein may be the properties -->
204.68 + <!-- of their respective owners. Comments in the interos.org forums -->
204.69 + <!-- are the properties of their respective authors. All software -->
204.70 + <!-- developed in the forums is open source and belongs to everyone. -->
204.71 + <!-- -->
204.72 + <!--=====================================================================-->
204.73 + <!-- e-mail: info@interos.com -->
204.74 + <!--=====================================================================-->
204.75 +</html>
205.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
205.2 +++ b/xhtml/cgi/bottom_settings_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
205.3 @@ -0,0 +1,72 @@
205.4 +<?xml version="1.0" encoding="utf-8"?>
205.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
205.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
205.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
205.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
205.9 + <!--===========================================================-->
205.10 + <!-- interos Standard Document Header - Markup -->
205.11 + <!--===========================================================-->
205.12 + <!-- URIs: https://interos.com/bottom?button=settings -->
205.13 + <!-- https://www.interos.com/bottom?button=settings -->
205.14 + <!-- Title: interos settings menu button -->
205.15 + <!-- Author: Brent Angeline -->
205.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
205.17 + <!--===========================================================-->
205.18 + <head>
205.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
205.20 + <meta name="title" content="interos settings menu button" />
205.21 + <meta name="description" content="button for interos settings menu" />
205.22 + <meta name="author" content="Brent Angeline" />
205.23 + <meta name="copyright"
205.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
205.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
205.26 + <title>interos settings menu button</title>
205.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
205.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
205.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
205.30 + media="screen, projection" />
205.31 + <script type="text/javascript" src="/js/bottom.js"></script>
205.32 + </head>
205.33 + <body id="body">
205.34 + <center>
205.35 + <table id="bottomToolbarFaded" width="100%"
205.36 + border="0" cellpadding="0" cellspacing="0">
205.37 + <tr>
205.38 + <td id="bottomToolbarCornerFaded"
205.39 + width="72"
205.40 + height="72"><p>
205.41 + <br />
205.42 + </p></td>
205.43 + <td><center>
205.44 + <span class="hidden">|</span>
205.45 + </center></td>
205.46 + <td width="72"
205.47 + height="72"><center>
205.48 + <a id="settingsMenuButton"
205.49 + href="/main"
205.50 + style="padding: 26px 0 27px"
205.51 + target="_top"><strong>« back</strong></a>
205.52 + </center></td>
205.53 + </tr>
205.54 + </table>
205.55 + </center>
205.56 + </body>
205.57 + <!--=====================================================================-->
205.58 + <!-- Copyright and Trademark Statement -->
205.59 + <!--=====================================================================-->
205.60 + <!-- -->
205.61 + <!-- All original textual and graphical site content: -->
205.62 + <!-- -->
205.63 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
205.64 + <!-- reserved. Reproduction in whole or in part without written -->
205.65 + <!-- permission is prohibited. interos and the interos logos are -->
205.66 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
205.67 + <!-- product, and service names mentioned herein may be the properties -->
205.68 + <!-- of their respective owners. Comments in the interos.org forums -->
205.69 + <!-- are the properties of their respective authors. All software -->
205.70 + <!-- developed in the forums is open source and belongs to everyone. -->
205.71 + <!-- -->
205.72 + <!--=====================================================================-->
205.73 + <!-- e-mail: info@interos.com -->
205.74 + <!--=====================================================================-->
205.75 +</html>
206.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
206.2 +++ b/xhtml/cgi/browse_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
206.3 @@ -0,0 +1,21 @@
206.4 +
206.5 +
206.6 + <!--=====================================================================-->
206.7 + <!-- Copyright and Trademark Statement -->
206.8 + <!--=====================================================================-->
206.9 + <!-- -->
206.10 + <!-- All original textual and graphical site content: -->
206.11 + <!-- -->
206.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
206.13 + <!-- reserved. Reproduction in whole or in part without written -->
206.14 + <!-- permission is prohibited. interos and the interos logos are -->
206.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
206.16 + <!-- product, and service names mentioned herein may be the properties -->
206.17 + <!-- of their respective owners. Comments in the interos.org forums -->
206.18 + <!-- are the properties of their respective authors. All software -->
206.19 + <!-- developed in the forums is open source and belongs to everyone. -->
206.20 + <!-- -->
206.21 + <!--=====================================================================-->
206.22 + <!-- e-mail: info@interos.com -->
206.23 + <!--=====================================================================-->
206.24 +
207.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
207.2 +++ b/xhtml/cgi/content_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
207.3 @@ -0,0 +1,51 @@
207.4 +<?xml version="1.0" encoding="utf-8"?>
207.5 +<?xml-stylesheet type="text/css" href="/style/content.css"?>
207.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
207.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
207.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
207.9 + <!--=================================================-->
207.10 + <!-- interos Standard Document Header - Markup -->
207.11 + <!--=================================================-->
207.12 + <!-- URIs: https://interos.com/content -->
207.13 + <!-- https://www.interos.com/content -->
207.14 + <!-- Title: interos content -->
207.15 + <!-- Author: Brent Angeline -->
207.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
207.17 + <!--=================================================-->
207.18 + <head>
207.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
207.20 + <meta name="title" content="interos content" />
207.21 + <meta name="description" content="middle frame for interos content" />
207.22 + <meta name="author" content="Brent Angeline" />
207.23 + <meta name="copyright"
207.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
207.25 + <meta name="robots" content="noindex,nofollow,noarchive" />
207.26 + <title>interos content</title>
207.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
207.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
207.29 + <link rel="stylesheet" type="text/css" href="/style/content.css" />
207.30 + <script type="text/javascript" src="/js/content.js"></script>
207.31 + </head>
207.32 + <body>
207.33 + <div id="content">
207.34 + </div>
207.35 + </body>
207.36 + <!--=====================================================================-->
207.37 + <!-- Copyright and Trademark Statement -->
207.38 + <!--=====================================================================-->
207.39 + <!-- -->
207.40 + <!-- All original textual and graphical site content: -->
207.41 + <!-- -->
207.42 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
207.43 + <!-- reserved. Reproduction in whole or in part without written -->
207.44 + <!-- permission is prohibited. interos and the interos logos are -->
207.45 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
207.46 + <!-- product, and service names mentioned herein may be the properties -->
207.47 + <!-- of their respective owners. Comments in the interos.org forums -->
207.48 + <!-- are the properties of their respective authors. All software -->
207.49 + <!-- developed in the forums is open source and belongs to everyone. -->
207.50 + <!-- -->
207.51 + <!--=====================================================================-->
207.52 + <!-- e-mail: info@interos.com -->
207.53 + <!--=====================================================================-->
207.54 +</html>
208.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
208.2 +++ b/xhtml/cgi/login_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
208.3 @@ -0,0 +1,115 @@
208.4 +<?xml version="1.0" encoding="utf-8"?>
208.5 +<?xml-stylesheet type="text/css" href="/style/login.css"?>
208.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
208.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
208.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
208.9 + <!--=================================================-->
208.10 + <!-- interos Standard Document Header - Markup -->
208.11 + <!--=================================================-->
208.12 + <!-- URIs: https://interos.com/login -->
208.13 + <!-- https://www.interos.com/login -->
208.14 + <!-- Title: interos login -->
208.15 + <!-- Author: Brent Angeline -->
208.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
208.17 + <!--=================================================-->
208.18 + <head>
208.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
208.20 + <meta name="title" content="interos login" />
208.21 + <meta name="description" content="enter into interos" />
208.22 + <meta name="author" content="Brent Angeline" />
208.23 + <meta name="copyright"
208.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
208.25 + <meta name="robots" content="index, nofollow, noarchive" />
208.26 + <title>interos login</title>
208.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
208.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
208.29 + <link rel="stylesheet" type="text/css" href="/style/login.css"
208.30 + media="screen, projection" />
208.31 + <script type="text/javascript" src="/js/login.js"></script>
208.32 + </head>
208.33 + <body id="body">
208.34 + <center>
208.35 + <p id="navigation">
208.36 + <a href="/about">about</a> |
208.37 + <a href="/blog">blog</a> |
208.38 + <a href="/code">code</a> |
208.39 + <a href="https://interos.org/">develop</a> |
208.40 + <a href="/e-mail">e-mail</a> |
208.41 + <a href="/f.a.q.">f.a.q.</a> |
208.42 + <a href="/gear">gear</a> |
208.43 + <a href="/help">help</a>
208.44 + </p>
208.45 + <form id="loginForm" name="loginForm" action="/login" method="post">
208.46 + <table id="mainPanel">
208.47 + <thead>
208.48 + <tr>
208.49 + <th colspan="3"><center>
208.50 + <div id="title">
208.51 + <h1>
208.52 + <a href="/">interos</a>
208.53 + </h1>
208.54 + </div>
208.55 + <h2>
208.56 + internet operating system
208.57 + </h2>
208.58 + </center></th>
208.59 + </tr>
208.60 + </thead>
208.61 + <tfoot>
208.62 + <tr>
208.63 + <td colspan="3"><br /></td>
208.64 + </tr>
208.65 + </tfoot>
208.66 + <tbody>
208.67 + <tr>
208.68 + <td><label for="login">login:</label> </td>
208.69 + <td><input id="login" name="login"
208.70 + value="guest" readonly="readonly"
208.71 + size="16" maxlength="16"
208.72 + type="text" /></td>
208.73 + </tr>
208.74 + <tr>
208.75 + <td><label for="password">password:</label> </td>
208.76 + <td><input id="password" name="password"
208.77 + disabled="disabled"
208.78 + size="16" maxlength="16"
208.79 + type="password" /></td>
208.80 + <td rowspan="2"><div id="submitButton">
208.81 + <input type="submit"
208.82 + value="login »" />
208.83 + </div></td>
208.84 + </tr>
208.85 + </tbody>
208.86 + </table>
208.87 + </form>
208.88 + <p id="newUser">
208.89 + <a href="/new_user"><strong>new users click here</strong><br />
208.90 + to create your login</a>
208.91 + </p>
208.92 + <p>
208.93 + <br />
208.94 + </p>
208.95 + <p id="copyrightDates">
208.96 + © 2001–2009 interos
208.97 + </p>
208.98 + </center>
208.99 + </body>
208.100 + <!--=====================================================================-->
208.101 + <!-- Copyright and Trademark Statement -->
208.102 + <!--=====================================================================-->
208.103 + <!-- -->
208.104 + <!-- All original textual and graphical site content: -->
208.105 + <!-- -->
208.106 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
208.107 + <!-- reserved. Reproduction in whole or in part without written -->
208.108 + <!-- permission is prohibited. interos and the interos logos are -->
208.109 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
208.110 + <!-- product, and service names mentioned herein may be the properties -->
208.111 + <!-- of their respective owners. Comments in the interos.org forums -->
208.112 + <!-- are the properties of their respective authors. All software -->
208.113 + <!-- developed in the forums is open source and belongs to everyone. -->
208.114 + <!-- -->
208.115 + <!--=====================================================================-->
208.116 + <!-- e-mail: info@interos.com -->
208.117 + <!--=====================================================================-->
208.118 +</html>
209.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
209.2 +++ b/xhtml/cgi/main_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
209.3 @@ -0,0 +1,79 @@
209.4 +<?xml version="1.0" encoding="utf-8"?>
209.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
209.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
209.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
209.8 + <!--========================================================-->
209.9 + <!-- interos Standard Document Header - Markup -->
209.10 + <!--========================================================-->
209.11 + <!-- URIs: https://interos.com/ -->
209.12 + <!-- https://interos.com/main -->
209.13 + <!-- https://www.interos.com/ -->
209.14 + <!-- https://www.interos.com/main -->
209.15 + <!-- Title: interos -->
209.16 + <!-- Author: Brent Angeline -->
209.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
209.18 + <!--========================================================-->
209.19 + <head>
209.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
209.21 + <meta name="title" content="interos" />
209.22 + <meta name="description" content="internet operating system" />
209.23 + <meta name="author" content="Brent Angeline" />
209.24 + <meta name="copyright"
209.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
209.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
209.27 + <title>interos</title>
209.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
209.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
209.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
209.31 + media="screen, projection" />
209.32 + <script type="text/javascript" src="/js/interos.js"></script>
209.33 + </head>
209.34 + <frameset rows="72,*,72" border="0" frameborder="0" framespacing="0">
209.35 + <frame name="top" src="/top"
209.36 + frameborder="0" marginwidth="0" marginheight="0"
209.37 + noresize="noresize" scrolling="auto" />
209.38 + <frame name="content" src="/content"
209.39 + frameborder="0" marginwidth="0" marginheight="0"
209.40 + noresize="noresize" scrolling="auto" />
209.41 + <frame name="bottom" src="/bottom"
209.42 + frameborder="0" marginwidth="0" marginheight="0"
209.43 + noresize="noresize" scrolling="auto" />
209.44 + <noframes>
209.45 + <body id="body">
209.46 + <h3>
209.47 + menu
209.48 + </h3>
209.49 + <p>
209.50 + <a id="newLink" href="/main?menu=new">new</a>
209.51 + </p>
209.52 + <p>
209.53 + <a id="openLink" href="/main?menu=open">open</a>
209.54 + </p>
209.55 + <p>
209.56 + <a id="nextLink" href="/main?menu=next">next</a>
209.57 + </p>
209.58 + <p>
209.59 + <a id="settingsLink" href="/main?menu=settings">settings</a>
209.60 + </p>
209.61 + </body>
209.62 + </noframes>
209.63 + </frameset>
209.64 + <!--=====================================================================-->
209.65 + <!-- Copyright and Trademark Statement -->
209.66 + <!--=====================================================================-->
209.67 + <!-- -->
209.68 + <!-- All original textual and graphical site content: -->
209.69 + <!-- -->
209.70 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
209.71 + <!-- reserved. Reproduction in whole or in part without written -->
209.72 + <!-- permission is prohibited. interos and the interos logos are -->
209.73 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
209.74 + <!-- product, and service names mentioned herein may be the properties -->
209.75 + <!-- of their respective owners. Comments in the interos.org forums -->
209.76 + <!-- are the properties of their respective authors. All software -->
209.77 + <!-- developed in the forums is open source and belongs to everyone. -->
209.78 + <!-- -->
209.79 + <!--=====================================================================-->
209.80 + <!-- e-mail: info@interos.com -->
209.81 + <!--=====================================================================-->
209.82 +</html>
210.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
210.2 +++ b/xhtml/cgi/main_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
210.3 @@ -0,0 +1,79 @@
210.4 +<?xml version="1.0" encoding="utf-8"?>
210.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
210.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
210.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
210.8 + <!--========================================================-->
210.9 + <!-- interos Standard Document Header - Markup -->
210.10 + <!--========================================================-->
210.11 + <!-- URIs: https://interos.com/ -->
210.12 + <!-- https://interos.com/main -->
210.13 + <!-- https://www.interos.com/ -->
210.14 + <!-- https://www.interos.com/main -->
210.15 + <!-- Title: interos -->
210.16 + <!-- Author: Brent Angeline -->
210.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
210.18 + <!--========================================================-->
210.19 + <head>
210.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
210.21 + <meta name="title" content="interos" />
210.22 + <meta name="description" content="internet operating system" />
210.23 + <meta name="author" content="Brent Angeline" />
210.24 + <meta name="copyright"
210.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
210.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
210.27 + <title>interos</title>
210.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
210.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
210.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
210.31 + media="screen, projection" />
210.32 + <script type="text/javascript" src="/js/interos.js"></script>
210.33 + </head>
210.34 + <frameset rows="72,*,72" border="0" frameborder="0" framespacing="0">
210.35 + <frame name="top" src="/top"
210.36 + frameborder="0" marginwidth="0" marginheight="0"
210.37 + noresize="noresize" scrolling="auto" />
210.38 + <frame name="content" src="/content"
210.39 + frameborder="0" marginwidth="0" marginheight="0"
210.40 + noresize="noresize" scrolling="auto" />
210.41 + <frame name="bottom" src="/bottom"
210.42 + frameborder="0" marginwidth="0" marginheight="0"
210.43 + noresize="noresize" scrolling="auto" />
210.44 + <noframes>
210.45 + <body id="body">
210.46 + <h3>
210.47 + menu
210.48 + </h3>
210.49 + <p>
210.50 + <a id="newLink" href="/main?menu=new">new</a>
210.51 + </p>
210.52 + <p>
210.53 + <a id="openLink" href="/main?menu=open">open</a>
210.54 + </p>
210.55 + <p>
210.56 + <a id="nextLink" href="/main?menu=next">next</a>
210.57 + </p>
210.58 + <p>
210.59 + <a id="settingsLink" href="/main?menu=settings">settings</a>
210.60 + </p>
210.61 + </body>
210.62 + </noframes>
210.63 + </frameset>
210.64 + <!--=====================================================================-->
210.65 + <!-- Copyright and Trademark Statement -->
210.66 + <!--=====================================================================-->
210.67 + <!-- -->
210.68 + <!-- All original textual and graphical site content: -->
210.69 + <!-- -->
210.70 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
210.71 + <!-- reserved. Reproduction in whole or in part without written -->
210.72 + <!-- permission is prohibited. interos and the interos logos are -->
210.73 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
210.74 + <!-- product, and service names mentioned herein may be the properties -->
210.75 + <!-- of their respective owners. Comments in the interos.org forums -->
210.76 + <!-- are the properties of their respective authors. All software -->
210.77 + <!-- developed in the forums is open source and belongs to everyone. -->
210.78 + <!-- -->
210.79 + <!--=====================================================================-->
210.80 + <!-- e-mail: info@interos.com -->
210.81 + <!--=====================================================================-->
210.82 +</html>
211.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
211.2 +++ b/xhtml/cgi/main_new_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
211.3 @@ -0,0 +1,67 @@
211.4 +<?xml version="1.0" encoding="utf-8"?>
211.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
211.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
211.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
211.8 + <!--========================================================-->
211.9 + <!-- interos Standard Document Header - Markup -->
211.10 + <!--========================================================-->
211.11 + <!-- URIs: https://interos.com/main?menu=new -->
211.12 + <!-- https://interos.com/interos?menu=new -->
211.13 + <!-- https://www.interos.com/main?menu=new -->
211.14 + <!-- https://www.interos.com/interos?menu=new -->
211.15 + <!-- Title: interos new -->
211.16 + <!-- Author: Brent Angeline -->
211.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
211.18 + <!--========================================================-->
211.19 + <head>
211.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
211.21 + <meta name="title" content="interos new" />
211.22 + <meta name="description" content="new menu for interos" />
211.23 + <meta name="author" content="Brent Angeline" />
211.24 + <meta name="copyright"
211.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
211.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
211.27 + <title>interos new</title>
211.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
211.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
211.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
211.31 + media="screen, projection" />
211.32 + <script type="text/javascript" src="/js/interos_new.js"></script>
211.33 + </head>
211.34 + <frameset rows="*,72" border="0" frameborder="0" framespacing="0">
211.35 + <frame name="menu" src="/menu?name=new"
211.36 + frameborder="0" marginwidth="0" marginheight="0"
211.37 + noresize="noresize" scrolling="auto" />
211.38 + <frame name="button" src="/bottom?button=new"
211.39 + frameborder="0" marginwidth="0" marginheight="0"
211.40 + noresize="noresize" scrolling="auto" />
211.41 + <noframes>
211.42 + <body id="body">
211.43 + <div id="newEntries">
211.44 + <p>
211.45 + <a href="/main?new=text_file">text file</a>
211.46 + </p>
211.47 + </div>
211.48 + <div id="newLink"><a href="/main">new</a></div>
211.49 + </body>
211.50 + </noframes>
211.51 + </frameset>
211.52 + <!--=====================================================================-->
211.53 + <!-- Copyright and Trademark Statement -->
211.54 + <!--=====================================================================-->
211.55 + <!-- -->
211.56 + <!-- All original textual and graphical site content: -->
211.57 + <!-- -->
211.58 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
211.59 + <!-- reserved. Reproduction in whole or in part without written -->
211.60 + <!-- permission is prohibited. interos and the interos logos are -->
211.61 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
211.62 + <!-- product, and service names mentioned herein may be the properties -->
211.63 + <!-- of their respective owners. Comments in the interos.org forums -->
211.64 + <!-- are the properties of their respective authors. All software -->
211.65 + <!-- developed in the forums is open source and belongs to everyone. -->
211.66 + <!-- -->
211.67 + <!--=====================================================================-->
211.68 + <!-- e-mail: info@interos.com -->
211.69 + <!--=====================================================================-->
211.70 +</html>
212.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
212.2 +++ b/xhtml/cgi/main_next_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
212.3 @@ -0,0 +1,65 @@
212.4 +<?xml version="1.0" encoding="utf-8"?>
212.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
212.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
212.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
212.8 + <!--========================================================-->
212.9 + <!-- interos Standard Document Header - Markup -->
212.10 + <!--========================================================-->
212.11 + <!-- URIs: https://interos.com/main?menu=next -->
212.12 + <!-- https://interos.com/interos?menu=next -->
212.13 + <!-- https://www.interos.com/main?menu=next -->
212.14 + <!-- https://www.interos.com/interos?menu=next -->
212.15 + <!-- Title: interos next -->
212.16 + <!-- Author: Brent Angeline -->
212.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
212.18 + <!--========================================================-->
212.19 + <head>
212.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
212.21 + <meta name="title" content="interos next" />
212.22 + <meta name="description" content="next menu for interos" />
212.23 + <meta name="author" content="Brent Angeline" />
212.24 + <meta name="copyright"
212.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
212.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
212.27 + <title>interos next</title>
212.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
212.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
212.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
212.31 + media="screen, projection" />
212.32 + <script type="text/javascript" src="/js/interos_next.js"></script>
212.33 + </head>
212.34 + <frameset rows="72,*" border="0" frameborder="0" framespacing="0">
212.35 + <frame name="button" src="/top?button=next"
212.36 + frameborder="0" marginwidth="0" marginheight="0"
212.37 + noresize="noresize" scrolling="auto" />
212.38 + <frame name="menu" src="/menu?name=next"
212.39 + frameborder="0" marginwidth="0" marginheight="0"
212.40 + noresize="noresize" scrolling="auto" />
212.41 + <noframes>
212.42 + <body id="body">
212.43 + <div id="nextLink"><a href="/main">next</a></div>
212.44 + <div id="nextEntries">
212.45 + <p><a href="/logout">logout</a></p>
212.46 + </div>
212.47 + </body>
212.48 + </noframes>
212.49 + </frameset>
212.50 + <!--=====================================================================-->
212.51 + <!-- Copyright and Trademark Statement -->
212.52 + <!--=====================================================================-->
212.53 + <!-- -->
212.54 + <!-- All original textual and graphical site content: -->
212.55 + <!-- -->
212.56 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
212.57 + <!-- reserved. Reproduction in whole or in part without written -->
212.58 + <!-- permission is prohibited. interos and the interos logos are -->
212.59 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
212.60 + <!-- product, and service names mentioned herein may be the properties -->
212.61 + <!-- of their respective owners. Comments in the interos.org forums -->
212.62 + <!-- are the properties of their respective authors. All software -->
212.63 + <!-- developed in the forums is open source and belongs to everyone. -->
212.64 + <!-- -->
212.65 + <!--=====================================================================-->
212.66 + <!-- e-mail: info@interos.com -->
212.67 + <!--=====================================================================-->
212.68 +</html>
213.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
213.2 +++ b/xhtml/cgi/main_open_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
213.3 @@ -0,0 +1,65 @@
213.4 +<?xml version="1.0" encoding="utf-8"?>
213.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
213.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
213.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
213.8 + <!--========================================================-->
213.9 + <!-- interos Standard Document Header - Markup -->
213.10 + <!--========================================================-->
213.11 + <!-- URIs: https://interos.com/main?menu=open -->
213.12 + <!-- https://interos.com/interos?menu=open -->
213.13 + <!-- https://www.interos.com/main?menu=open -->
213.14 + <!-- https://www.interos.com/interos?menu=open -->
213.15 + <!-- Title: interos open -->
213.16 + <!-- Author: Brent Angeline -->
213.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
213.18 + <!--========================================================-->
213.19 + <head>
213.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
213.21 + <meta name="title" content="interos open" />
213.22 + <meta name="description" content="open menu for interos" />
213.23 + <meta name="author" content="Brent Angeline" />
213.24 + <meta name="copyright"
213.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
213.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
213.27 + <title>interos open</title>
213.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
213.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
213.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
213.31 + media="screen, projection" />
213.32 + <script type="text/javascript" src="/js/interos_open.js"></script>
213.33 + </head>
213.34 + <frameset rows="72,*" border="0" frameborder="0" framespacing="0">
213.35 + <frame name="button" src="/top?button=open"
213.36 + frameborder="0" marginwidth="0" marginheight="0"
213.37 + noresize="noresize" scrolling="auto" />
213.38 + <frame name="menu" src="/menu?name=open"
213.39 + frameborder="0" marginwidth="0" marginheight="0"
213.40 + noresize="noresize" scrolling="auto" />
213.41 + <noframes>
213.42 + <body id="body">
213.43 + <div id="openLink"><a href="/main">open</a></div>
213.44 + <div id="openEntries">
213.45 + <p><a href="/main?open=text_file">text file</a></p>
213.46 + </div>
213.47 + </body>
213.48 + </noframes>
213.49 + </frameset>
213.50 + <!--=====================================================================-->
213.51 + <!-- Copyright and Trademark Statement -->
213.52 + <!--=====================================================================-->
213.53 + <!-- -->
213.54 + <!-- All original textual and graphical site content: -->
213.55 + <!-- -->
213.56 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
213.57 + <!-- reserved. Reproduction in whole or in part without written -->
213.58 + <!-- permission is prohibited. interos and the interos logos are -->
213.59 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
213.60 + <!-- product, and service names mentioned herein may be the properties -->
213.61 + <!-- of their respective owners. Comments in the interos.org forums -->
213.62 + <!-- are the properties of their respective authors. All software -->
213.63 + <!-- developed in the forums is open source and belongs to everyone. -->
213.64 + <!-- -->
213.65 + <!--=====================================================================-->
213.66 + <!-- e-mail: info@interos.com -->
213.67 + <!--=====================================================================-->
213.68 +</html>
214.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
214.2 +++ b/xhtml/cgi/main_settings_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
214.3 @@ -0,0 +1,65 @@
214.4 +<?xml version="1.0" encoding="utf-8"?>
214.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
214.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
214.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
214.8 + <!--==========================================================-->
214.9 + <!-- interos Standard Document Header - Markup -->
214.10 + <!--==========================================================-->
214.11 + <!-- URIs: https://interos.com/main?menu=settings -->
214.12 + <!-- https://interos.com/interos?menu=settings -->
214.13 + <!-- https://www.interos.com/menu?menu=settings -->
214.14 + <!-- https://www.interos.com/interos?menu=settings -->
214.15 + <!-- Title: interos settings -->
214.16 + <!-- Author: Brent Angeline -->
214.17 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
214.18 + <!--==========================================================-->
214.19 + <head>
214.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
214.21 + <meta name="title" content="interos - settings" />
214.22 + <meta name="description" content="interos settings menu" />
214.23 + <meta name="author" content="Brent Angeline" />
214.24 + <meta name="copyright"
214.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
214.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
214.27 + <title>interos settings</title>
214.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
214.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
214.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
214.31 + media="screen, projection" />
214.32 + <script type="text/javascript" src="/js/interos_settings.js"></script>
214.33 + </head>
214.34 + <frameset rows="*,72" border="0" frameborder="0" framespacing="0">
214.35 + <frame name="menu" src="/menu?name=settings"
214.36 + frameborder="0" marginwidth="0" marginheight="0"
214.37 + noresize="noresize" scrolling="auto" />
214.38 + <frame name="button" src="/bottom?button=settings"
214.39 + frameborder="0" marginwidth="0" marginheight="0"
214.40 + noresize="noresize" scrolling="auto" />
214.41 + <noframes>
214.42 + <body id="body">
214.43 + <div id="settingsEntries">
214.44 + <p><a href="/main?settings=button_size">button size</a></p>
214.45 + </div>
214.46 + <div id="settingsLink"><a href="/main">settings</a></div>
214.47 + </body>
214.48 + </noframes>
214.49 + </frameset>
214.50 + <!--=====================================================================-->
214.51 + <!-- Copyright and Trademark Statement -->
214.52 + <!--=====================================================================-->
214.53 + <!-- -->
214.54 + <!-- All original textual and graphical site content: -->
214.55 + <!-- -->
214.56 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
214.57 + <!-- reserved. Reproduction in whole or in part without written -->
214.58 + <!-- permission is prohibited. interos and the interos logos are -->
214.59 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
214.60 + <!-- product, and service names mentioned herein may be the properties -->
214.61 + <!-- of their respective owners. Comments in the interos.org forums -->
214.62 + <!-- are the properties of their respective authors. All software -->
214.63 + <!-- developed in the forums is open source and belongs to everyone. -->
214.64 + <!-- -->
214.65 + <!--=====================================================================-->
214.66 + <!-- e-mail: info@interos.com -->
214.67 + <!--=====================================================================-->
214.68 +</html>
215.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
215.2 +++ b/xhtml/cgi/menu_new_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
215.3 @@ -0,0 +1,157 @@
215.4 +<?xml version="1.0" encoding="utf-8"?>
215.5 +<?xml-stylesheet type="text/css" href="/style/menu.css"?>
215.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
215.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
215.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
215.9 + class="newMenu">
215.10 + <!--==================================================-->
215.11 + <!-- interos Standard Document Header - Markup -->
215.12 + <!--==================================================-->
215.13 + <!-- URIs: https://interos.com/menu?name=new -->
215.14 + <!-- https://www.interos.com/menu?name=new -->
215.15 + <!-- Title: interos new menu -->
215.16 + <!-- Author: Brent Angeline -->
215.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
215.18 + <!--==================================================-->
215.19 + <head>
215.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
215.21 + <meta name="title" content="interos new menu" />
215.22 + <meta name="description" content="new menu for interos" />
215.23 + <meta name="author" content="Brent Angeline" />
215.24 + <meta name="copyright"
215.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
215.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
215.27 + <title>interos new menu</title>
215.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
215.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
215.30 + <link rel="stylesheet" type="text/css" href="/style/menu.css"
215.31 + media="screen, projection" />
215.32 + <script type="text/javascript" src="/js/menu.js"></script>
215.33 + </head>
215.34 + <body id="body">
215.35 + <center>
215.36 + <div id="newMenu">
215.37 + <div id="newMenuContent">
215.38 + <table>
215.39 + <thead>
215.40 + <tr>
215.41 + <th><h1>new menu</h1></th>
215.42 + </tr>
215.43 + </thead>
215.44 + <tbody>
215.45 + <tr>
215.46 + <td><a href="/new?alarm" target="_top">
215.47 + <img src="/images/icons/new/alarm.png"
215.48 + alt="alarm" /><br /><span>alarm</span><br />
215.49 + <br />
215.50 + </a></td>
215.51 + </tr>
215.52 + <tr>
215.53 + <td><a href="/new?bookmark" target="_top">
215.54 + <img src="/images/icons/new/bookmark.png"
215.55 + alt="bookmark" /><br /><span>bookmark</span><br />
215.56 + <br />
215.57 + </a></td>
215.58 + </tr>
215.59 + <tr>
215.60 + <td><a href="/new?chat" target="_top">
215.61 + <img src="/images/icons/new/chat.png"
215.62 + alt="chat" /><br /><span>chat</span><br />
215.63 + <br />
215.64 + </a></td>
215.65 + </tr>
215.66 + <tr>
215.67 + <td><a href="/new?copy" target="_top">
215.68 + <img src="/images/icons/new/copy.png"
215.69 + alt="copy" /><br /><span>copy</span><br />
215.70 + <br />
215.71 + </a></td>
215.72 + </tr>
215.73 + <tr>
215.74 + <td><a href="/new?document" target="_top">
215.75 + <img src="/images/icons/new/document.png"
215.76 + alt="document" /><br /><span>document</span><br />
215.77 + <br />
215.78 + </a></td>
215.79 + </tr>
215.80 + <tr>
215.81 + <td><a href="/new?download" target="_top">
215.82 + <img src="/images/icons/new/download.png"
215.83 + alt="download" /><br /><span>download</span><br />
215.84 + <br />
215.85 + </a></td>
215.86 + </tr>
215.87 + <tr>
215.88 + <td><a href="/new?e-mail" target="_top">
215.89 + <img src="/images/icons/new/e-mail.png"
215.90 + alt="e-mail" /><br /><span>e-mail</span><br />
215.91 + <br />
215.92 + </a></td>
215.93 + </tr>
215.94 + <tr>
215.95 + <td><a href="/new?folder" target="_top">
215.96 + <img src="/images/icons/new/folder.png"
215.97 + alt="folder" /><br /><span>folder</span><br />
215.98 + <br />
215.99 + </a></td>
215.100 + </tr>
215.101 + <tr>
215.102 + <td><a href="/new?phone_call" target="_top">
215.103 + <img src="/images/icons/new/phone_call.png"
215.104 + alt="phone call" /><br /><span>phone call</span><br />
215.105 + <br />
215.106 + </a></td>
215.107 + </tr>
215.108 + <tr>
215.109 + <td><a href="/new?search" target="_top">
215.110 + <img src="/images/icons/new/search.png"
215.111 + alt="search" /><br /><span>search</span><br />
215.112 + <br />
215.113 + </a></td>
215.114 + </tr>
215.115 + <tr>
215.116 + <td><a href="/new?share" target="_top">
215.117 + <img src="/images/icons/new/share.png"
215.118 + alt="share" /><br /><span>share</span><br />
215.119 + <br />
215.120 + </a></td>
215.121 + </tr>
215.122 + <tr>
215.123 + <td><a href="/new?text_file" target="_top">
215.124 + <img src="/images/icons/new/text_file.png"
215.125 + alt="text file" /><br /><span>text file</span><br />
215.126 + <br />
215.127 + </a></td>
215.128 + </tr>
215.129 + <tr>
215.130 + <td><a href="/new?upload" target="_top">
215.131 + <img src="/images/icons/new/upload.png"
215.132 + alt="upload" /><br /><span>upload</span><br />
215.133 + <br />
215.134 + </a></td>
215.135 + </tr>
215.136 + </tbody>
215.137 + </table>
215.138 + </div>
215.139 + </div>
215.140 + </center>
215.141 + </body>
215.142 + <!--=====================================================================-->
215.143 + <!-- Copyright and Trademark Statement -->
215.144 + <!--=====================================================================-->
215.145 + <!-- -->
215.146 + <!-- All original textual and graphical site content: -->
215.147 + <!-- -->
215.148 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
215.149 + <!-- reserved. Reproduction in whole or in part without written -->
215.150 + <!-- permission is prohibited. interos and the interos logos are -->
215.151 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
215.152 + <!-- product, and service names mentioned herein may be the properties -->
215.153 + <!-- of their respective owners. Comments in the interos.org forums -->
215.154 + <!-- are the properties of their respective authors. All software -->
215.155 + <!-- developed in the forums is open source and belongs to everyone. -->
215.156 + <!-- -->
215.157 + <!--=====================================================================-->
215.158 + <!-- e-mail: info@interos.com -->
215.159 + <!--=====================================================================-->
215.160 +</html>
216.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
216.2 +++ b/xhtml/cgi/menu_next_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
216.3 @@ -0,0 +1,99 @@
216.4 +<?xml version="1.0" encoding="utf-8"?>
216.5 +<?xml-stylesheet type="text/css" href="/style/menu.css"?>
216.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
216.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
216.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
216.9 + class="nextMenu">
216.10 + <!--===================================================-->
216.11 + <!-- interos Standard Document Header - Markup -->
216.12 + <!--===================================================-->
216.13 + <!-- URIs: https://interos.com/menu?name=next -->
216.14 + <!-- https://www.interos.com/menu?name=next -->
216.15 + <!-- Title: interos next menu -->
216.16 + <!-- Author: Brent Angeline -->
216.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
216.18 + <!--===================================================-->
216.19 + <head>
216.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
216.21 + <meta name="title" content="interos next menu" />
216.22 + <meta name="description" content="next menu for interos" />
216.23 + <meta name="author" content="Brent Angeline" />
216.24 + <meta name="copyright"
216.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
216.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
216.27 + <title>interos next menu</title>
216.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
216.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
216.30 + <link rel="stylesheet" type="text/css" href="/style/menu.css"
216.31 + media="screen, projection" />
216.32 + <script type="text/javascript" src="/js/menu.js"></script>
216.33 + </head>
216.34 + <body id="body">
216.35 + <center>
216.36 + <div id="nextMenu">
216.37 + <div id="nextMenuContent">
216.38 + <table>
216.39 + <thead>
216.40 + <th><h1>next menu</h1></th>
216.41 + </thead>
216.42 + <tbody>
216.43 + <tr>
216.44 + <td><a href="/interos?next=bookmark" target="_top">
216.45 + <img src="/images/icons/next/bookmark.png"
216.46 + alt="bookmark" /><br /><span>bookmark</span><br />
216.47 + <br />
216.48 + </a></td>
216.49 + </tr>
216.50 + <tr>
216.51 + <td><a href="/interos?next=close" target="_top">
216.52 + <img src="/images/icons/next/close.png"
216.53 + alt="close" /><br /><span>close</span><br />
216.54 + <br />
216.55 + </a></td>
216.56 + </tr>
216.57 + <tr>
216.58 + <td><a href="/logout" target="_top">
216.59 + <img src="/images/icons/next/logout.png"
216.60 + alt="logout" /><br /><span>logout</span><br />
216.61 + <br />
216.62 + </a></td>
216.63 + </tr>
216.64 + <tr>
216.65 + <td><a href="/interos?next=save" target="_top">
216.66 + <img src="/images/icons/next/save.png"
216.67 + alt="save" /><br /><span>save</span><br />
216.68 + <br />
216.69 + </a></td>
216.70 + </tr>
216.71 + <tr>
216.72 + <td><a href="/interos?next=save_as" target="_top">
216.73 + <img src="/images/icons/next/save_as.png"
216.74 + alt="save as" /><br /><span>save as</span><br />
216.75 + <br />
216.76 + </a></td>
216.77 + </tr>
216.78 + </tbody>
216.79 + </table>
216.80 + </div>
216.81 + </div>
216.82 + </center>
216.83 + </body>
216.84 + <!--=====================================================================-->
216.85 + <!-- Copyright and Trademark Statement -->
216.86 + <!--=====================================================================-->
216.87 + <!-- -->
216.88 + <!-- All original textual and graphical site content: -->
216.89 + <!-- -->
216.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
216.91 + <!-- reserved. Reproduction in whole or in part without written -->
216.92 + <!-- permission is prohibited. interos and the interos logos are -->
216.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
216.94 + <!-- product, and service names mentioned herein may be the properties -->
216.95 + <!-- of their respective owners. Comments in the interos.org forums -->
216.96 + <!-- are the properties of their respective authors. All software -->
216.97 + <!-- developed in the forums is open source and belongs to everyone. -->
216.98 + <!-- -->
216.99 + <!--=====================================================================-->
216.100 + <!-- e-mail: info@interos.com -->
216.101 + <!--=====================================================================-->
216.102 +</html>
217.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
217.2 +++ b/xhtml/cgi/menu_open_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
217.3 @@ -0,0 +1,137 @@
217.4 +<?xml version="1.0" encoding="utf-8"?>
217.5 +<?xml-stylesheet type="text/css" href="/style/menu.css"?>
217.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
217.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
217.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
217.9 + class="openMenu">
217.10 + <!--===================================================-->
217.11 + <!-- interos Standard Document Header - Markup -->
217.12 + <!--===================================================-->
217.13 + <!-- URIs: https://interos.com/menu?name=open -->
217.14 + <!-- https://www.interos.com/menu?name=open -->
217.15 + <!-- Title: interos open menu -->
217.16 + <!-- Author: Brent Angeline -->
217.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
217.18 + <!--===================================================-->
217.19 + <head>
217.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
217.21 + <meta name="title" content="interos open menu" />
217.22 + <meta name="description" content="open menu for interos" />
217.23 + <meta name="author" content="Brent Angeline" />
217.24 + <meta name="copyright"
217.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
217.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
217.27 + <title>interos - open menu</title>
217.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
217.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
217.30 + <link rel="stylesheet" type="text/css" href="/style/menu.css"
217.31 + media="screen, projection" />
217.32 + <script type="text/javascript" src="/js/menu.js"></script>
217.33 + </head>
217.34 + <body id="body">
217.35 + <center>
217.36 + <div id="openMenu">
217.37 + <div id="openMenuContent">
217.38 + <table>
217.39 + <thead>
217.40 + <tr>
217.41 + <th><h1>open menu</h1></th>
217.42 + </tr>
217.43 + </thead>
217.44 + <tbody>
217.45 + <tr>
217.46 + <td><a href="/interos?open=alarm" target="_top">
217.47 + <img src="/images/icons/open/alarm.png"
217.48 + alt="alarm" /><br /><span>alarm</span><br />
217.49 + <br />
217.50 + </a></td>
217.51 + </tr>
217.52 + <tr>
217.53 + <td><a href="/interos?open=bookmark" target="_top">
217.54 + <img src="/images/icons/open/bookmark.png"
217.55 + alt="bookmark" /><br /><span>bookmark</span><br />
217.56 + <br />
217.57 + </a></td>
217.58 + </tr>
217.59 + <tr>
217.60 + <td><a href="/interos?open=document" target="_top">
217.61 + <img src="/images/icons/open/document.png"
217.62 + alt="document" /><br /><span>document</span><br />
217.63 + <br />
217.64 + </a></td>
217.65 + </tr>
217.66 + <tr>
217.67 + <td><a href="/interos?open=e-mail" target="_top">
217.68 + <img src="/images/icons/open/e-mail.png"
217.69 + alt="e-mail" /><br /><span>e-mail</span><br />
217.70 + <br />
217.71 + </a></td>
217.72 + </tr>
217.73 + <tr>
217.74 + <td><a href="/interos?open=image" target="_top">
217.75 + <img src="/images/icons/open/image.png"
217.76 + alt="image" /><br /><span>image</span><br />
217.77 + <br />
217.78 + </a></td>
217.79 + </tr>
217.80 + <tr>
217.81 + <td><a href="/interos?open=incoming" target="_top">
217.82 + <img src="/images/icons/open/incoming.png"
217.83 + alt="incoming" /><br /><span>incoming</span><br />
217.84 + <br />
217.85 + </a></td>
217.86 + </tr>
217.87 + <tr>
217.88 + <td><a href="/interos?open=music" target="_top">
217.89 + <img src="/images/icons/open/music.png"
217.90 + alt="music" /><br /><span>music</span><br />
217.91 + <br />
217.92 + </a></td>
217.93 + </tr>
217.94 + <tr>
217.95 + <td><a href="/interos?open=shared" target="_top">
217.96 + <img src="/images/icons/open/shared.png"
217.97 + alt="shared" /><br /><span>shared</span><br />
217.98 + <br />
217.99 + </a></td>
217.100 + </tr>
217.101 + <tr>
217.102 + <td><a href="/interos?open=text_file" target="_top">
217.103 + <img src="/images/icons/open/text_file.png"
217.104 + alt="text file" /><br /><span>text file</span><br />
217.105 + <br />
217.106 + </a></td>
217.107 + </tr>
217.108 + <tr>
217.109 + <td><a href="/interos?open=video" target="_top">
217.110 + <img src="/images/icons/open/video.png"
217.111 + alt="video" /><br /><span>video</span><br />
217.112 + <br />
217.113 + </a></td>
217.114 + </tr>
217.115 + </tbody>
217.116 + </table>
217.117 + </center>
217.118 + </div>
217.119 + </div>
217.120 + </center>
217.121 + </body>
217.122 + <!--=====================================================================-->
217.123 + <!-- Copyright and Trademark Statement -->
217.124 + <!--=====================================================================-->
217.125 + <!-- -->
217.126 + <!-- All original textual and graphical site content: -->
217.127 + <!-- -->
217.128 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
217.129 + <!-- reserved. Reproduction in whole or in part without written -->
217.130 + <!-- permission is prohibited. interos and the interos logos are -->
217.131 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
217.132 + <!-- product, and service names mentioned herein may be the properties -->
217.133 + <!-- of their respective owners. Comments in the interos.org forums -->
217.134 + <!-- are the properties of their respective authors. All software -->
217.135 + <!-- developed in the forums is open source and belongs to everyone. -->
217.136 + <!-- -->
217.137 + <!--=====================================================================-->
217.138 + <!-- e-mail: info@interos.com -->
217.139 + <!--=====================================================================-->
217.140 +</html>
218.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
218.2 +++ b/xhtml/cgi/menu_settings_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
218.3 @@ -0,0 +1,129 @@
218.4 +<?xml version="1.0" encoding="utf-8"?>
218.5 +<?xml-stylesheet type="text/css" href="/style/menu.css"?>
218.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
218.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
218.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
218.9 + class="settingsMenu">
218.10 + <!--=======================================================-->
218.11 + <!-- interos Standard Document Header - Markup -->
218.12 + <!--=======================================================-->
218.13 + <!-- URIs: https://interos.com/menu?name=settings -->
218.14 + <!-- https://www.interos.com/menu?name=settings -->
218.15 + <!-- Title: interos settings menu -->
218.16 + <!-- Author: Brent Angeline -->
218.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
218.18 + <!--=======================================================-->
218.19 + <head>
218.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
218.21 + <meta name="title" content="interos settings menu" />
218.22 + <meta name="description" content="settings menu for interos" />
218.23 + <meta name="author" content="Brent Angeline" />
218.24 + <meta name="copyright"
218.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
218.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
218.27 + <title>interos settings menu</title>
218.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
218.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
218.30 + <link rel="stylesheet" type="text/css" href="/style/menu.css"
218.31 + media="screen, projection" />
218.32 + <script type="text/javascript" src="/js/menu.js"></script>
218.33 + </head>
218.34 + <body id="body">
218.35 + <center>
218.36 + <div id="settingsMenu">
218.37 + <div id="settingsMenuContent">
218.38 + <table>
218.39 + <thead>
218.40 + <tr>
218.41 + <th><h1>settings menu</h1></th>
218.42 + </tr>
218.43 + </thead>
218.44 + <tbody>
218.45 + <tr>
218.46 + <td><a href="/interos?settings=audio" target="_top">
218.47 + <img src="/images/icons/settings/audio.png"
218.48 + alt="audio" /><br /><span>audio</span><br />
218.49 + <br />
218.50 + </a></td>
218.51 + </tr>
218.52 + <tr>
218.53 + <td><a href="/interos?settings=buttons" target="_top">
218.54 + <img src="/images/icons/settings/buttons.png"
218.55 + alt="buttons" /><br /><span>buttons</span><br />
218.56 + <br />
218.57 + </a></td>
218.58 + </tr>
218.59 + <tr>
218.60 + <td><a href="/interos?settings=chat" target="_top">
218.61 + <img src="/images/icons/settings/chat.png"
218.62 + alt="chat" /><br /><span>chat</span><br />
218.63 + <br />
218.64 + </a></td>
218.65 + </tr>
218.66 + <tr>
218.67 + <td><a href="/interos?settings=clock" target="_top">
218.68 + <img src="/images/icons/settings/clock.png"
218.69 + alt="clock" /><br /><span>clock</span><br />
218.70 + <br />
218.71 + </a></td>
218.72 + </tr>
218.73 + <tr>
218.74 + <td><a href="/interos?settings=e-mail" target="_top">
218.75 + <img src="/images/icons/settings/e-mail.png"
218.76 + alt="e-mail" /><br /><span>e-mail</span><br />
218.77 + <br />
218.78 + </a></td>
218.79 + </tr>
218.80 + <tr>
218.81 + <td><a href="/interos?settings=images" target="_top">
218.82 + <img src="/images/icons/settings/images.png"
218.83 + alt="images" /><br /><span>images</span><br />
218.84 + <br />
218.85 + </a></td>
218.86 + </tr>
218.87 + <tr>
218.88 + <td><a href="/interos?settings=phone" target="_top">
218.89 + <img src="/images/icons/settings/phone.png"
218.90 + alt="phone" /><br /><span>phone</span><br />
218.91 + <br />
218.92 + </a></td>
218.93 + </tr>
218.94 + <tr>
218.95 + <td><a href="/interos?settings=search" target="_top">
218.96 + <img src="/images/icons/settings/search.png"
218.97 + alt="search" /><br /><span>search</span><br />
218.98 + <br />
218.99 + </a></td>
218.100 + </tr>
218.101 + <tr>
218.102 + <td><a href="/interos?settings=video" target="_top">
218.103 + <img src="/images/icons/settings/video.png"
218.104 + alt="video" /><br /><span>video</span><br />
218.105 + <br />
218.106 + </a></td>
218.107 + </tr>
218.108 + </tbody>
218.109 + </table>
218.110 + </div>
218.111 + </div>
218.112 + </center>
218.113 + </body>
218.114 + <!--=====================================================================-->
218.115 + <!-- Copyright and Trademark Statement -->
218.116 + <!--=====================================================================-->
218.117 + <!-- -->
218.118 + <!-- All original textual and graphical site content: -->
218.119 + <!-- -->
218.120 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
218.121 + <!-- reserved. Reproduction in whole or in part without written -->
218.122 + <!-- permission is prohibited. interos and the interos logos are -->
218.123 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
218.124 + <!-- product, and service names mentioned herein may be the properties -->
218.125 + <!-- of their respective owners. Comments in the interos.org forums -->
218.126 + <!-- are the properties of their respective authors. All software -->
218.127 + <!-- developed in the forums is open source and belongs to everyone. -->
218.128 + <!-- -->
218.129 + <!--=====================================================================-->
218.130 + <!-- e-mail: info@interos.com -->
218.131 + <!--=====================================================================-->
218.132 +</html>
219.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
219.2 +++ b/xhtml/cgi/new_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
219.3 @@ -0,0 +1,63 @@
219.4 +<?xml version="1.0" encoding="utf-8"?>
219.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
219.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
219.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
219.8 + <!--========================================================-->
219.9 + <!-- interos Standard Document Header - Markup -->
219.10 + <!--========================================================-->
219.11 + <!-- URIs: https://interos.com/new -->
219.12 + <!-- https://www.interos.com/new -->
219.13 + <!-- Title: interos new -->
219.14 + <!-- Author: Brent Angeline -->
219.15 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
219.16 + <!--========================================================-->
219.17 + <head>
219.18 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
219.19 + <meta name="title" content="interos new" />
219.20 + <meta name="description" content="new menu for interos" />
219.21 + <meta name="author" content="Brent Angeline" />
219.22 + <meta name="copyright"
219.23 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
219.24 + <meta name="robots" content="noindex, nofollow, noarchive" />
219.25 + <title>interos new</title>
219.26 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
219.27 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
219.28 + <link rel="stylesheet" type="text/css" href="/style/main.css"
219.29 + media="screen, projection" />
219.30 + <script type="text/javascript" src="/js/interos_new.js"></script>
219.31 + </head>
219.32 + <frameset rows="*,72" border="0" frameborder="0" framespacing="0">
219.33 + <frame name="menu" src="/menu?name=new"
219.34 + frameborder="0" marginwidth="0" marginheight="0"
219.35 + noresize="noresize" scrolling="auto" />
219.36 + <frame name="button" src="/bottom?button=new"
219.37 + frameborder="0" marginwidth="0" marginheight="0"
219.38 + noresize="noresize" scrolling="auto" />
219.39 + <noframes>
219.40 + <body id="body">
219.41 + <div id="newEntries">
219.42 + <p><a href="/interos?new=text_file">text file</a></p>
219.43 + </div>
219.44 + <div id="newLink"><a href="/interos">new</a></div>
219.45 + </body>
219.46 + </noframes>
219.47 + </frameset>
219.48 + <!--=====================================================================-->
219.49 + <!-- Copyright and Trademark Statement -->
219.50 + <!--=====================================================================-->
219.51 + <!-- -->
219.52 + <!-- All original textual and graphical site content: -->
219.53 + <!-- -->
219.54 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
219.55 + <!-- reserved. Reproduction in whole or in part without written -->
219.56 + <!-- permission is prohibited. interos and the interos logos are -->
219.57 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
219.58 + <!-- product, and service names mentioned herein may be the properties -->
219.59 + <!-- of their respective owners. Comments in the interos.org forums -->
219.60 + <!-- are the properties of their respective authors. All software -->
219.61 + <!-- developed in the forums is open source and belongs to everyone. -->
219.62 + <!-- -->
219.63 + <!--=====================================================================-->
219.64 + <!-- e-mail: info@interos.com -->
219.65 + <!--=====================================================================-->
219.66 +</html>
220.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
220.2 +++ b/xhtml/cgi/new_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
220.3 @@ -0,0 +1,63 @@
220.4 +<?xml version="1.0" encoding="utf-8"?>
220.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
220.6 +<!DOCTYPE html SYSTEM "http://interos.org/dtd/xhtml1-borderless-frameset.dtd">
220.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
220.8 + <!--========================================================-->
220.9 + <!-- interos Standard Document Header - Markup -->
220.10 + <!--========================================================-->
220.11 + <!-- URIs: https://interos.com/new -->
220.12 + <!-- https://www.interos.com/new -->
220.13 + <!-- Title: interos new -->
220.14 + <!-- Author: Brent Angeline -->
220.15 + <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->
220.16 + <!--========================================================-->
220.17 + <head>
220.18 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
220.19 + <meta name="title" content="interos new" />
220.20 + <meta name="description" content="new menu for interos" />
220.21 + <meta name="author" content="Brent Angeline" />
220.22 + <meta name="copyright"
220.23 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
220.24 + <meta name="robots" content="noindex, nofollow, noarchive" />
220.25 + <title>interos new</title>
220.26 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
220.27 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
220.28 + <link rel="stylesheet" type="text/css" href="/style/main.css"
220.29 + media="screen, projection" />
220.30 + <script type="text/javascript" src="/js/interos_new.js"></script>
220.31 + </head>
220.32 + <frameset rows="*,72" border="0" frameborder="0" framespacing="0">
220.33 + <frame name="menu" src="/menu?name=new" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />
220.34 + <frame name="button" src="/bottom?button=new" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" />
220.35 + <noframes>
220.36 + <body id="body">
220.37 + <div id="newContainer">
220.38 + <div id="newContent">
220.39 + <div id="newEntries">
220.40 + <p><a href="/interos?new=text_file">text file</a></p>
220.41 + </div>
220.42 + <div id="newLink"><a href="/interos">new</a></div>
220.43 + </div>
220.44 + </div>
220.45 + </body>
220.46 + </noframes>
220.47 + </frameset>
220.48 + <!--=====================================================================-->
220.49 + <!-- Copyright and Trademark Statement -->
220.50 + <!--=====================================================================-->
220.51 + <!-- -->
220.52 + <!-- All original textual and graphical site content: -->
220.53 + <!-- -->
220.54 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
220.55 + <!-- reserved. Reproduction in whole or in part without written -->
220.56 + <!-- permission is prohibited. interos and the interos logos are -->
220.57 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
220.58 + <!-- product, and service names mentioned herein may be the properties -->
220.59 + <!-- of their respective owners. Comments in the interos.org forums -->
220.60 + <!-- are the properties of their respective authors. All software -->
220.61 + <!-- developed in the forums is open source and belongs to everyone. -->
220.62 + <!-- -->
220.63 + <!--=====================================================================-->
220.64 + <!-- e-mail: info@interos.com -->
220.65 + <!--=====================================================================-->
220.66 +</html>
221.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
221.2 +++ b/xhtml/cgi/new_user_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
221.3 @@ -0,0 +1,117 @@
221.4 +<?xml version="1.0" encoding="utf-8"?>
221.5 +<?xml-stylesheet type="text/css" href="/style/login.css"?>
221.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
221.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
221.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
221.9 + <!--=================================================-->
221.10 + <!-- interos Standard Document Header - Markup -->
221.11 + <!--=================================================-->
221.12 + <!-- URIs: https://interos.com/new_user -->
221.13 + <!-- https://www.interos.com/new_user -->
221.14 + <!-- Title: new interos user -->
221.15 + <!-- Author: Brent Angeline -->
221.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
221.17 + <!--=================================================-->
221.18 + <head>
221.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
221.20 + <meta name="title" content="new interos user" />
221.21 + <meta name="description" content="create your login" />
221.22 + <meta name="author" content="Brent Angeline" />
221.23 + <meta name="copyright"
221.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
221.25 + <meta name="robots" content="index, nofollow, noarchive" />
221.26 + <title>new interos user</title>
221.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
221.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
221.29 + <link rel="stylesheet" type="text/css" href="/style/login.css"
221.30 + media="screen, projection" />
221.31 + <script type="text/javascript" src="/js/login.js"></script>
221.32 + </head>
221.33 + <body id="body">
221.34 + <center>
221.35 + <p id="navigation">
221.36 + <a href="/about">about</a> |
221.37 + <a href="/blog">blog</a> |
221.38 + <a href="/code">code</a> |
221.39 + <a href="https://interos.org/">develop</a> |
221.40 + <a href="/e-mail">e-mail</a> |
221.41 + <a href="/f.a.q.">f.a.q.</a> |
221.42 + <a href="/gear">gear</a> |
221.43 + <a href="/help">help</a>
221.44 + </p>
221.45 + <form id="loginForm" name="loginForm" action="new_user" method="post">
221.46 + <table id="mainPanel">
221.47 + <thead>
221.48 + <tr>
221.49 + <th colspan="3"><center>
221.50 + <div id="title">
221.51 + <h1>
221.52 + <a href="/">interos</a>
221.53 + </h1>
221.54 + <h2>
221.55 + create your login
221.56 + </h2>
221.57 + </div>
221.58 + </center></th>
221.59 + </tr>
221.60 + </thead>
221.61 + <tfoot>
221.62 + <tr>
221.63 + <td colspan="3"><br /></td>
221.64 + </tr>
221.65 + </tfoot>
221.66 + <tbody>
221.67 + <tr>
221.68 + <td><label for="login">login:</label> </td>
221.69 + <td><input id="login" name="login" type="text"
221.70 + size="16" maxlength="16" /></td>
221.71 + </tr>
221.72 + <tr>
221.73 + <td><label for="password">password:</label> </td>
221.74 + <td><input id="password" name="password" type="password"
221.75 + size="16" maxlength="16" /></td>
221.76 + </tr>
221.77 + <tr>
221.78 + <td><label for="verify">password:</label> </td>
221.79 + <td><input id="verify" name="verify" type="password"
221.80 + size="16" maxlength="16" /></td>
221.81 + <td rowspan="2"><div id="submitButton">
221.82 + <input type="submit"
221.83 + value="login »" />
221.84 + </div></td>
221.85 + </tr>
221.86 + </tbody>
221.87 + </table>
221.88 + </form>
221.89 + <p id="newUser">
221.90 + <strong>* enter password twice</strong><br />
221.91 + to create your login<br />
221.92 + <a href="/login">« back to login</a>
221.93 + </p>
221.94 + <p>
221.95 + <br />
221.96 + </p>
221.97 + <p id="copyrightDates">
221.98 + © 2001–2009 interos
221.99 + </p>
221.100 + </center>
221.101 + </body>
221.102 + <!--=====================================================================-->
221.103 + <!-- Copyright and Trademark Statement -->
221.104 + <!--=====================================================================-->
221.105 + <!-- -->
221.106 + <!-- All original textual and graphical site content: -->
221.107 + <!-- -->
221.108 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
221.109 + <!-- reserved. Reproduction in whole or in part without written -->
221.110 + <!-- permission is prohibited. interos and the interos logos are -->
221.111 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
221.112 + <!-- product, and service names mentioned herein may be the properties -->
221.113 + <!-- of their respective owners. Comments in the interos.org forums -->
221.114 + <!-- are the properties of their respective authors. All software -->
221.115 + <!-- developed in the forums is open source and belongs to everyone. -->
221.116 + <!-- -->
221.117 + <!--=====================================================================-->
221.118 + <!-- e-mail: info@interos.com -->
221.119 + <!--=====================================================================-->
221.120 +</html>
222.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
222.2 +++ b/xhtml/cgi/next_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
222.3 @@ -0,0 +1,21 @@
222.4 +
222.5 +
222.6 + <!--=====================================================================-->
222.7 + <!-- Copyright and Trademark Statement -->
222.8 + <!--=====================================================================-->
222.9 + <!-- -->
222.10 + <!-- All original textual and graphical site content: -->
222.11 + <!-- -->
222.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
222.13 + <!-- reserved. Reproduction in whole or in part without written -->
222.14 + <!-- permission is prohibited. interos and the interos logos are -->
222.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
222.16 + <!-- product, and service names mentioned herein may be the properties -->
222.17 + <!-- of their respective owners. Comments in the interos.org forums -->
222.18 + <!-- are the properties of their respective authors. All software -->
222.19 + <!-- developed in the forums is open source and belongs to everyone. -->
222.20 + <!-- -->
222.21 + <!--=====================================================================-->
222.22 + <!-- e-mail: info@interos.com -->
222.23 + <!--=====================================================================-->
222.24 +
223.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
223.2 +++ b/xhtml/cgi/next_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
223.3 @@ -0,0 +1,21 @@
223.4 +
223.5 +
223.6 + <!--=====================================================================-->
223.7 + <!-- Copyright and Trademark Statement -->
223.8 + <!--=====================================================================-->
223.9 + <!-- -->
223.10 + <!-- All original textual and graphical site content: -->
223.11 + <!-- -->
223.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
223.13 + <!-- reserved. Reproduction in whole or in part without written -->
223.14 + <!-- permission is prohibited. interos and the interos logos are -->
223.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
223.16 + <!-- product, and service names mentioned herein may be the properties -->
223.17 + <!-- of their respective owners. Comments in the interos.org forums -->
223.18 + <!-- are the properties of their respective authors. All software -->
223.19 + <!-- developed in the forums is open source and belongs to everyone. -->
223.20 + <!-- -->
223.21 + <!--=====================================================================-->
223.22 + <!-- e-mail: info@interos.com -->
223.23 + <!--=====================================================================-->
223.24 +
224.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
224.2 +++ b/xhtml/cgi/open_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
224.3 @@ -0,0 +1,21 @@
224.4 +
224.5 +
224.6 + <!--=====================================================================-->
224.7 + <!-- Copyright and Trademark Statement -->
224.8 + <!--=====================================================================-->
224.9 + <!-- -->
224.10 + <!-- All original textual and graphical site content: -->
224.11 + <!-- -->
224.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
224.13 + <!-- reserved. Reproduction in whole or in part without written -->
224.14 + <!-- permission is prohibited. interos and the interos logos are -->
224.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
224.16 + <!-- product, and service names mentioned herein may be the properties -->
224.17 + <!-- of their respective owners. Comments in the interos.org forums -->
224.18 + <!-- are the properties of their respective authors. All software -->
224.19 + <!-- developed in the forums is open source and belongs to everyone. -->
224.20 + <!-- -->
224.21 + <!--=====================================================================-->
224.22 + <!-- e-mail: info@interos.com -->
224.23 + <!--=====================================================================-->
224.24 +
225.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
225.2 +++ b/xhtml/cgi/open_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
225.3 @@ -0,0 +1,21 @@
225.4 +
225.5 +
225.6 + <!--=====================================================================-->
225.7 + <!-- Copyright and Trademark Statement -->
225.8 + <!--=====================================================================-->
225.9 + <!-- -->
225.10 + <!-- All original textual and graphical site content: -->
225.11 + <!-- -->
225.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
225.13 + <!-- reserved. Reproduction in whole or in part without written -->
225.14 + <!-- permission is prohibited. interos and the interos logos are -->
225.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
225.16 + <!-- product, and service names mentioned herein may be the properties -->
225.17 + <!-- of their respective owners. Comments in the interos.org forums -->
225.18 + <!-- are the properties of their respective authors. All software -->
225.19 + <!-- developed in the forums is open source and belongs to everyone. -->
225.20 + <!-- -->
225.21 + <!--=====================================================================-->
225.22 + <!-- e-mail: info@interos.com -->
225.23 + <!--=====================================================================-->
225.24 +
226.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
226.2 +++ b/xhtml/cgi/settings_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
226.3 @@ -0,0 +1,21 @@
226.4 +
226.5 +
226.6 + <!--=====================================================================-->
226.7 + <!-- Copyright and Trademark Statement -->
226.8 + <!--=====================================================================-->
226.9 + <!-- -->
226.10 + <!-- All original textual and graphical site content: -->
226.11 + <!-- -->
226.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
226.13 + <!-- reserved. Reproduction in whole or in part without written -->
226.14 + <!-- permission is prohibited. interos and the interos logos are -->
226.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
226.16 + <!-- product, and service names mentioned herein may be the properties -->
226.17 + <!-- of their respective owners. Comments in the interos.org forums -->
226.18 + <!-- are the properties of their respective authors. All software -->
226.19 + <!-- developed in the forums is open source and belongs to everyone. -->
226.20 + <!-- -->
226.21 + <!--=====================================================================-->
226.22 + <!-- e-mail: info@interos.com -->
226.23 + <!--=====================================================================-->
226.24 +
227.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
227.2 +++ b/xhtml/cgi/settings_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
227.3 @@ -0,0 +1,21 @@
227.4 +
227.5 +
227.6 + <!--=====================================================================-->
227.7 + <!-- Copyright and Trademark Statement -->
227.8 + <!--=====================================================================-->
227.9 + <!-- -->
227.10 + <!-- All original textual and graphical site content: -->
227.11 + <!-- -->
227.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
227.13 + <!-- reserved. Reproduction in whole or in part without written -->
227.14 + <!-- permission is prohibited. interos and the interos logos are -->
227.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
227.16 + <!-- product, and service names mentioned herein may be the properties -->
227.17 + <!-- of their respective owners. Comments in the interos.org forums -->
227.18 + <!-- are the properties of their respective authors. All software -->
227.19 + <!-- developed in the forums is open source and belongs to everyone. -->
227.20 + <!-- -->
227.21 + <!--=====================================================================-->
227.22 + <!-- e-mail: info@interos.com -->
227.23 + <!--=====================================================================-->
227.24 +
228.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
228.2 +++ b/xhtml/cgi/top_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
228.3 @@ -0,0 +1,74 @@
228.4 +<?xml version="1.0" encoding="utf-8"?>
228.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
228.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
228.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
228.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
228.9 + <!--=================================================-->
228.10 + <!-- interos Standard Document Header - Markup -->
228.11 + <!--=================================================-->
228.12 + <!-- URIs: https://interos.com/top -->
228.13 + <!-- https://www.interos.com/top -->
228.14 + <!-- Title: interos top toolbar -->
228.15 + <!-- Author: Brent Angeline -->
228.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
228.17 + <!--=================================================-->
228.18 + <head>
228.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
228.20 + <meta name="title" content="interos top toolbar" />
228.21 + <meta name="description" content="top toolbar for interos" />
228.22 + <meta name="author" content="Brent Angeline" />
228.23 + <meta name="copyright"
228.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
228.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
228.26 + <title>interos top</title>
228.27 + <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
228.28 + <link rel="icon" href="/images/favicon.gif" type="image/gif" />
228.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
228.30 + media="screen, projection" />
228.31 + <script type="text/javascript" src="/js/top.js"></script>
228.32 + </head>
228.33 + <body id="body">
228.34 + <center>
228.35 + <table id="topToolbar" width="100%"
228.36 + border="0" cellpadding="0" cellspacing="0">
228.37 + <tr>
228.38 + <td width="72"
228.39 + height="72"><center>
228.40 + <a id="openButton"
228.41 + href="/interos?menu=open"
228.42 + style="padding: 26px 0 27px"
228.43 + target="_top"><strong>open</strong></a>
228.44 + </center></td>
228.45 + <td><center>
228.46 + <span class="hidden">|</span>
228.47 + </center></td>
228.48 + <td width="72"
228.49 + height="72"><center>
228.50 + <a id="nextButton"
228.51 + href="/interos?menu=next"
228.52 + style="padding: 26px 0 27px"
228.53 + target="_top"><strong>next</strong></a>
228.54 + </center></td>
228.55 + </tr>
228.56 + </table>
228.57 + </center>
228.58 + </body>
228.59 + <!--=====================================================================-->
228.60 + <!-- Copyright and Trademark Statement -->
228.61 + <!--=====================================================================-->
228.62 + <!-- -->
228.63 + <!-- All original textual and graphical site content: -->
228.64 + <!-- -->
228.65 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
228.66 + <!-- reserved. Reproduction in whole or in part without written -->
228.67 + <!-- permission is prohibited. interos and the interos logos are -->
228.68 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
228.69 + <!-- product, and service names mentioned herein may be the properties -->
228.70 + <!-- of their respective owners. Comments in the interos.org forums -->
228.71 + <!-- are the properties of their respective authors. All software -->
228.72 + <!-- developed in the forums is open source and belongs to everyone. -->
228.73 + <!-- -->
228.74 + <!--=====================================================================-->
228.75 + <!-- e-mail: info@interos.com -->
228.76 + <!--=====================================================================-->
228.77 +</html>
229.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
229.2 +++ b/xhtml/cgi/top_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
229.3 @@ -0,0 +1,145 @@
229.4 +<?xml version="1.0" encoding="utf-8"?>
229.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
229.6 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
229.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
229.8 + <!--=================================================-->
229.9 + <!-- interos Standard Document Header - Markup -->
229.10 + <!--=================================================-->
229.11 + <!-- URIs: https://interos.com/bottom -->
229.12 + <!-- https://www.interos.com/bottom -->
229.13 + <!-- Title: interos bottom toolbar -->
229.14 + <!-- Author: Brent Angeline -->
229.15 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
229.16 + <!--=================================================-->
229.17 + <head>
229.18 + <title>interos top toolbar</title>
229.19 + <style type="text/css">
229.20 + html, body, center, a, strong {
229.21 + display: block;
229.22 + }
229.23 + html, body {
229.24 + color: #c0c0c0;
229.25 + background: #808080;
229.26 + font: 1em sans-serif;
229.27 + margin: 0;
229.28 + }
229.29 + a {
229.30 + color: #d7d7d7;
229.31 + font-style: italic;
229.32 + text-decoration: none;
229.33 + height: 72px;
229.34 + }
229.35 + a:focus {
229.36 + outline-offset: -1px;
229.37 + }
229.38 + a:hover strong {
229.39 + text-decoration: underline;
229.40 + }
229.41 + .toolbar {
229.42 + color: #000000;
229.43 + background: #c0c0c0 url(/style/images/toolbar.gif) repeat-x;
229.44 + }
229.45 + .hidden {
229.46 + display: none;
229.47 + }
229.48 + #newLink, #settingsLink {
229.49 + display: table;
229.50 + height: 72px;
229.51 + overflow: hidden;
229.52 + #position: relative;
229.53 + }
229.54 + #newButton, #settingsButton {
229.55 + cursor: pointer;
229.56 + display: table-cell;
229.57 + vertical-align: middle;
229.58 + text-align: center;
229.59 + width: 72px;
229.60 + #position: absolute;
229.61 + #top: 50%;
229.62 + #left: 0;
229.63 + }
229.64 + #newText, #settingsText {
229.65 + #position: relative;
229.66 + #top: -50%
229.67 + }
229.68 + #newLink {
229.69 + color: #eaeaea;
229.70 + background: #7fa85a
229.71 + url(/style/images/buttons/new_faded.gif) repeat-x;
229.72 + }
229.73 + #newLink:hover {
229.74 + color: #ffffff;
229.75 + background: #5f9e28
229.76 + url(/style/images/buttons/new.gif) repeat-x;
229.77 + }
229.78 + #newLink:active {
229.79 + color: #000000;
229.80 + background: #8fc154 bottom
229.81 + url(/style/images/buttons/new_down.gif) repeat-x;
229.82 + }
229.83 + #settingsLink {
229.84 + color: #eaeaea;
229.85 + background: #5a5abd
229.86 + url(/style/images/buttons/settings_faded.gif) repeat-x;
229.87 + }
229.88 + #settingsLink:hover {
229.89 + color: #ffffff;
229.90 + background: #2828bc
229.91 + url(/style/images/buttons/settings.gif) repeat-x;
229.92 + }
229.93 + #settingsLink:active {
229.94 + color: #000000;
229.95 + background: #4949cb bottom
229.96 + url(/style/images/buttons/settings_down.gif) repeat-x;
229.97 + }
229.98 + </style>
229.99 + </head>
229.100 + <body>
229.101 + <center>
229.102 + <table class="toolbar" width="100%"
229.103 + border="0" cellpadding="0" cellspacing="0">
229.104 + <tr>
229.105 + <td width="72"
229.106 + height="72"><center>
229.107 + <a id="newLink" href="#">
229.108 + <span id="newButton">
229.109 + <strong id="newText">
229.110 + new
229.111 + </strong>
229.112 + </span>
229.113 + </a>
229.114 + </center></td>
229.115 + <td><center> <span class="hidden">|</span> </center></td>
229.116 + <td width="72"
229.117 + height="72"><center>
229.118 + <a id="settingsLink" href="#">
229.119 + <span id="settingsButton">
229.120 + <strong id="settingsText">
229.121 + settings
229.122 + </strong>
229.123 + </span>
229.124 + </a>
229.125 + </center></td>
229.126 + </tr>
229.127 + </table>
229.128 + </center>
229.129 + </body>
229.130 + <!--=====================================================================-->
229.131 + <!-- Copyright and Trademark Statement -->
229.132 + <!--=====================================================================-->
229.133 + <!-- -->
229.134 + <!-- All original textual and graphical site content: -->
229.135 + <!-- -->
229.136 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
229.137 + <!-- reserved. Reproduction in whole or in part without written -->
229.138 + <!-- permission is prohibited. interos and the interos logos are -->
229.139 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
229.140 + <!-- product, and service names mentioned herein may be the properties -->
229.141 + <!-- of their respective owners. Comments in the interos.org forums -->
229.142 + <!-- are the properties of their respective authors. All software -->
229.143 + <!-- developed in the forums is open source and belongs to everyone. -->
229.144 + <!-- -->
229.145 + <!--=====================================================================-->
229.146 + <!-- e-mail: info@interos.com -->
229.147 + <!--=====================================================================-->
229.148 +</html>
230.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
230.2 +++ b/xhtml/cgi/top_next_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
230.3 @@ -0,0 +1,74 @@
230.4 +<?xml version="1.0" encoding="utf-8"?>
230.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
230.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
230.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
230.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
230.9 + <!--=================================================-->
230.10 + <!-- interos Standard Document Header - Markup -->
230.11 + <!--=================================================-->
230.12 + <!-- URIs: https://interos.com/top -->
230.13 + <!-- https://www.interos.com/top -->
230.14 + <!-- Title: interos top toolbar -->
230.15 + <!-- Author: Brent Angeline -->
230.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
230.17 + <!--=================================================-->
230.18 + <head>
230.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
230.20 + <meta name="title" content="interos top toolbar" />
230.21 + <meta name="description" content="top toolbar for interos" />
230.22 + <meta name="author" content="Brent Angeline" />
230.23 + <meta name="copyright"
230.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
230.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
230.26 + <title>interos top</title>
230.27 + <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
230.28 + <link rel="icon" href="/images/favicon.gif" type="image/gif" />
230.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
230.30 + media="screen, projection" />
230.31 + <script type="text/javascript" src="/js/top.js"></script>
230.32 + </head>
230.33 + <body id="body">
230.34 + <center>
230.35 + <table id="topToolbar" width="100%"
230.36 + border="0" cellpadding="0" cellspacing="0">
230.37 + <tr>
230.38 + <td width="72"
230.39 + height="72"><center>
230.40 + <a id="openButton"
230.41 + href="/interos?menu=open"
230.42 + style="padding: 26px 0 27px"
230.43 + target="_top"><strong>open</strong></a>
230.44 + </center></td>
230.45 + <td><center>
230.46 + <span class="hidden">|</span>
230.47 + </center></td>
230.48 + <td width="72"
230.49 + height="72"><center>
230.50 + <a id="nextButton"
230.51 + href="/interos?menu=next"
230.52 + style="padding: 26px 0 27px"
230.53 + target="_top"><strong>next</strong></a>
230.54 + </center></td>
230.55 + </tr>
230.56 + </table>
230.57 + </center>
230.58 + </body>
230.59 + <!--=====================================================================-->
230.60 + <!-- Copyright and Trademark Statement -->
230.61 + <!--=====================================================================-->
230.62 + <!-- -->
230.63 + <!-- All original textual and graphical site content: -->
230.64 + <!-- -->
230.65 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
230.66 + <!-- reserved. Reproduction in whole or in part without written -->
230.67 + <!-- permission is prohibited. interos and the interos logos are -->
230.68 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
230.69 + <!-- product, and service names mentioned herein may be the properties -->
230.70 + <!-- of their respective owners. Comments in the interos.org forums -->
230.71 + <!-- are the properties of their respective authors. All software -->
230.72 + <!-- developed in the forums is open source and belongs to everyone. -->
230.73 + <!-- -->
230.74 + <!--=====================================================================-->
230.75 + <!-- e-mail: info@interos.com -->
230.76 + <!--=====================================================================-->
230.77 +</html>
231.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
231.2 +++ b/xhtml/cgi/top_open_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
231.3 @@ -0,0 +1,72 @@
231.4 +<?xml version="1.0" encoding="utf-8"?>
231.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
231.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
231.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
231.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
231.9 + <!--====================================================-->
231.10 + <!-- interos Standard Document Header - Markup -->
231.11 + <!--====================================================-->
231.12 + <!-- URIs: https://interos.com/top?button=open -->
231.13 + <!-- https://www.interos.com/top?button=open -->
231.14 + <!-- Title: interos open menu button -->
231.15 + <!-- Author: Brent Angeline -->
231.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
231.17 + <!--====================================================-->
231.18 + <head>
231.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
231.20 + <meta name="title" content="interos open menu button" />
231.21 + <meta name="description" content="button for interos open menu" />
231.22 + <meta name="author" content="Brent Angeline" />
231.23 + <meta name="copyright"
231.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
231.25 + <meta name="robots" content="noindex, nofollow, noarchive" />
231.26 + <title>interos open menu button</title>
231.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
231.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
231.29 + <link rel="stylesheet" type="text/css" href="/style/main.css"
231.30 + media="screen, projection" />
231.31 + <script type="text/javascript" src="/js/top.js"></script>
231.32 + </head>
231.33 + <body id="body">
231.34 + <center>
231.35 + <table id="topToolbarFaded" width="100%"
231.36 + border="0" cellpadding="0" cellspacing="0">
231.37 + <tr>
231.38 + <td width="72"
231.39 + height="72"><center>
231.40 + <a id="openMenuButton"
231.41 + href="/main"
231.42 + style="padding: 26px 0 27px"
231.43 + target="_top"><strong>« back</strong></a>
231.44 + </center></td>
231.45 + <td><center>
231.46 + <span class="hidden">|</span>
231.47 + </center></td>
231.48 + <td id="topToolbarCornerFaded"
231.49 + width="72"
231.50 + height="72"><p>
231.51 + <br />
231.52 + </p></td>
231.53 + </tr>
231.54 + </table>
231.55 + </center>
231.56 + </body>
231.57 + <!--=====================================================================-->
231.58 + <!-- Copyright and Trademark Statement -->
231.59 + <!--=====================================================================-->
231.60 + <!-- -->
231.61 + <!-- All original textual and graphical site content: -->
231.62 + <!-- -->
231.63 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
231.64 + <!-- reserved. Reproduction in whole or in part without written -->
231.65 + <!-- permission is prohibited. interos and the interos logos are -->
231.66 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
231.67 + <!-- product, and service names mentioned herein may be the properties -->
231.68 + <!-- of their respective owners. Comments in the interos.org forums -->
231.69 + <!-- are the properties of their respective authors. All software -->
231.70 + <!-- developed in the forums is open source and belongs to everyone. -->
231.71 + <!-- -->
231.72 + <!--=====================================================================-->
231.73 + <!-- e-mail: info@interos.com -->
231.74 + <!--=====================================================================-->
231.75 +</html>
232.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
232.2 +++ b/xhtml/cgi/welcome_back_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
232.3 @@ -0,0 +1,21 @@
232.4 +
232.5 +
232.6 + <!--=====================================================================-->
232.7 + <!-- Copyright and Trademark Statement -->
232.8 + <!--=====================================================================-->
232.9 + <!-- -->
232.10 + <!-- All original textual and graphical site content: -->
232.11 + <!-- -->
232.12 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
232.13 + <!-- reserved. Reproduction in whole or in part without written -->
232.14 + <!-- permission is prohibited. interos and the interos logos are -->
232.15 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
232.16 + <!-- product, and service names mentioned herein may be the properties -->
232.17 + <!-- of their respective owners. Comments in the interos.org forums -->
232.18 + <!-- are the properties of their respective authors. All software -->
232.19 + <!-- developed in the forums is open source and belongs to everyone. -->
232.20 + <!-- -->
232.21 + <!--=====================================================================-->
232.22 + <!-- e-mail: info@interos.com -->
232.23 + <!--=====================================================================-->
232.24 +
233.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
233.2 +++ b/xhtml/cgi/welcome_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
233.3 @@ -0,0 +1,132 @@
233.4 +<?xml version="1.0" encoding="utf-8"?>
233.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
233.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
233.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
233.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
233.9 + style="background: #606060">
233.10 + <!--=================================================-->
233.11 + <!-- interos Standard Document Header - Markup -->
233.12 + <!--=================================================-->
233.13 + <!-- URIs: https://interos.com/welcome -->
233.14 + <!-- https://www.interos.com/welcome -->
233.15 + <!-- Title: welcome to interos -->
233.16 + <!-- Author: Brent Angeline -->
233.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
233.18 + <!--=================================================-->
233.19 + <head>
233.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
233.21 + <meta name="title" content="welcome to interos" />
233.22 + <meta name="description" content="internet operating system" />
233.23 + <meta name="author" content="Brent Angeline" />
233.24 + <meta name="copyright"
233.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
233.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
233.27 + <title>welcome to interos</title>
233.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
233.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
233.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
233.31 + media="screen, projection" />
233.32 + <script type="text/javascript" src="/js/main.js"></script>
233.33 + </head>
233.34 + <body id="body" style="background: #606060">
233.35 + <center>
233.36 + <table id="topToolbar" width="100%"
233.37 + border="0" cellpadding="0" cellspacing="0">
233.38 + <tr>
233.39 + <td width="72"
233.40 + height="72"><center>
233.41 + <a id="openButton"
233.42 + href="/interos?menu=open"
233.43 + style="padding: 26px 0 27px"
233.44 + target="_top"><strong>open</strong></a>
233.45 + </center></td>
233.46 + <td><center>
233.47 + <span class="hidden">|</span>
233.48 + </center></td>
233.49 + <td width="72"
233.50 + height="72"><center>
233.51 + <a id="nextButton"
233.52 + href="/interos?menu=next"
233.53 + style="padding: 26px 0 27px"
233.54 + target="_top"><strong>next</strong></a>
233.55 + </center></td>
233.56 + </tr>
233.57 + </table>
233.58 + <table id="welcomePanel">
233.59 + <thead>
233.60 + <tr>
233.61 + <th><center>
233.62 + <h1>
233.63 + welcome to interos
233.64 + </h1>
233.65 + </center></th>
233.66 + </tr>
233.67 + </thead>
233.68 + <tfoot>
233.69 + <tr>
233.70 + <td><br /></td>
233.71 + </tr>
233.72 + </tfoot>
233.73 + <tbody>
233.74 + <tr>
233.75 + <td><center>
233.76 + <h2>
233.77 + Getting around is simple:
233.78 + </h2>
233.79 + <p>
233.80 + Click the <strong id="new">new</strong>,
233.81 + <strong id="open">open</strong>,
233.82 + <strong id="next">next</strong>, or
233.83 + <strong id="settings">settings</strong> button
233.84 + to bring up its menu.
233.85 + </p>
233.86 + <p>
233.87 + Try clicking <strong id="try">new</strong> to get started!
233.88 + </p>
233.89 + </center></td>
233.90 + </tr>
233.91 + </tbody>
233.92 + </table>
233.93 + <table id="bottomToolbar" class="bottom" width="100%"
233.94 + border="0" cellpadding="0" cellspacing="0">
233.95 + <tr>
233.96 + <td width="72"
233.97 + height="72"><center>
233.98 + <a id="newButton"
233.99 + href="/interos?menu=new"
233.100 + style="padding: 26px 0 27px"
233.101 + target="_top"><strong>new</strong></a>
233.102 + </center></td>
233.103 + <td><center>
233.104 + <span class="hidden">|</span>
233.105 + </center></td>
233.106 + <td width="72"
233.107 + height="72"><center>
233.108 + <a id="settingsButton"
233.109 + href="/interos?menu=settings"
233.110 + style="padding: 26px 0 27px"
233.111 + target="_top"><strong>settings</strong></a>
233.112 + </center></td>
233.113 + </tr>
233.114 + </table>
233.115 + </center>
233.116 + </body>
233.117 + <!--=====================================================================-->
233.118 + <!-- Copyright and Trademark Statement -->
233.119 + <!--=====================================================================-->
233.120 + <!-- -->
233.121 + <!-- All original textual and graphical site content: -->
233.122 + <!-- -->
233.123 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
233.124 + <!-- reserved. Reproduction in whole or in part without written -->
233.125 + <!-- permission is prohibited. interos and the interos logos are -->
233.126 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
233.127 + <!-- product, and service names mentioned herein may be the properties -->
233.128 + <!-- of their respective owners. Comments in the interos.org forums -->
233.129 + <!-- are the properties of their respective authors. All software -->
233.130 + <!-- developed in the forums is open source and belongs to everyone. -->
233.131 + <!-- -->
233.132 + <!--=====================================================================-->
233.133 + <!-- e-mail: info@interos.com -->
233.134 + <!--=====================================================================-->
233.135 +</html>
234.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
234.2 +++ b/xhtml/cgi/welcome_js_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
234.3 @@ -0,0 +1,132 @@
234.4 +<?xml version="1.0" encoding="utf-8"?>
234.5 +<?xml-stylesheet type="text/css" href="/style/main.css"?>
234.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
234.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
234.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
234.9 + style="background: #606060">
234.10 + <!--=================================================-->
234.11 + <!-- interos Standard Document Header - Markup -->
234.12 + <!--=================================================-->
234.13 + <!-- URIs: https://interos.com/welcome -->
234.14 + <!-- https://www.interos.com/welcome -->
234.15 + <!-- Title: welcome to interos -->
234.16 + <!-- Author: Brent Angeline -->
234.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
234.18 + <!--=================================================-->
234.19 + <head>
234.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
234.21 + <meta name="title" content="welcome to interos" />
234.22 + <meta name="description" content="internet operating system" />
234.23 + <meta name="author" content="Brent Angeline" />
234.24 + <meta name="copyright"
234.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
234.26 + <meta name="robots" content="noindex, nofollow, noarchive" />
234.27 + <title>welcome to interos</title>
234.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
234.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
234.30 + <link rel="stylesheet" type="text/css" href="/style/main.css"
234.31 + media="screen, projection" />
234.32 + <script type="text/javascript" src="/js/main.js"></script>
234.33 + </head>
234.34 + <body id="body" style="background: #606060">
234.35 + <center>
234.36 + <table id="topToolbar" width="100%"
234.37 + border="0" cellpadding="0" cellspacing="0">
234.38 + <tr>
234.39 + <td width="72"
234.40 + height="72"><center>
234.41 + <a id="openButton"
234.42 + href="/interos?menu=open"
234.43 + style="padding: 26px 0 27px"
234.44 + target="_top"><strong>open</strong></a>
234.45 + </center></td>
234.46 + <td><center>
234.47 + <span class="hidden">|</span>
234.48 + </center></td>
234.49 + <td width="72"
234.50 + height="72"><center>
234.51 + <a id="nextButton"
234.52 + href="/interos?menu=next"
234.53 + style="padding: 26px 0 27px"
234.54 + target="_top"><strong>next</strong></a>
234.55 + </center></td>
234.56 + </tr>
234.57 + </table>
234.58 + <table id="welcomePanel">
234.59 + <thead>
234.60 + <tr>
234.61 + <th><center>
234.62 + <h1>
234.63 + welcome to interos
234.64 + </h1>
234.65 + </center></th>
234.66 + </tr>
234.67 + </thead>
234.68 + <tfoot>
234.69 + <tr>
234.70 + <td><br /></td>
234.71 + </tr>
234.72 + </tfoot>
234.73 + <tbody>
234.74 + <tr>
234.75 + <td><center>
234.76 + <h2>
234.77 + Getting around is simple:
234.78 + </h2>
234.79 + <p>
234.80 + Click the <strong id="new">new</strong>,
234.81 + <strong id="open">open</strong>,
234.82 + <strong id="next">next</strong>, or
234.83 + <strong id="settings">settings</strong> button
234.84 + to bring up its menu.
234.85 + </p>
234.86 + <p>
234.87 + Try clicking <strong id="try">new</strong> to get started!
234.88 + </p>
234.89 + </center></td>
234.90 + </tr>
234.91 + </tbody>
234.92 + </table>
234.93 + <table id="bottomToolbar" class="bottom" width="100%"
234.94 + border="0" cellpadding="0" cellspacing="0">
234.95 + <tr>
234.96 + <td width="72"
234.97 + height="72"><center>
234.98 + <a id="newButton"
234.99 + href="/interos?menu=new"
234.100 + style="padding: 26px 0 27px"
234.101 + target="_top"><strong>new</strong></a>
234.102 + </center></td>
234.103 + <td><center>
234.104 + <span class="hidden">|</span>
234.105 + </center></td>
234.106 + <td width="72"
234.107 + height="72"><center>
234.108 + <a id="settingsButton"
234.109 + href="/interos?menu=settings"
234.110 + style="padding: 26px 0 27px"
234.111 + target="_top"><strong>settings</strong></a>
234.112 + </center></td>
234.113 + </tr>
234.114 + </table>
234.115 + </center>
234.116 + </body>
234.117 + <!--=====================================================================-->
234.118 + <!-- Copyright and Trademark Statement -->
234.119 + <!--=====================================================================-->
234.120 + <!-- -->
234.121 + <!-- All original textual and graphical site content: -->
234.122 + <!-- -->
234.123 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
234.124 + <!-- reserved. Reproduction in whole or in part without written -->
234.125 + <!-- permission is prohibited. interos and the interos logos are -->
234.126 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
234.127 + <!-- product, and service names mentioned herein may be the properties -->
234.128 + <!-- of their respective owners. Comments in the interos.org forums -->
234.129 + <!-- are the properties of their respective authors. All software -->
234.130 + <!-- developed in the forums is open source and belongs to everyone. -->
234.131 + <!-- -->
234.132 + <!--=====================================================================-->
234.133 + <!-- e-mail: info@interos.com -->
234.134 + <!--=====================================================================-->
234.135 +</html>
235.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
235.2 +++ b/xhtml/docs/flash/text_editor/spec_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
235.3 @@ -0,0 +1,292 @@
235.4 +<?xml version="1.0" encoding="utf-8"?>
235.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
235.6 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
235.7 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
235.8 + <!--===============================================================-->
235.9 + <!-- interos Standard Document Header - Markup -->
235.10 + <!--===============================================================-->
235.11 + <!-- URIs: http://interos.org/docs/flash/text_editor/spec -->
235.12 + <!-- http://www.interos.org/docs/flash/text_editor/spec -->
235.13 + <!-- Title: interos flash text editor -->
235.14 + <!-- Author: Brent Angeline -->
235.15 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
235.16 + <!--===============================================================-->
235.17 + <head>
235.18 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
235.19 + <meta name="title" content="interos flash text editor" />
235.20 + <meta name="description"
235.21 + content="interos flash text editor specification" />
235.22 + <meta name="author" content="Brent Angeline" />
235.23 + <meta name="copyright"
235.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
235.25 + <meta name="robots" content="index, follow, noarchive" />
235.26 + <title>interos flash text editor</title>
235.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
235.28 + <link rel="icon" type="image/gif" href="/sys/images/favicon.gif" />
235.29 + <style type="text/css">
235.30 + html, body {
235.31 + color: #000000;
235.32 + background: #c0c0c0;
235.33 + }
235.34 + img {
235.35 + outline: 1px solid #000000;
235.36 + }
235.37 + ul {
235.38 + font-size: 1.08em;
235.39 + }
235.40 + .numeric {
235.41 + font: bold 1.5em serif;
235.42 + }
235.43 + .alphabetic {
235.44 + font-size: .78em;
235.45 + }
235.46 + .roman {
235.47 + font: normal .92em serif;
235.48 + }
235.49 + #initialize {
235.50 + font-weight: normal;
235.51 + }
235.52 + </style>
235.53 + </head>
235.54 + <body>
235.55 + <p>
235.56 + <br />
235.57 + </p>
235.58 + <center>
235.59 + <h1>
235.60 + interos flash text editor
235.61 + </h1>
235.62 + </center>
235.63 + <p>
235.64 + <br />
235.65 + </p>
235.66 + <ol class="numeric">
235.67 + <li>
235.68 + <p>
235.69 + Initialize
235.70 + </p>
235.71 + <img src="/docs/flash/text_editor/images/spec/1.gif"
235.72 + alt="Fig. 1" title="Fig. 1" />
235.73 + <ol id="initialize" class="alphabetic" type="a">
235.74 + <li>
235.75 + <p>
235.76 + This application should be 768 x 432 pixels in size and should
235.77 + immediately load and display the text_editor.psd skin.
235.78 + </p>
235.79 + </li>
235.80 + <li>
235.81 + <p>
235.82 + To start out, only the “base” layer should be visible.
235.83 + </p>
235.84 + </li>
235.85 + <li>
235.86 + <p>
235.87 + A text entry area with an empty text buffer should fill the white
235.88 + rectangular area below the menu bar completely.
235.89 + </p>
235.90 + </li>
235.91 + <li>
235.92 + <p>
235.93 + A black text entry cursor should be blinking in the upper left
235.94 + corner of the white text area. Typing should input black text
235.95 + into this area in a 10-point monospace font, e.g., Courier New.
235.96 + </p>
235.97 + </li>
235.98 + </ol>
235.99 + </li>
235.100 + </ol>
235.101 + <p>
235.102 + <br />
235.103 + </p>
235.104 + <ul>
235.105 + <li>
235.106 + <p>
235.107 + Once this initial setup is complete, the first functionality you'll
235.108 + be working with is implementing the keyboard shortcuts.
235.109 + </p>
235.110 + </li>
235.111 + <li>
235.112 + <p>
235.113 + The first layers you'll be working with are the hidden menu bar
235.114 + layers (file_hover, edit_hover, format_hover, view_hover, and
235.115 + help_hover).
235.116 + </p>
235.117 + </li>
235.118 + </ul>
235.119 + <p>
235.120 + <br />
235.121 + </p>
235.122 + <ol class="numeric" start="2">
235.123 + <li>
235.124 + <p>
235.125 + Keyboard Shortcuts
235.126 + </p>
235.127 + <ol class="alphabetic" type="a">
235.128 + <li>
235.129 + <p>
235.130 + Menu Bar
235.131 + </p>
235.132 + <ol class="roman" type="i">
235.133 + <li>
235.134 + <p>
235.135 + Pressing the Alt key should toggle the visibility of
235.136 + file_hover back and forth between visible and hidden. When
235.137 + a menu hover is visible, the text entry cursor should stop
235.138 + blinking and disappear completely, and the further
235.139 + manipulation of text in the text area should be prevented.
235.140 + (This process should be reversed whenever menu mode
235.141 + is exited, returning the blinking cursor and text area
235.142 + editing). When file_hover is visible, pressing the right
235.143 + arrow key should hide file_hover and show edit_hover, wheras
235.144 + pressing the left arrow key should hide file_hover and show
235.145 + help_hover. Pressing the left or right arrow key from a
235.146 + visible edit_hover, format_hover, or view_hover should hide
235.147 + that hover layer and show the adjacent menu bar hover layer
235.148 + in the direction of the arrow key pressed. When help_hover
235.149 + is visible, pressing the left arrow key should hide
235.150 + help_hover and show view_hover, whereas pressing the right
235.151 + arrow key should hide help_hover and show file_hover.
235.152 + </p>
235.153 + <img src="/docs/flash/text_editor/images/spec/2a-i.gif"
235.154 + alt="Fig. 2a(i)" title="Fig. 2a(i)" />
235.155 + <p>
235.156 + <br />
235.157 + </p>
235.158 + </li>
235.159 + <li>
235.160 + <p>
235.161 + While a menu bar hover layer is visible, pressing the down
235.162 + arrow key or Enter should display its corresponding menu
235.163 + layer (file_menu, edit_menu, format_menu, view_menu, or
235.164 + help_menu), hide the menu bar hover layer, and display the
235.165 + hover layer for the first non-inactive entry for that
235.166 + menu. (If no non-inactive entries exist for that menu, no
235.167 + menu entry hover is displayed).
235.168 + </p>
235.169 + <img src="/docs/flash/text_editor/images/spec/2a-ii.gif"
235.170 + alt="Fig. 2a(ii)" title="Fig. 2a(ii)" />
235.171 + <p>
235.172 + <br />
235.173 + </p>
235.174 + </li>
235.175 + <li>
235.176 + <p>
235.177 + While a menu bar hover layer is visible, pressing a menu's
235.178 + corresponding shortcut key as denoted by its underlined
235.179 + letter (F for File, E for Edit, O for Format, V for view, or
235.180 + H for Help) should display its corresponding menu layer, hide
235.181 + all menu bar hover layers, and display the hover layer for
235.182 + the first non-inactive entry for that menu. (If no
235.183 + non-inactive entries exist for that menu, no menu entry hover
235.184 + layer is displayed).
235.185 + </p>
235.186 + <img src="/docs/flash/text_editor/images/spec/2a-iii.gif"
235.187 + alt="Fig. 2a(iii)" title="Fig. 2a(iii)" />
235.188 + <p>
235.189 + <br />
235.190 + </p>
235.191 + </li>
235.192 + <li>
235.193 + <p>
235.194 + If any other key is pressed instead, the current menu bar
235.195 + hover layer should return to its hidden state.
235.196 + </p>
235.197 + <img src="/docs/flash/text_editor/images/spec/2a-iv.gif"
235.198 + alt="Fig. 2a(iv)" title="Fig. 2a(iv)" />
235.199 + <p>
235.200 + <br />
235.201 + </p>
235.202 + </li>
235.203 + </ol>
235.204 + </li>
235.205 + <li>
235.206 + <p>
235.207 + Menus
235.208 + </p>
235.209 + <ol class="roman" type="i">
235.210 + <li>
235.211 + <p>
235.212 + When no menu bar hover layer is visible, pressing Alt+F for
235.213 + File, Alt+E for Edit, Alt+O for Format, Alt+V for View, or
235.214 + Alt+H for Help should display the corresponding menu layer
235.215 + and the hover layer for the first non-inactive entry for that
235.216 + menu. (If no non-inactive entries exist for that menu, no
235.217 + menu entry hover layer is displayed).
235.218 + </p>
235.219 + <img src="/docs/flash/text_editor/images/spec/2b-i.gif"
235.220 + alt="Fig. 2b(i)" title="Fig. 2b(i)" />
235.221 + <p>
235.222 + <br />
235.223 + </p>
235.224 + </li>
235.225 + <li>
235.226 + <p>
235.227 + While a menu layer is visible, pressing the left or right
235.228 + arrow keys should cycle between adjacent menus just like how
235.229 + the menu hovers behaved in Step 2a(i)—hiding the
235.230 + current menu layer and any visible menu entry hover layer,
235.231 + showing the adjacent menu layer in the direction pressed, and
235.232 + showing the hover layer for the first non-active entry for
235.233 + that menu. (If no non-inactive entries exist for that menu,
235.234 + no menu entry hover layer is displayed). When cycling left
235.235 + and right through the menus, the farthest left (File) and
235.236 + farthest right (Help) menus should loop around to each
235.237 + other—also just like how cycling through the menu hover
235.238 + layers behaved in Step 2a(i).
235.239 + </p>
235.240 + <img src="/docs/flash/text_editor/images/spec/2b-ii.gif"
235.241 + alt="Fig. 2b(ii)" title="Fig. 2b(ii)" />
235.242 + <p>
235.243 + <br />
235.244 + </p>
235.245 + </li>
235.246 + <li>
235.247 + <p>
235.248 + While a menu layer is visible, pressing a menu entry's
235.249 + corresponding shortcut key as denoted by the underlined
235.250 + letter in that menu entry's name should hide any visible menu
235.251 + entry hover layer, hide the current menu layer, and perform
235.252 + the selected entry's corresponding action. Each entry's
235.253 + action will be discussed in detail later in this text.
235.254 + </p>
235.255 + <p>
235.256 + <br />
235.257 + </p>
235.258 + </li>
235.259 + <li>
235.260 + <p>
235.261 + While a menu layer is visible, pressing the up or down arrow
235.262 + keys should navigate through menu entries adjacent to the
235.263 + current visible menu entry hover layer in the direction of
235.264 + the arrow key pressed—skipping any inactive menu
235.265 + entries along the way.
235.266 + </p>
235.267 + <p>
235.268 + <br />
235.269 + </p>
235.270 + </li>
235.271 + </ol>
235.272 + </li>
235.273 + </ol>
235.274 + </li>
235.275 + </ol>
235.276 + </body>
235.277 + <!--=====================================================================-->
235.278 + <!-- Copyright and Trademark Statement -->
235.279 + <!--=====================================================================-->
235.280 + <!-- -->
235.281 + <!-- All original textual and graphical site content: -->
235.282 + <!-- -->
235.283 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
235.284 + <!-- reserved. Reproduction in whole or in part without written -->
235.285 + <!-- permission is prohibited. interos and the interos logos are -->
235.286 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
235.287 + <!-- product, and service names mentioned herein may be the properties -->
235.288 + <!-- of their respective owners. Comments in the interos.org forums -->
235.289 + <!-- are the properties of their respective authors. All software -->
235.290 + <!-- developed in the forums is open source and belongs to everyone. -->
235.291 + <!-- -->
235.292 + <!--=====================================================================-->
235.293 + <!-- e-mail: info@interos.org -->
235.294 + <!--=====================================================================-->
235.295 +</html>
236.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
236.2 +++ b/xhtml/page/about_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
236.3 @@ -0,0 +1,149 @@
236.4 +<?xml version="1.0" encoding="utf-8"?>
236.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
236.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
236.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
236.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
236.9 + <!--=================================================-->
236.10 + <!-- interos Standard Document Header - Markup -->
236.11 + <!--=================================================-->
236.12 + <!-- URIs: http://interos.com/about -->
236.13 + <!-- http://about.interos.com/ -->
236.14 + <!-- http://www.interos.com/about -->
236.15 + <!-- Title: about interos -->
236.16 + <!-- Author: Brent Angeline -->
236.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
236.18 + <!--=================================================-->
236.19 + <head>
236.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
236.21 + <meta name="title" content="about interos" />
236.22 + <meta name="description" content="description of interos" />
236.23 + <meta name="author" content="Brent Angeline" />
236.24 + <meta name="copyright"
236.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
236.26 + <meta name="robots" content="index, follow, noarchive" />
236.27 + <title>about interos</title>
236.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
236.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
236.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
236.31 + media="screen, projection" />
236.32 + </head>
236.33 + <body id="body">
236.34 + <center>
236.35 + <p id="navigation">
236.36 + about |
236.37 + <a href="/blog">blog</a> |
236.38 + <a href="/code">code</a> |
236.39 + <a href="/demo">demo</a> |
236.40 + <a href="/e-mail">e-mail</a> |
236.41 + <a href="/faq">f.a.q.</a> |
236.42 + <a href="/gear">gear</a> |
236.43 + <a href="http://www.interos.com/">home</a>
236.44 + </p>
236.45 + <table id="titlePanel">
236.46 + <thead>
236.47 + <tr>
236.48 + <th><center>
236.49 + <h1>
236.50 + <a href="http://about.interos.com/">about interos</a>
236.51 + </h1>
236.52 + <h2>
236.53 + Do more. . . . Do it all.
236.54 + </h2>
236.55 + </center></th>
236.56 + </tr>
236.57 + </thead>
236.58 + <tbody>
236.59 + <tr>
236.60 + <td><br /></td>
236.61 + </tr>
236.62 + </tbody>
236.63 + </table>
236.64 + </center>
236.65 + <div class="box">
236.66 + <h3>
236.67 + what is interos?
236.68 + </h3>
236.69 + <p>
236.70 + <strong>
236.71 + interos is all about empowering you to do more with your digital
236.72 + world.
236.73 + </strong>
236.74 + </p>
236.75 + <p>
236.76 + Get excited. You'll soon have access to your own secure online
236.77 + virtual computer—absolutely free—and it's designed to work
236.78 + in any web browser. This opens the doors to a whole new world of
236.79 + possibilities in what you can do with your web-enabled gadgets.
236.80 + </p>
236.81 + <p>
236.82 + (coming soon)
236.83 + </p>
236.84 + <p>
236.85 + <br />
236.86 + </p>
236.87 + </div>
236.88 + <div class="box">
236.89 + <h3>
236.90 + <a href="http://www.interos.com/">interos.com</a>:
236.91 + internet operating system
236.92 + </h3>
236.93 + <p>
236.94 + interos is an <a
236.95 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
236.96 + operating system</a> based on <a
236.97 + href="http://en.wikipedia.org/wiki/FreeBSD">FreeBSD</a>.
236.98 + </p>
236.99 + <p>
236.100 + (more info soon)
236.101 + </p>
236.102 + <p>
236.103 + <br />
236.104 + </p>
236.105 + </div>
236.106 + <div class="box">
236.107 + <h3>
236.108 + <a href="http://interos.org/">interos.org</a>: internet open source
236.109 + </h3>
236.110 + <p>
236.111 + (more info soon)
236.112 + </p>
236.113 + <p>
236.114 + <br />
236.115 + </p>
236.116 + </div>
236.117 + <div class="box">
236.118 + <h3>
236.119 + interos history
236.120 + </h3>
236.121 + <p>
236.122 + (coming soon)
236.123 + </p>
236.124 + <p>
236.125 + <br />
236.126 + </p>
236.127 + </div>
236.128 + <center>
236.129 + <p id="copyrightDates">
236.130 + © 2001–2009 interos
236.131 + </p>
236.132 + </center>
236.133 + </body>
236.134 + <!--=====================================================================-->
236.135 + <!-- Copyright and Trademark Statement -->
236.136 + <!--=====================================================================-->
236.137 + <!-- -->
236.138 + <!-- All original textual and graphical site content: -->
236.139 + <!-- -->
236.140 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
236.141 + <!-- reserved. Reproduction in whole or in part without written -->
236.142 + <!-- permission is prohibited. interos and the interos logos are -->
236.143 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
236.144 + <!-- product, and service names mentioned herein may be the properties -->
236.145 + <!-- of their respective owners. Comments in the interos.org forums -->
236.146 + <!-- are the properties of their respective authors. All software -->
236.147 + <!-- developed in the forums is open source and belongs to everyone. -->
236.148 + <!-- -->
236.149 + <!--=====================================================================-->
236.150 + <!-- e-mail: info@interos.com -->
236.151 + <!--=====================================================================-->
236.152 +</html>
237.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
237.2 +++ b/xhtml/page/about_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
237.3 @@ -0,0 +1,149 @@
237.4 +<?xml version="1.0" encoding="utf-8"?>
237.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
237.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
237.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
237.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
237.9 + <!--=================================================-->
237.10 + <!-- interos Standard Document Header - Markup -->
237.11 + <!--=================================================-->
237.12 + <!-- URIs: https://interos.com/about -->
237.13 + <!-- https://about.interos.com/ -->
237.14 + <!-- https://www.interos.com/about -->
237.15 + <!-- Title: about interos -->
237.16 + <!-- Author: Brent Angeline -->
237.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
237.18 + <!--=================================================-->
237.19 + <head>
237.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
237.21 + <meta name="title" content="about interos" />
237.22 + <meta name="description" content="description of interos" />
237.23 + <meta name="author" content="Brent Angeline" />
237.24 + <meta name="copyright"
237.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
237.26 + <meta name="robots" content="index, follow, noarchive" />
237.27 + <title>about interos</title>
237.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
237.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
237.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
237.31 + media="screen, projection" />
237.32 + </head>
237.33 + <body id="body">
237.34 + <center>
237.35 + <p id="navigation">
237.36 + about |
237.37 + <a href="/blog">blog</a> |
237.38 + <a href="/code">code</a> |
237.39 + <a href="/demo">demo</a> |
237.40 + <a href="/e-mail">e-mail</a> |
237.41 + <a href="/faq">f.a.q.</a> |
237.42 + <a href="/gear">gear</a> |
237.43 + <a href="https://www.interos.com/">home</a>
237.44 + </p>
237.45 + <table id="titlePanel">
237.46 + <thead>
237.47 + <tr>
237.48 + <th><center>
237.49 + <h1>
237.50 + <a href="https://about.interos.com/">about interos</a>
237.51 + </h1>
237.52 + <h2>
237.53 + Do more. . . . Do it all.
237.54 + </h2>
237.55 + </center></th>
237.56 + </tr>
237.57 + </thead>
237.58 + <tbody>
237.59 + <tr>
237.60 + <td><br /></td>
237.61 + </tr>
237.62 + </tbody>
237.63 + </table>
237.64 + </center>
237.65 + <div class="box">
237.66 + <h3>
237.67 + what is interos?
237.68 + </h3>
237.69 + <p>
237.70 + <strong>
237.71 + interos is all about empowering you to do more with your digital
237.72 + world.
237.73 + </strong>
237.74 + </p>
237.75 + <p>
237.76 + Get excited. You'll soon have access to your own secure online
237.77 + virtual computer—absolutely free—and it's designed to work
237.78 + in any web browser. This opens the doors to a whole new world of
237.79 + possibilities in what you can do with your web-enabled gadgets.
237.80 + </p>
237.81 + <p>
237.82 + (coming soon)
237.83 + </p>
237.84 + <p>
237.85 + <br />
237.86 + </p>
237.87 + </div>
237.88 + <div class="box">
237.89 + <h3>
237.90 + <a href="https://www.interos.com/">interos.com</a>:
237.91 + internet operating system
237.92 + </h3>
237.93 + <p>
237.94 + interos is an <a
237.95 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
237.96 + operating system</a> based on <a
237.97 + href="http://en.wikipedia.org/wiki/FreeBSD">FreeBSD</a>.
237.98 + </p>
237.99 + <p>
237.100 + (more info soon)
237.101 + </p>
237.102 + <p>
237.103 + <br />
237.104 + </p>
237.105 + </div>
237.106 + <div class="box">
237.107 + <h3>
237.108 + <a href="https://interos.org/">interos.org</a>: internet open source
237.109 + </h3>
237.110 + <p>
237.111 + (more info soon)
237.112 + </p>
237.113 + <p>
237.114 + <br />
237.115 + </p>
237.116 + </div>
237.117 + <div class="box">
237.118 + <h3>
237.119 + interos history
237.120 + </h3>
237.121 + <p>
237.122 + (coming soon)
237.123 + </p>
237.124 + <p>
237.125 + <br />
237.126 + </p>
237.127 + </div>
237.128 + <center>
237.129 + <p id="copyrightDates">
237.130 + © 2001–2009 interos
237.131 + </p>
237.132 + </center>
237.133 + </body>
237.134 + <!--=====================================================================-->
237.135 + <!-- Copyright and Trademark Statement -->
237.136 + <!--=====================================================================-->
237.137 + <!-- -->
237.138 + <!-- All original textual and graphical site content: -->
237.139 + <!-- -->
237.140 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
237.141 + <!-- reserved. Reproduction in whole or in part without written -->
237.142 + <!-- permission is prohibited. interos and the interos logos are -->
237.143 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
237.144 + <!-- product, and service names mentioned herein may be the properties -->
237.145 + <!-- of their respective owners. Comments in the interos.org forums -->
237.146 + <!-- are the properties of their respective authors. All software -->
237.147 + <!-- developed in the forums is open source and belongs to everyone. -->
237.148 + <!-- -->
237.149 + <!--=====================================================================-->
237.150 + <!-- e-mail: info@interos.com -->
237.151 + <!--=====================================================================-->
237.152 +</html>
238.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
238.2 +++ b/xhtml/page/about_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
238.3 @@ -0,0 +1,149 @@
238.4 +<?xml version="1.0" encoding="utf-8"?>
238.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
238.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
238.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
238.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
238.9 + <!--=================================================-->
238.10 + <!-- interos Standard Document Header - Markup -->
238.11 + <!--=================================================-->
238.12 + <!-- URIs: http://interos.org/about -->
238.13 + <!-- http://about.interos.org/ -->
238.14 + <!-- http://www.interos.org/about -->
238.15 + <!-- Title: about interos -->
238.16 + <!-- Author: Brent Angeline -->
238.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
238.18 + <!--=================================================-->
238.19 + <head>
238.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
238.21 + <meta name="title" content="about interos" />
238.22 + <meta name="description" content="description of interos" />
238.23 + <meta name="author" content="Brent Angeline" />
238.24 + <meta name="copyright"
238.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
238.26 + <meta name="robots" content="index, follow, noarchive" />
238.27 + <title>about interos</title>
238.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
238.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
238.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
238.31 + media="screen, projection" />
238.32 + </head>
238.33 + <body id="body">
238.34 + <center>
238.35 + <p id="navigation">
238.36 + about |
238.37 + <a href="/blog">blog</a> |
238.38 + <a href="/code">code</a> |
238.39 + <a href="/forums">develop</a> |
238.40 + <a href="/e-mail">e-mail</a> |
238.41 + <a href="/faq">f.a.q.</a> |
238.42 + <a href="/gear">gear</a> |
238.43 + <a href="http://interos.org/">home</a>
238.44 + </p>
238.45 + <table id="titlePanel">
238.46 + <thead>
238.47 + <tr>
238.48 + <th><center>
238.49 + <h1>
238.50 + <a href="http://about.interos.org/">about interos</a>
238.51 + </h1>
238.52 + <h2>
238.53 + Do more. . . . Do it all.
238.54 + </h2>
238.55 + </center></th>
238.56 + </tr>
238.57 + </thead>
238.58 + <tbody>
238.59 + <tr>
238.60 + <td><br /></td>
238.61 + </tr>
238.62 + </tbody>
238.63 + </table>
238.64 + </center>
238.65 + <div class="box">
238.66 + <h3>
238.67 + what is interos?
238.68 + </h3>
238.69 + <p>
238.70 + <strong>
238.71 + interos is all about empowering you to do more with your digital
238.72 + world.
238.73 + </strong>
238.74 + </p>
238.75 + <p>
238.76 + Get excited. You'll soon have access to your own secure online
238.77 + virtual computer—absolutely free—and it's designed to work
238.78 + in any web browser. This opens the doors to a whole new world of
238.79 + possibilities in what you can do with your web-enabled gadgets.
238.80 + </p>
238.81 + <p>
238.82 + (coming soon)
238.83 + </p>
238.84 + <p>
238.85 + <br />
238.86 + </p>
238.87 + </div>
238.88 + <div class="box">
238.89 + <h3>
238.90 + <a href="http://www.interos.com/">interos.com</a>:
238.91 + internet operating system
238.92 + </h3>
238.93 + <p>
238.94 + interos is an <a
238.95 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
238.96 + operating system</a> based on <a
238.97 + href="http://en.wikipedia.org/wiki/FreeBSD">FreeBSD</a>.
238.98 + </p>
238.99 + <p>
238.100 + (more info soon)
238.101 + </p>
238.102 + <p>
238.103 + <br />
238.104 + </p>
238.105 + </div>
238.106 + <div class="box">
238.107 + <h3>
238.108 + <a href="http://interos.org/">interos.org</a>: internet open source
238.109 + </h3>
238.110 + <p>
238.111 + (more info soon)
238.112 + </p>
238.113 + <p>
238.114 + <br />
238.115 + </p>
238.116 + </div>
238.117 + <div class="box">
238.118 + <h3>
238.119 + interos history
238.120 + </h3>
238.121 + <p>
238.122 + (coming soon)
238.123 + </p>
238.124 + <p>
238.125 + <br />
238.126 + </p>
238.127 + </div>
238.128 + <center>
238.129 + <p id="copyrightDates">
238.130 + © 2001–2009 interos
238.131 + </p>
238.132 + </center>
238.133 + </body>
238.134 + <!--=====================================================================-->
238.135 + <!-- Copyright and Trademark Statement -->
238.136 + <!--=====================================================================-->
238.137 + <!-- -->
238.138 + <!-- All original textual and graphical site content: -->
238.139 + <!-- -->
238.140 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
238.141 + <!-- reserved. Reproduction in whole or in part without written -->
238.142 + <!-- permission is prohibited. interos and the interos logos are -->
238.143 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
238.144 + <!-- product, and service names mentioned herein may be the properties -->
238.145 + <!-- of their respective owners. Comments in the interos.org forums -->
238.146 + <!-- are the properties of their respective authors. All software -->
238.147 + <!-- developed in the forums is open source and belongs to everyone. -->
238.148 + <!-- -->
238.149 + <!--=====================================================================-->
238.150 + <!-- e-mail: info@interos.org -->
238.151 + <!--=====================================================================-->
238.152 +</html>
239.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
239.2 +++ b/xhtml/page/about_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
239.3 @@ -0,0 +1,149 @@
239.4 +<?xml version="1.0" encoding="utf-8"?>
239.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
239.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
239.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
239.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
239.9 + <!--=================================================-->
239.10 + <!-- interos Standard Document Header - Markup -->
239.11 + <!--=================================================-->
239.12 + <!-- URIs: https://interos.org/about -->
239.13 + <!-- https://about.interos.org/ -->
239.14 + <!-- https://www.interos.org/about -->
239.15 + <!-- Title: about interos -->
239.16 + <!-- Author: Brent Angeline -->
239.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
239.18 + <!--=================================================-->
239.19 + <head>
239.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
239.21 + <meta name="title" content="about interos" />
239.22 + <meta name="description" content="description of interos" />
239.23 + <meta name="author" content="Brent Angeline" />
239.24 + <meta name="copyright"
239.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
239.26 + <meta name="robots" content="index, follow, noarchive" />
239.27 + <title>about interos</title>
239.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
239.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
239.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
239.31 + media="screen, projection" />
239.32 + </head>
239.33 + <body id="body">
239.34 + <center>
239.35 + <p id="navigation">
239.36 + about |
239.37 + <a href="/blog">blog</a> |
239.38 + <a href="/code">code</a> |
239.39 + <a href="/forums">develop</a> |
239.40 + <a href="/e-mail">e-mail</a> |
239.41 + <a href="/faq">f.a.q.</a> |
239.42 + <a href="/gear">gear</a> |
239.43 + <a href="https://interos.org/">home</a>
239.44 + </p>
239.45 + <table id="titlePanel">
239.46 + <thead>
239.47 + <tr>
239.48 + <th><center>
239.49 + <h1>
239.50 + <a href="https://about.interos.org/">about interos</a>
239.51 + </h1>
239.52 + <h2>
239.53 + Do more. . . . Do it all.
239.54 + </h2>
239.55 + </center></th>
239.56 + </tr>
239.57 + </thead>
239.58 + <tbody>
239.59 + <tr>
239.60 + <td><br /></td>
239.61 + </tr>
239.62 + </tbody>
239.63 + </table>
239.64 + </center>
239.65 + <div class="box">
239.66 + <h3>
239.67 + what is interos?
239.68 + </h3>
239.69 + <p>
239.70 + <strong>
239.71 + interos is all about empowering you to do more with your digital
239.72 + world.
239.73 + </strong>
239.74 + </p>
239.75 + <p>
239.76 + Get excited. You'll soon have access to your own secure online
239.77 + virtual computer—absolutely free—and it's designed to work
239.78 + in any web browser. This opens the doors to a whole new world of
239.79 + possibilities in what you can do with your web-enabled gadgets.
239.80 + </p>
239.81 + <p>
239.82 + (coming soon)
239.83 + </p>
239.84 + <p>
239.85 + <br />
239.86 + </p>
239.87 + </div>
239.88 + <div class="box">
239.89 + <h3>
239.90 + <a href="https://www.interos.com/">interos.com</a>:
239.91 + internet operating system
239.92 + </h3>
239.93 + <p>
239.94 + interos is an <a
239.95 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
239.96 + operating system</a> based on <a
239.97 + href="http://en.wikipedia.org/wiki/FreeBSD">FreeBSD</a>.
239.98 + </p>
239.99 + <p>
239.100 + (more info soon)
239.101 + </p>
239.102 + <p>
239.103 + <br />
239.104 + </p>
239.105 + </div>
239.106 + <div class="box">
239.107 + <h3>
239.108 + <a href="https://interos.org/">interos.org</a>: internet open source
239.109 + </h3>
239.110 + <p>
239.111 + (more info soon)
239.112 + </p>
239.113 + <p>
239.114 + <br />
239.115 + </p>
239.116 + </div>
239.117 + <div class="box">
239.118 + <h3>
239.119 + interos history
239.120 + </h3>
239.121 + <p>
239.122 + (coming soon)
239.123 + </p>
239.124 + <p>
239.125 + <br />
239.126 + </p>
239.127 + </div>
239.128 + <center>
239.129 + <p id="copyrightDates">
239.130 + © 2001–2009 interos
239.131 + </p>
239.132 + </center>
239.133 + </body>
239.134 + <!--=====================================================================-->
239.135 + <!-- Copyright and Trademark Statement -->
239.136 + <!--=====================================================================-->
239.137 + <!-- -->
239.138 + <!-- All original textual and graphical site content: -->
239.139 + <!-- -->
239.140 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
239.141 + <!-- reserved. Reproduction in whole or in part without written -->
239.142 + <!-- permission is prohibited. interos and the interos logos are -->
239.143 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
239.144 + <!-- product, and service names mentioned herein may be the properties -->
239.145 + <!-- of their respective owners. Comments in the interos.org forums -->
239.146 + <!-- are the properties of their respective authors. All software -->
239.147 + <!-- developed in the forums is open source and belongs to everyone. -->
239.148 + <!-- -->
239.149 + <!--=====================================================================-->
239.150 + <!-- e-mail: info@interos.org -->
239.151 + <!--=====================================================================-->
239.152 +</html>
240.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
240.2 +++ b/xhtml/page/blog_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
240.3 @@ -0,0 +1,1189 @@
240.4 +<?xml version="1.0" encoding="utf-8"?>
240.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
240.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
240.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
240.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
240.9 + <!--=================================================-->
240.10 + <!-- interos Standard Document Header - Markup -->
240.11 + <!--=================================================-->
240.12 + <!-- URIs: http://interos.com/blog -->
240.13 + <!-- http://blog.interos.com/ -->
240.14 + <!-- http://www.interos.com/blog -->
240.15 + <!-- Title: interos blog -->
240.16 + <!-- Author: Brent Angeline -->
240.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
240.18 + <!--=================================================-->
240.19 + <head>
240.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
240.21 + <meta name="title" content="interos blog" />
240.22 + <meta name="description" content="web log for interos" />
240.23 + <meta name="author" content="Brent Angeline" />
240.24 + <meta name="copyright"
240.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
240.26 + <meta name="robots" content="index, follow, archive" />
240.27 + <title>interos blog</title>
240.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
240.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
240.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
240.31 + media="screen, projection" />
240.32 + </head>
240.33 + <body id="body">
240.34 + <center>
240.35 + <p id="navigation">
240.36 + <a href="/about">about</a> |
240.37 + blog |
240.38 + <a href="/code">code</a> |
240.39 + <a href="/demo">demo</a> |
240.40 + <a href="/e-mail">e-mail</a> |
240.41 + <a href="/faq">f.a.q.</a> |
240.42 + <a href="/gear">gear</a> |
240.43 + <a href="http://www.interos.com/">home</a>
240.44 + </p>
240.45 + <table id="titlePanel">
240.46 + <thead>
240.47 + <tr>
240.48 + <th><center>
240.49 + <h1>
240.50 + <a href="http://blog.interos.com/">interos blog</a>
240.51 + </h1>
240.52 + <h2>
240.53 + by Brent Angeline
240.54 + </h2>
240.55 + </center></th>
240.56 + </tr>
240.57 + </thead>
240.58 + <tbody>
240.59 + <tr>
240.60 + <td><br /></td>
240.61 + </tr>
240.62 + </tbody>
240.63 + </table>
240.64 + </center>
240.65 + <div class="box">
240.66 + <h3>
240.67 + Current Status
240.68 + </h3>
240.69 + <p>
240.70 + interos is presently undergoing some big and exciting changes!
240.71 + I'll bring the blog up to date and fill in all the details of the past
240.72 + weeks' work as soon as this wave of development is complete.
240.73 + </p>
240.74 + <p>
240.75 + <br />
240.76 + </p>
240.77 + </div>
240.78 + <div class="box">
240.79 + <h3>
240.80 + January 19th, 2007
240.81 + </h3>
240.82 + <p>
240.83 + Today I brought the blog up to date. I'll continue keeping daily
240.84 + log entries as I work, and I'll update them here online roughly weekly.
240.85 + </p>
240.86 + <p>
240.87 + Work on Javascript continues. . . .
240.88 + </p>
240.89 + <p>
240.90 + <br />
240.91 + </p>
240.92 + </div>
240.93 + <div class="box">
240.94 + <h3>
240.95 + January 18th, 2007
240.96 + </h3>
240.97 + <p>
240.98 + Today was more compositing code and all the additional alterations that
240.99 + come with it.
240.100 + </p>
240.101 + <p>
240.102 + <br />
240.103 + </p>
240.104 + </div>
240.105 + <div class="box">
240.106 + <h3>
240.107 + January 17th, 2007
240.108 + </h3>
240.109 + <p>
240.110 + I began compositing code from my prior experiments with variations on
240.111 + style into the current JavaScript.
240.112 + </p>
240.113 + <p>
240.114 + <br />
240.115 + </p>
240.116 + </div>
240.117 + <div class="box">
240.118 + <h3>
240.119 + January 16th, 2007
240.120 + </h3>
240.121 + <p>
240.122 + A few slight changes to each file were necessary to further
240.123 + cross-browser consistency when rendering some of the more advanced
240.124 + styling and positioning elements. After encountering these visual
240.125 + inconsistencies during testing and subsequently resolving them, the
240.126 + central elements of the page are approaching visual completion as
240.127 + development of the page's JavaScript continues to progress.
240.128 + </p>
240.129 + <p>
240.130 + <br />
240.131 + </p>
240.132 + </div>
240.133 + <div class="box">
240.134 + <h3>
240.135 + January 15th, 2007
240.136 + </h3>
240.137 + <p>
240.138 + Now that I have some visual feedback from the code to work with, I
240.139 + experimented with a few variations on its appearance and decided on a
240.140 + combination of stylistic elements to employ in an effort to maximize
240.141 + aesthetics, readability, and interface compactness for mobile devices.
240.142 + </p>
240.143 + <p>
240.144 + <br />
240.145 + </p>
240.146 + </div>
240.147 + <div class="box">
240.148 + <h3>
240.149 + January 14th, 2007
240.150 + </h3>
240.151 + <p>
240.152 + The page is improving visually and with consistent behavior across
240.153 + browsers, but there's still more work to be done.
240.154 + </p>
240.155 + <p>
240.156 + <br />
240.157 + </p>
240.158 + </div>
240.159 + <div class="box">
240.160 + <h3>
240.161 + January 13th, 2007
240.162 + </h3>
240.163 + <p>
240.164 + Today was more dynamic element positioning in JavaScript.
240.165 + </p>
240.166 + <p>
240.167 + <br />
240.168 + </p>
240.169 + </div>
240.170 + <div class="box">
240.171 + <h3>
240.172 + January 12th, 2007
240.173 + </h3>
240.174 + <p>
240.175 + Work on JavaScript continues. Dynamic element positioning is
240.176 + coming along nicely.
240.177 + </p>
240.178 + <p>
240.179 + <br />
240.180 + </p>
240.181 + </div>
240.182 + <div class="box">
240.183 + <h3>
240.184 + January 11th, 2007
240.185 + </h3>
240.186 + <p>
240.187 + I had to make some additional tweaks to the XHTML and its style sheet
240.188 + for better interoperability with the JavaScript as it develops
240.189 + further. Both the XHTML and JavaScript have been developed to be
240.190 + compatible with serving the XHTML as multiple MIME types. I'll
240.191 + have to make a few alterations to the server configuration in order to
240.192 + implement content negotiation. This way the page will be served
240.193 + as the MIME type that is best-suited for the current user's browser.
240.194 + </p>
240.195 + <p>
240.196 + <br />
240.197 + </p>
240.198 + </div>
240.199 + <div class="box">
240.200 + <h3>
240.201 + January 10th, 2007
240.202 + </h3>
240.203 + <p>
240.204 + The style sheet now validates without any warnings. This gives
240.205 + us: the back-end, the XHTML, and the cascading style sheet. Now
240.206 + it's time to begin adding the final component of this page: the
240.207 + JavaScript.
240.208 + </p>
240.209 + <p>
240.210 + Once JavaScript is finished for this page, I will have all the
240.211 + components necessary for a complete, working, and polished user-driven
240.212 + system module. It will set the standard for the other pages that
240.213 + also act as functional modules, and I should be able to take the new
240.214 + techniques employed and apply them throughout the site fairly quickly,
240.215 + since most pages aren't as complex as the current module.
240.216 + </p>
240.217 + <p>
240.218 + <br />
240.219 + </p>
240.220 + </div>
240.221 + <div class="box">
240.222 + <h3>
240.223 + January 9th, 2007
240.224 + </h3>
240.225 + <p>
240.226 + I've applied all the needed styling to elements of one of the more
240.227 + complex pages. It validates with no errors, but there are some
240.228 + warnings. I'll have to see about working those out tomorrow.
240.229 + </p>
240.230 + <p>
240.231 + <br />
240.232 + </p>
240.233 + </div>
240.234 + <div class="box">
240.235 + <h3>
240.236 + January 8th, 2007
240.237 + </h3>
240.238 + <p>
240.239 + I'm thrilled to say that my new approach was right on the money!
240.240 + Elements in the structural hierarchy of the page's code now translate
240.241 + to making full visual sense as well. And after a few tweaks, it's
240.242 + looking like page visual renderings will shape up to being more or less
240.243 + pixel-perfect reproductions from one browser to the next in its class.
240.244 + </p>
240.245 + <p>
240.246 + <br />
240.247 + </p>
240.248 + </div>
240.249 + <div class="box">
240.250 + <h3>
240.251 + January 7th, 2007
240.252 + </h3>
240.253 + <p>
240.254 + I spent the day experimenting with different approaches to developing a
240.255 + cross-browser style that could be implemented across all interos site
240.256 + content. I was met with varying degrees of success in each
240.257 + attempted implementation, but I think I'm starting to see some common
240.258 + threads. In the end, I wound up completely scrapping all the
240.259 + style work I'd put together today. But all is not lost, as I've
240.260 + learned a great deal from my experiments, and they're already giving me
240.261 + some ideas. I'm confident that after some rest, I can get a fresh
240.262 + start tomorrow on taking what I've learned and applying it to the new
240.263 + approach I'm beginning to formulate.
240.264 + </p>
240.265 + <p>
240.266 + <br />
240.267 + </p>
240.268 + </div>
240.269 + <div class="box">
240.270 + <h3>
240.271 + January 6th, 2007
240.272 + </h3>
240.273 + <p>
240.274 + Today I took care of some correspondence toward getting more
240.275 + development underway on web applications that integrate with the
240.276 + interos platform. I have some exciting prospects. I also
240.277 + spent some time bringing the blog up to date, and work will continue
240.278 + into the night with a concentration on getting this style sheet mess
240.279 + sorted out once and for all!
240.280 + </p>
240.281 + <p>
240.282 + <br />
240.283 + </p>
240.284 + </div>
240.285 + <div class="box">
240.286 + <h3>
240.287 + January 5th, 2007
240.288 + </h3>
240.289 + <p>
240.290 + Today I made a series of minor changes to each page on the site.
240.291 + It was time-consuming but necessary, and I'm glad it's out of the way
240.292 + now.
240.293 + </p>
240.294 + <p>
240.295 + <br />
240.296 + </p>
240.297 + </div>
240.298 + <div class="box">
240.299 + <h3>
240.300 + January 4th, 2007
240.301 + </h3>
240.302 + <p>
240.303 + Master control directory linking of style sheets continues.
240.304 + </p>
240.305 + <p>
240.306 + <br />
240.307 + </p>
240.308 + </div>
240.309 + <div class="box">
240.310 + <h3>
240.311 + January 3rd, 2007
240.312 + </h3>
240.313 + <p>
240.314 + I created a few of the new style sheets and began making link entries
240.315 + in the master control directory.
240.316 + </p>
240.317 + <p>
240.318 + <br />
240.319 + </p>
240.320 + </div>
240.321 + <div class="box">
240.322 + <h3>
240.323 + January 2nd, 2007
240.324 + </h3>
240.325 + <p>
240.326 + I began organizing style sheet elements into categories: elements to be
240.327 + applied globally across all pages containted on the site, elements to
240.328 + be applied only under certain circumstances, and elements to be applied
240.329 + by default in the absence of predefined circumstance.
240.330 + </p>
240.331 + <p>
240.332 + <br />
240.333 + </p>
240.334 + </div>
240.335 + <div class="box">
240.336 + <h3>
240.337 + January 1st, 2007
240.338 + </h3>
240.339 + <p>
240.340 + <strong>Happy New Year</strong> from <strong>interos</strong>!
240.341 + </p>
240.342 + <p>
240.343 + <br />
240.344 + </p>
240.345 + </div>
240.346 + <div class="box">
240.347 + <h3>
240.348 + December 31st, 2006
240.349 + </h3>
240.350 + <p>
240.351 + 2006 closes with the United States and international publications of
240.352 + the interos patent applications, interos code running properly on a
240.353 + genuine web server, and a public demo of interos well on its way.
240.354 + It was a big year for the fledgling interos project, and here's hoping
240.355 + that 2007 is even bigger!
240.356 + </p>
240.357 + <p>
240.358 + <br />
240.359 + </p>
240.360 + </div>
240.361 + <div class="box">
240.362 + <h3>
240.363 + December 30th, 2006
240.364 + </h3>
240.365 + <p>
240.366 + I've had a look at the style sheet situation, and I've gotten a feel
240.367 + for how styling would best be implemented across the sites.
240.368 + Structurally, it's a complete overhaul—but I have done a number
240.369 + of things correctly already, so I should be able to integrate my
240.370 + existing work into the new paradigm fairly quickly once restructuring
240.371 + is completed.
240.372 + </p>
240.373 + <p>
240.374 + <br />
240.375 + </p>
240.376 + </div>
240.377 + <div class="box">
240.378 + <h3>
240.379 + December 29th, 2006
240.380 + </h3>
240.381 + <p>
240.382 + I finished the changes, and the core modules to the operating
240.383 + environment are now working just fine with the new server
240.384 + configuration. Some style sheet work needs to be done in order
240.385 + for everything to make visual sense, but after that's completed and a
240.386 + few tweaks are made here and there, I should have something that I'm
240.387 + willing to link to from the demo page.
240.388 + </p>
240.389 + <p>
240.390 + <br />
240.391 + </p>
240.392 + </div>
240.393 + <div class="box">
240.394 + <h3>
240.395 + December 28th, 2006
240.396 + </h3>
240.397 + <p>
240.398 + I'm just about done with applying the required modifications to all of
240.399 + the modules of the system.
240.400 + </p>
240.401 + <p>
240.402 + <br />
240.403 + </p>
240.404 + </div>
240.405 + <div class="box">
240.406 + <h3>
240.407 + December 27th, 2006
240.408 + </h3>
240.409 + <p>
240.410 + I'm about half of the way through making necessary changes to system
240.411 + modules. Further work on it will continue tomorrow.
240.412 + </p>
240.413 + <p>
240.414 + <br />
240.415 + </p>
240.416 + </div>
240.417 + <div class="box">
240.418 + <h3>
240.419 + December 26th, 2006
240.420 + </h3>
240.421 + <p>
240.422 + I finished modifications to the next system module. I'll start on
240.423 + the others tomorrow.
240.424 + </p>
240.425 + <p>
240.426 + <br />
240.427 + </p>
240.428 + </div>
240.429 + <div class="box">
240.430 + <h3>
240.431 + December 25th, 2006
240.432 + </h3>
240.433 + <p>
240.434 + <strong>Merry Christmas</strong> from <strong>interos</strong>!
240.435 + </p>
240.436 + <p>
240.437 + <br />
240.438 + </p>
240.439 + </div>
240.440 + <div class="box">
240.441 + <h3>
240.442 + December 24th, 2006
240.443 + </h3>
240.444 + <p>
240.445 + With the holiday and all that comes with it, I only got the chance to
240.446 + start making changes to one of the other system modules. I'll be
240.447 + right back at it soon.
240.448 + </p>
240.449 + <p>
240.450 + <br />
240.451 + </p>
240.452 + </div>
240.453 + <div class="box">
240.454 + <h3>
240.455 + December 23rd, 2006
240.456 + </h3>
240.457 + <p>
240.458 + I completed modifications to the first back-end system module.
240.459 + After some testing and a couple quick changes, it's working just
240.460 + great! So I'm going to go ahead and start applying these changes
240.461 + to the other system modules.
240.462 + </p>
240.463 + <p>
240.464 + <br />
240.465 + </p>
240.466 + </div>
240.467 + <div class="box">
240.468 + <h3>
240.469 + December 22nd, 2006
240.470 + </h3>
240.471 + <p>
240.472 + Today I began extensive modifications to the interos environment
240.473 + back-end to get it working with the new server configuration.
240.474 + Changes were made to reflect the new directory hierarchy from when the
240.475 + master control directory was implemented. Memory allocation
240.476 + routines needed to be altered as well.
240.477 + </p>
240.478 + <p>
240.479 + <br />
240.480 + </p>
240.481 + </div>
240.482 + <div class="box">
240.483 + <h3>
240.484 + December 21st, 2006
240.485 + </h3>
240.486 + <p>
240.487 + I finished the changes to interos environment XHTML and started
240.488 + applying them to the back-end modules. The first module is
240.489 + outputting the new XHTML properly, but it appears the back-end needs
240.490 + some additional alterations in order to work with the new server
240.491 + configuration.
240.492 + </p>
240.493 + <p>
240.494 + <br />
240.495 + </p>
240.496 + </div>
240.497 + <div class="box">
240.498 + <h3>
240.499 + December 20th, 2006
240.500 + </h3>
240.501 + <p>
240.502 + The XHTML is starting to shape up as I'd intended. I should be
240.503 + finished with it tomorrow so I can begin applying this new XHTML format
240.504 + to the back-end.
240.505 + </p>
240.506 + <p>
240.507 + <br />
240.508 + </p>
240.509 + </div>
240.510 + <div class="box">
240.511 + <h3>
240.512 + December 19th, 2006
240.513 + </h3>
240.514 + <p>
240.515 + Today I began some necessary alterations to the XHTML that describes
240.516 + the interos user environment. Once I finish the changes, I can
240.517 + apply them to the back-end so that it dynamically outputs the user
240.518 + environment in the proper format.
240.519 + </p>
240.520 + <p>
240.521 + <br />
240.522 + </p>
240.523 + </div>
240.524 + <div class="box">
240.525 + <h3>
240.526 + December 18th, 2006
240.527 + </h3>
240.528 + <p>
240.529 + My birthday today was marked with the international publication of the
240.530 + patent application for interos. The United States patent
240.531 + application was published on November 29th.
240.532 + </p>
240.533 + <p>
240.534 + <br />
240.535 + </p>
240.536 + </div>
240.537 + <div class="box">
240.538 + <h3>
240.539 + December 17th, 2006
240.540 + </h3>
240.541 + <p>
240.542 + The back-end for logging in is now working. Next up is getting
240.543 + the code for the interos environment working.
240.544 + </p>
240.545 + <p>
240.546 + <br />
240.547 + </p>
240.548 + </div>
240.549 + <div class="box">
240.550 + <h3>
240.551 + December 16th, 2006
240.552 + </h3>
240.553 + <p>
240.554 + The code for the easy login back-end requires some additional changes
240.555 + in order to work with the new server configuration. I should be
240.556 + able to have them implemented by some point tomorrow.
240.557 + </p>
240.558 + <p>
240.559 + <br />
240.560 + </p>
240.561 + </div>
240.562 + <div class="box">
240.563 + <h3>
240.564 + December 15th, 2006
240.565 + </h3>
240.566 + <p>
240.567 + I finished interlinking the pages of the site to form a new and larger
240.568 + skeletal site structure. It's mostly just placeholder pages that
240.569 + are light on content, but that's the part that comes next. What
240.570 + I <em>have</em> done is made sure that <strong>things have a place to
240.571 + go</strong>. Beefing up content of these pages and adding a
240.572 + public demo of interos are my next main areas of concentration.
240.573 + </p>
240.574 + <p>
240.575 + <br />
240.576 + </p>
240.577 + </div>
240.578 + <div class="box">
240.579 + <h3>
240.580 + December 14th, 2006
240.581 + </h3>
240.582 + <p>
240.583 + I finished the master control directory linking and started
240.584 + interlinking the existing skeletal site content with the new expanded
240.585 + material.
240.586 + </p>
240.587 + <p>
240.588 + <br />
240.589 + </p>
240.590 + </div>
240.591 + <div class="box">
240.592 + <h3>
240.593 + December 13th, 2006
240.594 + </h3>
240.595 + <p>
240.596 + Today I did most of the necessary master control directory linking for
240.597 + the expanded site content.
240.598 + </p>
240.599 + <p>
240.600 + <br />
240.601 + </p>
240.602 + </div>
240.603 + <div class="box">
240.604 + <h3>
240.605 + December 12th, 2006
240.606 + </h3>
240.607 + <p>
240.608 + I've gotten a lot of work done toward expanding the site. Changes
240.609 + will start showing up as I start linking them together with current
240.610 + site content. I also performed a great many web server
240.611 + configuration tweaks to accommodate the expanded content and improve
240.612 + site behavior.
240.613 + </p>
240.614 + <p>
240.615 + <br />
240.616 + </p>
240.617 + </div>
240.618 + <div class="box">
240.619 + <h3>
240.620 + December 11th, 2006
240.621 + </h3>
240.622 + <p>
240.623 + Today I brought the blog up to date! Now that that's done, I'm
240.624 + going to go write more <strong>code</strong>.
240.625 + </p>
240.626 + <p>
240.627 + <br />
240.628 + </p>
240.629 + </div>
240.630 + <div class="box">
240.631 + <h3>
240.632 + December 10th, 2006
240.633 + </h3>
240.634 + <p>
240.635 + I did some more work in configuring the web server to execute interos
240.636 + back-end code.
240.637 + </p>
240.638 + <p>
240.639 + <br />
240.640 + </p>
240.641 + </div>
240.642 + <div class="box">
240.643 + <h3>
240.644 + December 9th, 2006
240.645 + </h3>
240.646 + <p>
240.647 + I had another meeting with intern Hardik V. Shah regarding
240.648 + <strong>Java</strong> code integration. Everything seems to be
240.649 + coming along well.
240.650 + </p>
240.651 + <p>
240.652 + <br />
240.653 + </p>
240.654 + </div>
240.655 + <div class="box">
240.656 + <h3>
240.657 + December 8th, 2006
240.658 + </h3>
240.659 + <p>
240.660 + Work on tying in the back-end continues...
240.661 + </p>
240.662 + <p>
240.663 + <br />
240.664 + </p>
240.665 + </div>
240.666 + <div class="box">
240.667 + <h3>
240.668 + December 7th, 2006
240.669 + </h3>
240.670 + <p>
240.671 + Today I continue work on back-end porting and testing.
240.672 + </p>
240.673 + <p>
240.674 + <br />
240.675 + </p>
240.676 + </div>
240.677 + <div class="box">
240.678 + <h3>
240.679 + December 6th, 2006
240.680 + </h3>
240.681 + <p>
240.682 + I started work porting the back-end to the server and modifying it to
240.683 + output XHTML in the new format.
240.684 + </p>
240.685 + <p>
240.686 + <br />
240.687 + </p>
240.688 + </div>
240.689 + <div class="box">
240.690 + <h3>
240.691 + December 5th, 2006
240.692 + </h3>
240.693 + <p>
240.694 + The new login form is completed. I'm currently repeating the
240.695 + process for the form for new users to create a login. I also
240.696 + started work to interface both forms with the back-end. I
240.697 + performed some additional code cleanup on various site pages as well.
240.698 + </p>
240.699 + <p>
240.700 + <br />
240.701 + </p>
240.702 + </div>
240.703 + <div class="box">
240.704 + <h3>
240.705 + December 4th, 2006
240.706 + </h3>
240.707 + <p>
240.708 + The first element necessary for the demo is the <strong>easy
240.709 + login</strong>. I took the existing code I developed for this and
240.710 + reimplemented it in the new standard format using one of the templates
240.711 + I created. I also made some modifications to improve
240.712 + accessibility. There's going to be a fair amount of this sort of
240.713 + post over the next week or so as I apply this process to the code I've
240.714 + developed for the other elements of the demo.
240.715 + </p>
240.716 + <p>
240.717 + <br />
240.718 + </p>
240.719 + </div>
240.720 + <div class="box">
240.721 + <h3>
240.722 + December 3rd, 2006
240.723 + </h3>
240.724 + <p>
240.725 + Today I started work on bringing the demo to the server. Once
240.726 + enough of it is in place, it will be <strong>accessible</strong> from
240.727 + the <a href="/demo">demo</a> section.
240.728 + </p>
240.729 + <p>
240.730 + <br />
240.731 + </p>
240.732 + </div>
240.733 + <div class="box">
240.734 + <h3>
240.735 + December 2nd, 2006
240.736 + </h3>
240.737 + <p>
240.738 + Tagging is now completed. I also started preparing the server for
240.739 + the next sections I have planned.
240.740 + </p>
240.741 + <p>
240.742 + <br />
240.743 + </p>
240.744 + </div>
240.745 + <div class="box">
240.746 + <h3>
240.747 + December 1st, 2006
240.748 + </h3>
240.749 + <p>
240.750 + I finally finished getting the last of everything on the server
240.751 + properly <strong>organized</strong>, and I've finished tagging most of
240.752 + it as well.
240.753 + </p>
240.754 + <p>
240.755 + <br />
240.756 + </p>
240.757 + </div>
240.758 + <div class="box">
240.759 + <h3>
240.760 + November 30th, 2006
240.761 + </h3>
240.762 + <p>
240.763 + Site skeletal layout is <strong>firmly in place</strong>, and all areas
240.764 + are <strong>well-defined</strong> parts of the overall
240.765 + <strong>structure.</strong> It's now time to begin fleshing out
240.766 + site content.
240.767 + </p>
240.768 + <p>
240.769 + <br />
240.770 + </p>
240.771 + </div>
240.772 + <div class="box">
240.773 + <h3>
240.774 + November 29th, 2006
240.775 + </h3>
240.776 + <p>
240.777 + I linked basic style sheets in a manner to maximize
240.778 + <strong>efficiency</strong> and site <strong>consistency</strong>.
240.779 + </p>
240.780 + <p>
240.781 + <br />
240.782 + </p>
240.783 + </div>
240.784 + <div class="box">
240.785 + <h3>
240.786 + November 28th, 2006
240.787 + </h3>
240.788 + <p>
240.789 + The audit of existing XHTML continues with an emphasis on
240.790 + <strong>semantic correctness</strong> in code.
240.791 + </p>
240.792 + <p>
240.793 + <br />
240.794 + </p>
240.795 + </div>
240.796 + <div class="box">
240.797 + <h3>
240.798 + November 27th, 2006
240.799 + </h3>
240.800 + <p>
240.801 + The aforementioned templates further establish a standard format for
240.802 + site content, so I started an audit of existing XHTML code by beginning
240.803 + to apply the precedents set forth in said templates. This will
240.804 + further maximize the <strong>compatibility</strong> and
240.805 + <strong>accessibility</strong> of interos.
240.806 + </p>
240.807 + <p>
240.808 + <br />
240.809 + </p>
240.810 + </div>
240.811 + <div class="box">
240.812 + <h3>
240.813 + November 26th, 2006
240.814 + </h3>
240.815 + <p>
240.816 + I created some <strong>templates</strong> for the next wave of content.
240.817 + </p>
240.818 + <p>
240.819 + <br />
240.820 + </p>
240.821 + </div>
240.822 + <div class="box">
240.823 + <h3>
240.824 + November 25th, 2006
240.825 + </h3>
240.826 + <p>
240.827 + Today brings some site <strong>updates</strong> and a meeting.
240.828 + </p>
240.829 + <p>
240.830 + <br />
240.831 + </p>
240.832 + </div>
240.833 + <div class="box">
240.834 + <h3>
240.835 + November 24th, 2006
240.836 + </h3>
240.837 + <p>
240.838 + The <strong>master control directory</strong> is now
240.839 + <strong>completed</strong>.
240.840 + </p>
240.841 + <p>
240.842 + <br />
240.843 + </p>
240.844 + </div>
240.845 + <div class="box">
240.846 + <h3>
240.847 + November 23rd, 2006
240.848 + </h3>
240.849 + <p>
240.850 + <strong>Happy Thanksgiving</strong> from <strong>interos</strong>!
240.851 + </p>
240.852 + <p>
240.853 + <br />
240.854 + </p>
240.855 + </div>
240.856 + <div class="box">
240.857 + <h3>
240.858 + November 22nd, 2006
240.859 + </h3>
240.860 + <p>
240.861 + The <strong>server configuration</strong> is now updated to reflect the
240.862 + changes from linking virtual hosts to a master control directory.
240.863 + </p>
240.864 + <p>
240.865 + <br />
240.866 + </p>
240.867 + </div>
240.868 + <div class="box">
240.869 + <h3>
240.870 + November 21st, 2006
240.871 + </h3>
240.872 + <p>
240.873 + After a great deal of experimenting, I figured out the <strong>best
240.874 + method</strong> for linking everything in a way that will both work and
240.875 + be easy to update. It took all day to implement, but now common
240.876 + address requests can easily be linked to the proper corresponding
240.877 + resources.
240.878 + </p>
240.879 + <p>
240.880 + <br />
240.881 + </p>
240.882 + </div>
240.883 + <div class="box">
240.884 + <h3>
240.885 + November 20th, 2006
240.886 + </h3>
240.887 + <p>
240.888 + I was having difficulty managing all the virtual hosts that define the
240.889 + interconnected sections of the interos site layout. Then I had
240.890 + the idea to implement a <strong>master control directory</strong>.
240.891 + </p>
240.892 + <p>
240.893 + <br />
240.894 + </p>
240.895 + </div>
240.896 + <div class="box">
240.897 + <h3>
240.898 + November 19th, 2006
240.899 + </h3>
240.900 + <p>
240.901 + Last night I mapped out a <strong>logical web filesystem
240.902 + layout</strong> to coincide with the aforementioned easy web
240.903 + addresses. I still have some more time today, so I have some odds
240.904 + and ends in mind to spend it working on. The sooner I get them
240.905 + out of the way, the sooner I can get to posting the exciting stuff.
240.906 + </p>
240.907 + <p>
240.908 + <br />
240.909 + </p>
240.910 + </div>
240.911 + <div class="box">
240.912 + <h3>
240.913 + November 18th, 2006
240.914 + </h3>
240.915 + <p>
240.916 + Today was various updates to site content, including a link to what an
240.917 + <strong><a
240.918 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
240.919 + operating system</a></strong> is.
240.920 + </p>
240.921 + <p>
240.922 + <br />
240.923 + </p>
240.924 + </div>
240.925 + <div class="box">
240.926 + <h3>
240.927 + November 17th, 2006
240.928 + </h3>
240.929 + <p>
240.930 + I've gone through and cleaned up most of the code, and I've established
240.931 + a <strong>standard format</strong> for delivering site content.
240.932 + </p>
240.933 + <p>
240.934 + <br />
240.935 + </p>
240.936 + </div>
240.937 + <div class="box">
240.938 + <h3>
240.939 + November 16th, 2006
240.940 + </h3>
240.941 + <p>
240.942 + The new configuration is working well, and I've been able to implement
240.943 + site-wide changes a lot faster. This is already leading to
240.944 + cleaner code and a more <strong>consistent look and feel</strong>.
240.945 + </p>
240.946 + <p>
240.947 + <br />
240.948 + </p>
240.949 + </div>
240.950 + <div class="box">
240.951 + <h3>
240.952 + November 15th, 2006
240.953 + </h3>
240.954 + <p>
240.955 + I've now finished enough work on the local systems that I can get
240.956 + started on <strong>rapid deployment</strong> of site content.
240.957 + </p>
240.958 + <p>
240.959 + <br />
240.960 + </p>
240.961 + </div>
240.962 + <div class="box">
240.963 + <h3>
240.964 + November 14th, 2006
240.965 + </h3>
240.966 + <p>
240.967 + Some changes to my <strong>development environment</strong> should make
240.968 + my work a lot <strong>easier</strong> from now on.
240.969 + </p>
240.970 + <p>
240.971 + <br />
240.972 + </p>
240.973 + </div>
240.974 + <div class="box">
240.975 + <h3>
240.976 + November 13th, 2006
240.977 + </h3>
240.978 + <p>
240.979 + Today was yet more work on the local <strong>development and
240.980 + testing</strong> servers. It's all coming along nicely, but it's
240.981 + a fair amount of work to assemble a specific server software framework
240.982 + on <strong>multiple platforms</strong> simultaneously.
240.983 + </p>
240.984 + <p>
240.985 + <br />
240.986 + </p>
240.987 + </div>
240.988 + <div class="box">
240.989 + <h3>
240.990 + November 12th, 2006
240.991 + </h3>
240.992 + <p>
240.993 + After running code through validators and making the appropriate
240.994 + alterations, interos now uses only <strong>valid CSS</strong> for
240.995 + maximum interoperability.
240.996 + </p>
240.997 + <p>
240.998 + <br />
240.999 + </p>
240.1000 + </div>
240.1001 + <div class="box">
240.1002 + <h3>
240.1003 + November 11th, 2006
240.1004 + </h3>
240.1005 + <p>
240.1006 + After running code through validators and making the appropriate
240.1007 + alterations, interos now uses only <strong>valid XHTML</strong> for
240.1008 + maximum interoperability.
240.1009 + </p>
240.1010 + <p>
240.1011 + <br />
240.1012 + </p>
240.1013 + </div>
240.1014 + <div class="box">
240.1015 + <h3>
240.1016 + November 10th, 2006
240.1017 + </h3>
240.1018 + <p>
240.1019 + Today I started work on new local development and testing servers to
240.1020 + speed up finalizing code for production and to serve as a
240.1021 + <strong>backup</strong>. interos uses only <strong>free</strong>
240.1022 + and <strong>open source</strong> software.
240.1023 + </p>
240.1024 + <p>
240.1025 + <br />
240.1026 + </p>
240.1027 + </div>
240.1028 + <div class="box">
240.1029 + <h3>
240.1030 + November 9th, 2006
240.1031 + </h3>
240.1032 + <p>
240.1033 + interos is now set up to have <strong>easy web addresses</strong>.
240.1034 + </p>
240.1035 + <p>
240.1036 + <br />
240.1037 + </p>
240.1038 + </div>
240.1039 + <div class="box">
240.1040 + <h3>
240.1041 + November 8th, 2006
240.1042 + </h3>
240.1043 + <p>
240.1044 + Today was a lot of <strong>correspondence</strong> regarding the design
240.1045 + goals of interos.
240.1046 + </p>
240.1047 + <p>
240.1048 + <br />
240.1049 + </p>
240.1050 + </div>
240.1051 + <div class="box">
240.1052 + <h3>
240.1053 + November 7th, 2006
240.1054 + </h3>
240.1055 + <p>
240.1056 + I met with Hardik Shah today to discuss the <strong>integration of
240.1057 + code</strong> that he, Rajdeep Bhowmik, Andrew Paroski and Amol
240.1058 + Panchabhai have developed.
240.1059 + </p>
240.1060 + <p>
240.1061 + <br />
240.1062 + </p>
240.1063 + </div>
240.1064 + <div class="box">
240.1065 + <h3>
240.1066 + November 6th, 2006
240.1067 + </h3>
240.1068 + <p>
240.1069 + I did a lot of work today to <strong>maximize accessibility and ease of
240.1070 + use</strong> of the forthcoming site content. I'm excited that
240.1071 + everything's going to work so nicely.
240.1072 + </p>
240.1073 + <p>
240.1074 + <br />
240.1075 + </p>
240.1076 + </div>
240.1077 + <div class="box">
240.1078 + <h3>
240.1079 + November 5th, 2006
240.1080 + </h3>
240.1081 + <p>
240.1082 + Today was about taking care of miscellaneous odds and ends. There
240.1083 + were various tweaks to configuration files and a few alterations to
240.1084 + <strong>file permissions for security</strong> while I restructured
240.1085 + some file hierarchies. The served content directories are
240.1086 + starting to feel a great deal more <strong>organized and
240.1087 + logical</strong>. This will make <strong>content
240.1088 + management</strong> a lot easier.
240.1089 + </p>
240.1090 + <p>
240.1091 + <br />
240.1092 + </p>
240.1093 + </div>
240.1094 + <div class="box">
240.1095 + <h3>
240.1096 + November 4th, 2006
240.1097 + </h3>
240.1098 + <p>
240.1099 + I took the time to set up some administrative <strong>e-mail</strong>
240.1100 + accounts on each domain. I also performed any necessary address
240.1101 + aliasing and/or forwarding. Now the sites have working
240.1102 + <a href="mailto:info@interos.com">contact</a> links.
240.1103 + </p>
240.1104 + <p>
240.1105 + <br />
240.1106 + </p>
240.1107 + </div>
240.1108 + <div class="box">
240.1109 + <h3>
240.1110 + November 3rd, 2006
240.1111 + </h3>
240.1112 + <p>
240.1113 + The interos sites are <strong>now secured</strong> using a free
240.1114 + multi-domain SSL/TLS certificate thanks to
240.1115 + <a href="http://www.cacert.org/">CAcert.org</a> and
240.1116 + <a href="http://guillaume.romagny.free.fr/evaldo/csr.sh">this
240.1117 + script</a>. Our sites leverage the strength of the AES-256
240.1118 + encryption algorithm for securing user data and a 1024-bit RSA key for
240.1119 + <strong>maximum browser compatibility</strong>. The web server
240.1120 + configuration and directory structures for site content have been
240.1121 + modified accordingly.
240.1122 + </p>
240.1123 + <p>
240.1124 + <br />
240.1125 + </p>
240.1126 + </div>
240.1127 + <div class="box">
240.1128 + <h3>
240.1129 + November 2nd, 2006
240.1130 + </h3>
240.1131 + <p>
240.1132 + I finished performing numerous <strong>optimizations</strong> to the
240.1133 + server system. The physical server was rebooted and everything
240.1134 + seems to be <strong>humming away nicely</strong>. I have some further
240.1135 + optimizations in mind, but I'll look into those some other time when
240.1136 + there isn't quite so much to be done!
240.1137 + </p>
240.1138 + <p>
240.1139 + <br />
240.1140 + </p>
240.1141 + </div>
240.1142 + <div class="box">
240.1143 + <h3>
240.1144 + November 1st, 2006
240.1145 + </h3>
240.1146 + <p>
240.1147 + The <strong>interos server is online</strong> and the
240.1148 + <a href="http://www.interos.com/">interos.com</a> and
240.1149 + <a href="http://interos.org/">interos.org</a> domain names have been
240.1150 + associated with it.
240.1151 + </p>
240.1152 + <p>
240.1153 + I've begun populating the sites with some <strong>rough skeletal
240.1154 + content</strong> in order to test the web server configuration.
240.1155 + This skeletal content also acts as a foundation for the content I
240.1156 + ultimately intend for these sites to contain. In addition, I've
240.1157 + started this <strong>daily blog</strong> as a continuing record of the
240.1158 + progress I've made and the goals that follow.
240.1159 + </p>
240.1160 + <p>
240.1161 + For a description of interos and its history so far, see the
240.1162 + <a href="/about">about</a> section as content is added to it.
240.1163 + </p>
240.1164 + <p>
240.1165 + <br />
240.1166 + </p>
240.1167 + </div>
240.1168 + <center>
240.1169 + <p id="copyrightDates">
240.1170 + © 2001–2009 interos
240.1171 + </p>
240.1172 + </center>
240.1173 + </body>
240.1174 + <!--=====================================================================-->
240.1175 + <!-- Copyright and Trademark Statement -->
240.1176 + <!--=====================================================================-->
240.1177 + <!-- -->
240.1178 + <!-- All original textual and graphical site content: -->
240.1179 + <!-- -->
240.1180 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
240.1181 + <!-- reserved. Reproduction in whole or in part without written -->
240.1182 + <!-- permission is prohibited. interos and the interos logos are -->
240.1183 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
240.1184 + <!-- product, and service names mentioned herein may be the properties -->
240.1185 + <!-- of their respective owners. Comments in the interos.org forums -->
240.1186 + <!-- are the properties of their respective authors. All software -->
240.1187 + <!-- developed in the forums is open source and belongs to everyone. -->
240.1188 + <!-- -->
240.1189 + <!--=====================================================================-->
240.1190 + <!-- e-mail: info@interos.com -->
240.1191 + <!--=====================================================================-->
240.1192 +</html>
241.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
241.2 +++ b/xhtml/page/blog_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
241.3 @@ -0,0 +1,1476 @@
241.4 +<?xml version="1.0" encoding="utf-8"?>
241.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
241.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
241.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
241.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
241.9 + <!--=================================================-->
241.10 + <!-- interos Standard Document Header - Markup -->
241.11 + <!--=================================================-->
241.12 + <!-- URIs: https://interos.com/blog -->
241.13 + <!-- https://blog.interos.com/ -->
241.14 + <!-- https://www.interos.com/blog -->
241.15 + <!-- Title: interos blog -->
241.16 + <!-- Author: Brent Angeline -->
241.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
241.18 + <!--=================================================-->
241.19 + <head>
241.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
241.21 + <meta name="title" content="interos blog" />
241.22 + <meta name="description" content="web log for interos" />
241.23 + <meta name="author" content="Brent Angeline" />
241.24 + <meta name="copyright"
241.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
241.26 + <meta name="robots" content="index, follow, archive" />
241.27 + <title>interos blog</title>
241.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
241.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
241.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
241.31 + media="screen, projection" />
241.32 + </head>
241.33 + <body id="body">
241.34 + <center>
241.35 + <p id="navigation">
241.36 + <a href="/about">about</a> |
241.37 + blog |
241.38 + <a href="/code">code</a> |
241.39 + <a href="/demo">demo</a> |
241.40 + <a href="/e-mail">e-mail</a> |
241.41 + <a href="/faq">f.a.q.</a> |
241.42 + <a href="/gear">gear</a> |
241.43 + <a href="https://www.interos.com/">home</a>
241.44 + </p>
241.45 + <table id="titlePanel">
241.46 + <thead>
241.47 + <tr>
241.48 + <th><center>
241.49 + <h1>
241.50 + <a href="https://blog.interos.com/">interos blog</a>
241.51 + </h1>
241.52 + <h2>
241.53 + by Brent Angeline
241.54 + </h2>
241.55 + </center></th>
241.56 + </tr>
241.57 + </thead>
241.58 + <tbody>
241.59 + <tr>
241.60 + <td><br /></td>
241.61 + </tr>
241.62 + </tbody>
241.63 + </table>
241.64 + </center>
241.65 + <div class="box">
241.66 + <h3>
241.67 + Current Status
241.68 + </h3>
241.69 + <p>
241.70 + interos is presently undergoing some big and exciting changes!
241.71 + I'll bring the blog up to date and fill in all the details of the past
241.72 + months' work as soon as this wave of development is complete.
241.73 + </p>
241.74 + <p>
241.75 + <br />
241.76 + </p>
241.77 + </div>
241.78 + <!--
241.79 + <div class="box">
241.80 + <h3>
241.81 + March 7th, 2007
241.82 + </h3>
241.83 + <p>
241.84 + correspondence
241.85 + </p>
241.86 + <p>
241.87 + <br />
241.88 + </p>
241.89 + </div>
241.90 + <div class="box">
241.91 + <h3>
241.92 + March 6th, 2007
241.93 + </h3>
241.94 + <p>
241.95 + completed style sheet for new cross-browser site-wide style
241.96 + </p>
241.97 + <p>
241.98 + <br />
241.99 + </p>
241.100 + </div>
241.101 + <div class="box">
241.102 + <h3>
241.103 + March 5th, 2007
241.104 + </h3>
241.105 + <p>
241.106 + style sheet
241.107 + resized background images
241.108 + </p>
241.109 + <p>
241.110 + <br />
241.111 + </p>
241.112 + </div>
241.113 + <div class="box">
241.114 + <h3>
241.115 + March 4th, 2007
241.116 + </h3>
241.117 + <p>
241.118 + style sheet
241.119 + resized background images
241.120 + </p>
241.121 + <p>
241.122 + <br />
241.123 + </p>
241.124 + </div>
241.125 + <div class="box">
241.126 + <h3>
241.127 + March 3rd, 2007
241.128 + </h3>
241.129 + <p>
241.130 + measured
241.131 + </p>
241.132 + <p>
241.133 + <br />
241.134 + </p>
241.135 + </div>
241.136 + <div class="box">
241.137 + <h3>
241.138 + March 2nd, 2007
241.139 + </h3>
241.140 + <p>
241.141 + style sheets and images
241.142 +
241.143 + </p>
241.144 + <p>
241.145 + <br />
241.146 + </p>
241.147 + </div>
241.148 + <div class="box">
241.149 + <h3>
241.150 + March 1st, 2007
241.151 + </h3>
241.152 + <p>
241.153 + web server configuration
241.154 +
241.155 + </p>
241.156 + <p>
241.157 + <br />
241.158 + </p>
241.159 + </div>
241.160 + <div class="box">
241.161 + <h3>
241.162 + February 28th, 2007
241.163 + </h3>
241.164 + <p>
241.165 + attended Southern Tier Linux Users Group meeting last night.
241.166 +
241.167 + </p>
241.168 + <p>
241.169 + <br />
241.170 + </p>
241.171 + </div>
241.172 + <div class="box">
241.173 + <h3>
241.174 + February 27th, 2007
241.175 + </h3>
241.176 + <p>
241.177 + ported and tested original demo code
241.178 + richer, more robust visual overview of interos for the meeting I plan
241.179 + on attending tonight
241.180 + </p>
241.181 + <p>
241.182 + <br />
241.183 + </p>
241.184 + </div>
241.185 + <div class="box">
241.186 + <h3>
241.187 + February 26th, 2007
241.188 + </h3>
241.189 + <p>
241.190 +
241.191 + correspondence
241.192 +
241.193 +
241.194 + </p>
241.195 + <p>
241.196 + <br />
241.197 + </p>
241.198 + </div>
241.199 + <div class="box">
241.200 + <h3>
241.201 + February 2nd, 2007
241.202 + </h3>
241.203 + <p>
241.204 + <strong>Happy Groundhog Day</strong> from <strong>interos</strong>!
241.205 +
241.206 + </p>
241.207 + <p>
241.208 + <br />
241.209 + </p>
241.210 + </div>
241.211 + <div class="box">
241.212 + <h3>
241.213 + February 1st, 2007
241.214 + </h3>
241.215 + <p>
241.216 +
241.217 + </p>
241.218 + <p>
241.219 + <br />
241.220 + </p>
241.221 + </div>
241.222 + <div class="box">
241.223 + <h3>
241.224 + January 30th, 2007
241.225 + </h3>
241.226 + <p>
241.227 +
241.228 + </p>
241.229 + <p>
241.230 + <br />
241.231 + </p>
241.232 + </div>
241.233 + <div class="box">
241.234 + <h3>
241.235 + January 29th, 2007
241.236 + </h3>
241.237 + <p>
241.238 + style
241.239 +
241.240 + </p>
241.241 + <p>
241.242 + <br />
241.243 + </p>
241.244 + </div>
241.245 + <div class="box">
241.246 + <h3>
241.247 + January 28th, 2007
241.248 + </h3>
241.249 + <p>
241.250 + style
241.251 +
241.252 + </p>
241.253 + <p>
241.254 + <br />
241.255 + </p>
241.256 + </div>
241.257 + <div class="box">
241.258 + <h3>
241.259 + January 27th, 2007
241.260 + </h3>
241.261 + <p>
241.262 + style
241.263 +
241.264 + </p>
241.265 + <p>
241.266 + <br />
241.267 + </p>
241.268 + </div>
241.269 + <div class="box">
241.270 + <h3>
241.271 + January 26th, 2007
241.272 + </h3>
241.273 + <p>
241.274 + ADSL modem
241.275 + network up
241.276 + </p>
241.277 + <p>
241.278 + <br />
241.279 + </p>
241.280 + </div>
241.281 + <div class="box">
241.282 + <h3>
241.283 + January 25th, 2007
241.284 + </h3>
241.285 + <p>
241.286 + network down
241.287 + the javascript had been coming along well
241.288 + not happy with style
241.289 + changing gears
241.290 + after meeting
241.291 + </p>
241.292 + <p>
241.293 + <br />
241.294 + </p>
241.295 + </div>
241.296 + <div class="box">
241.297 + <h3>
241.298 + January 24th, 2007
241.299 + </h3>
241.300 + <p>
241.301 + meeting
241.302 + network down
241.303 + up all night
241.304 + call
241.305 + rest
241.306 + look at it tomorrow
241.307 +
241.308 + </p>
241.309 + <p>
241.310 + <br />
241.311 + </p>
241.312 + </div>
241.313 + <div class="box">
241.314 + <h3>
241.315 + January 23rd, 2007
241.316 + </h3>
241.317 + <p>
241.318 + meeting tomorrow
241.319 + network
241.320 + </p>
241.321 + <p>
241.322 + <br />
241.323 + </p>
241.324 + </div>
241.325 + <div class="box">
241.326 + <h3>
241.327 + January 22nd, 2007
241.328 + </h3>
241.329 + <p>
241.330 + meeting
241.331 + run through the site and through the demo
241.332 + quick changes
241.333 + </p>
241.334 + <p>
241.335 + <br />
241.336 + </p>
241.337 + </div>
241.338 + -->
241.339 + <div class="box">
241.340 + <h3>
241.341 + January 21st, 2007
241.342 + </h3>
241.343 + <p>
241.344 + I added a number of the needed visual elements to the JavaScript
241.345 + dynamic layout engine. There are still more, plus there is also still
241.346 + the need for scripting of events upon interaction with each element.
241.347 + </p>
241.348 + <p>
241.349 + <br />
241.350 + </p>
241.351 + </div>
241.352 + <div class="box">
241.353 + <h3>
241.354 + January 20th, 2007
241.355 + </h3>
241.356 + <p>
241.357 + The results from the new cross-browser JavaScript for dynamic layout
241.358 + are starting to look as I intended, but there are still a few more
241.359 + visual elements that need to be added.
241.360 + </p>
241.361 + <p>
241.362 + <br />
241.363 + </p>
241.364 + </div>
241.365 + <div class="box">
241.366 + <h3>
241.367 + January 19th, 2007
241.368 + </h3>
241.369 + <p>
241.370 + Today I brought the blog up to date. I'll continue keeping daily
241.371 + log entries as I work, and I'll update them here online roughly weekly.
241.372 + </p>
241.373 + <p>
241.374 + Work on Javascript continues. . . .
241.375 + </p>
241.376 + <p>
241.377 + <br />
241.378 + </p>
241.379 + </div>
241.380 + <div class="box">
241.381 + <h3>
241.382 + January 18th, 2007
241.383 + </h3>
241.384 + <p>
241.385 + Today was more compositing code and all the additional alterations that
241.386 + come with it.
241.387 + </p>
241.388 + <p>
241.389 + <br />
241.390 + </p>
241.391 + </div>
241.392 + <div class="box">
241.393 + <h3>
241.394 + January 17th, 2007
241.395 + </h3>
241.396 + <p>
241.397 + I began compositing code from my prior experiments with variations on
241.398 + style into the current JavaScript.
241.399 + </p>
241.400 + <p>
241.401 + <br />
241.402 + </p>
241.403 + </div>
241.404 + <div class="box">
241.405 + <h3>
241.406 + January 16th, 2007
241.407 + </h3>
241.408 + <p>
241.409 + A few slight changes to each file were necessary to further
241.410 + cross-browser consistency when rendering some of the more advanced
241.411 + styling and positioning elements. After encountering these visual
241.412 + inconsistencies during testing and subsequently resolving them, the
241.413 + central elements of the page are approaching visual completion as
241.414 + development of the page's JavaScript continues to progress.
241.415 + </p>
241.416 + <p>
241.417 + <br />
241.418 + </p>
241.419 + </div>
241.420 + <div class="box">
241.421 + <h3>
241.422 + January 15th, 2007
241.423 + </h3>
241.424 + <p>
241.425 + Now that I have some visual feedback from the code to work with, I
241.426 + experimented with a few variations on its appearance and decided on a
241.427 + combination of stylistic elements to employ in an effort to maximize
241.428 + aesthetics, readability, and interface compactness for mobile devices.
241.429 + </p>
241.430 + <p>
241.431 + <br />
241.432 + </p>
241.433 + </div>
241.434 + <div class="box">
241.435 + <h3>
241.436 + January 14th, 2007
241.437 + </h3>
241.438 + <p>
241.439 + The page is improving visually and with consistent behavior across
241.440 + browsers, but there's still more work to be done.
241.441 + </p>
241.442 + <p>
241.443 + <br />
241.444 + </p>
241.445 + </div>
241.446 + <div class="box">
241.447 + <h3>
241.448 + January 13th, 2007
241.449 + </h3>
241.450 + <p>
241.451 + Today was more dynamic element positioning in JavaScript.
241.452 + </p>
241.453 + <p>
241.454 + <br />
241.455 + </p>
241.456 + </div>
241.457 + <div class="box">
241.458 + <h3>
241.459 + January 12th, 2007
241.460 + </h3>
241.461 + <p>
241.462 + Work on JavaScript continues. Dynamic element positioning is
241.463 + coming along nicely.
241.464 + </p>
241.465 + <p>
241.466 + <br />
241.467 + </p>
241.468 + </div>
241.469 + <div class="box">
241.470 + <h3>
241.471 + January 11th, 2007
241.472 + </h3>
241.473 + <p>
241.474 + I had to make some additional tweaks to the XHTML and its style sheet
241.475 + for better interoperability with the JavaScript as it develops
241.476 + further. Both the XHTML and JavaScript have been developed to be
241.477 + compatible with serving the XHTML as multiple MIME types. I'll
241.478 + have to make a few alterations to the server configuration in order to
241.479 + implement content negotiation. This way the page will be served
241.480 + as the MIME type that is best-suited for the current user's browser.
241.481 + </p>
241.482 + <p>
241.483 + <br />
241.484 + </p>
241.485 + </div>
241.486 + <div class="box">
241.487 + <h3>
241.488 + January 10th, 2007
241.489 + </h3>
241.490 + <p>
241.491 + The style sheet now validates without any warnings. This gives
241.492 + us: the back-end, the XHTML, and the cascading style sheet. Now
241.493 + it's time to begin adding the final component of this page: the
241.494 + JavaScript.
241.495 + </p>
241.496 + <p>
241.497 + Once JavaScript is finished for this page, I will have all the
241.498 + components necessary for a complete, working, and polished user-driven
241.499 + system module. It will set the standard for the other pages that
241.500 + also act as functional modules, and I should be able to take the new
241.501 + techniques employed and apply them throughout the site fairly quickly,
241.502 + since most pages aren't as complex as the current module.
241.503 + </p>
241.504 + <p>
241.505 + <br />
241.506 + </p>
241.507 + </div>
241.508 + <div class="box">
241.509 + <h3>
241.510 + January 9th, 2007
241.511 + </h3>
241.512 + <p>
241.513 + I've applied all the needed styling to elements of one of the more
241.514 + complex pages. It validates with no errors, but there are some
241.515 + warnings. I'll have to see about working those out tomorrow.
241.516 + </p>
241.517 + <p>
241.518 + <br />
241.519 + </p>
241.520 + </div>
241.521 + <div class="box">
241.522 + <h3>
241.523 + January 8th, 2007
241.524 + </h3>
241.525 + <p>
241.526 + I'm thrilled to say that my new approach was right on the money!
241.527 + Elements in the structural hierarchy of the page's code now translate
241.528 + to making full visual sense as well. And after a few tweaks, it's
241.529 + looking like page visual renderings will shape up to being more or less
241.530 + pixel-perfect reproductions from one browser to the next in its class.
241.531 + </p>
241.532 + </div>
241.533 + <div class="box">
241.534 + <p>
241.535 + <br />
241.536 + </p>
241.537 + <h3>
241.538 + January 7th, 2007
241.539 + </h3>
241.540 + <p>
241.541 + I spent the day experimenting with different approaches to developing a
241.542 + cross-browser style that could be implemented across all interos site
241.543 + content. I was met with varying degrees of success in each
241.544 + attempted implementation, but I think I'm starting to see some common
241.545 + threads. In the end, I wound up completely scrapping all the
241.546 + style work I'd put together today. But all is not lost, as I've
241.547 + learned a great deal from my experiments, and they're already giving me
241.548 + some ideas. I'm confident that after some rest, I can get a
241.549 + fresh start tomorrow on taking what I've learned and applying it to the
241.550 + new approach I'm beginning to formulate.
241.551 + </p>
241.552 + <p>
241.553 + <br />
241.554 + </p>
241.555 + </div>
241.556 + <div class="box">
241.557 + <h3>
241.558 + January 6th, 2007
241.559 + </h3>
241.560 + <p>
241.561 + Today I took care of some correspondence toward getting more
241.562 + development underway on web applications that integrate with the
241.563 + interos platform. I have some exciting prospects. I also
241.564 + spent some time bringing the blog up to date, and work will continue
241.565 + into the night with a concentration on getting this style sheet mess
241.566 + sorted out once and for all!
241.567 + </p>
241.568 + <p>
241.569 + <br />
241.570 + </p>
241.571 + </div>
241.572 + <div class="box">
241.573 + <h3>
241.574 + January 5th, 2007
241.575 + </h3>
241.576 + <p>
241.577 + Today I made a series of minor changes to each page on the site.
241.578 + It was time-consuming but necessary, and I'm glad it's out of the way
241.579 + now.
241.580 + </p>
241.581 + <p>
241.582 + <br />
241.583 + </p>
241.584 + </div>
241.585 + <div class="box">
241.586 + <h3>
241.587 + January 4th, 2007
241.588 + </h3>
241.589 + <p>
241.590 + Master control directory linking of style sheets continues.
241.591 + </p>
241.592 + <p>
241.593 + <br />
241.594 + </p>
241.595 + </div>
241.596 + <div class="box">
241.597 + <h3>
241.598 + January 3rd, 2007
241.599 + </h3>
241.600 + <p>
241.601 + I created a few of the new style sheets and began making link entries
241.602 + in the master control directory.
241.603 + </p>
241.604 + <p>
241.605 + <br />
241.606 + </p>
241.607 + </div>
241.608 + <div class="box">
241.609 + <h3>
241.610 + January 2nd, 2007
241.611 + </h3>
241.612 + <p>
241.613 + I began organizing style sheet elements into categories: elements to be
241.614 + applied globally across all pages containted on the site, elements to
241.615 + be applied only under certain circumstances, and elements to be applied
241.616 + by default in the absence of predefined circumstance.
241.617 + </p>
241.618 + <p>
241.619 + <br />
241.620 + </p>
241.621 + </div>
241.622 + <div class="box">
241.623 + <h3>
241.624 + January 1st, 2007
241.625 + </h3>
241.626 + <p>
241.627 + <strong>Happy New Year</strong> from <strong>interos</strong>!
241.628 + </p>
241.629 + <p>
241.630 + <br />
241.631 + </p>
241.632 + </div>
241.633 + <div class="box">
241.634 + <h3>
241.635 + December 31st, 2006
241.636 + </h3>
241.637 + <p>
241.638 + 2006 closes with the United States and international publications of
241.639 + the interos patent applications, interos code running properly on a
241.640 + genuine web server, and a public demo of interos well on its way.
241.641 + It was a big year for the fledgling interos project, and here's hoping
241.642 + that 2007 is even bigger!
241.643 + </p>
241.644 + <p>
241.645 + <br />
241.646 + </p>
241.647 + </div>
241.648 + <div class="box">
241.649 + <h3>
241.650 + December 30th, 2006
241.651 + </h3>
241.652 + <p>
241.653 + I've had a look at the style sheet situation, and I've gotten a feel
241.654 + for how styling would best be implemented across the sites.
241.655 + Structurally, it's a complete overhaul—but I have done a number
241.656 + of things correctly already, so I should be able to integrate my
241.657 + existing work into the new paradigm fairly quickly once restructuring
241.658 + is completed.
241.659 + </p>
241.660 + <p>
241.661 + <br />
241.662 + </p>
241.663 + </div>
241.664 + <div class="box">
241.665 + <h3>
241.666 + December 29th, 2006
241.667 + </h3>
241.668 + <p>
241.669 + I finished the changes, and the core modules to the operating
241.670 + environment are now working just fine with the new server
241.671 + configuration. Some style sheet work needs to be done in order
241.672 + for everything to make visual sense, but after that's completed and a
241.673 + few tweaks are made here and there, I should have something that I'm
241.674 + willing to link to from the demo page.
241.675 + </p>
241.676 + <p>
241.677 + <br />
241.678 + </p>
241.679 + </div>
241.680 + <div class="box">
241.681 + <h3>
241.682 + December 28th, 2006
241.683 + </h3>
241.684 + <p>
241.685 + I'm just about done with applying the required modifications to all of
241.686 + the modules of the system.
241.687 + </p>
241.688 + <p>
241.689 + <br />
241.690 + </p>
241.691 + </div>
241.692 + <div class="box">
241.693 + <h3>
241.694 + December 27th, 2006
241.695 + </h3>
241.696 + <p>
241.697 + I'm about half of the way through making necessary changes to system
241.698 + modules. Further work on it will continue tomorrow.
241.699 + </p>
241.700 + <p>
241.701 + <br />
241.702 + </p>
241.703 + </div>
241.704 + <div class="box">
241.705 + <h3>
241.706 + December 26th, 2006
241.707 + </h3>
241.708 + <p>
241.709 + I finished modifications to the next system module. I'll start on
241.710 + the others tomorrow.
241.711 + </p>
241.712 + <p>
241.713 + <br />
241.714 + </p>
241.715 + </div>
241.716 + <div class="box">
241.717 + <h3>
241.718 + December 25th, 2006
241.719 + </h3>
241.720 + <p>
241.721 + <strong>Merry Christmas</strong> from <strong>interos</strong>!
241.722 + </p>
241.723 + <p>
241.724 + <br />
241.725 + </p>
241.726 + </div>
241.727 + <div class="box">
241.728 + <h3>
241.729 + December 24th, 2006
241.730 + </h3>
241.731 + <p>
241.732 + With the holiday and all that comes with it, I only got the chance to
241.733 + start making changes to one of the other system modules. I'll be
241.734 + right back at it soon.
241.735 + </p>
241.736 + <p>
241.737 + <br />
241.738 + </p>
241.739 + </div>
241.740 + <div class="box">
241.741 + <h3>
241.742 + December 23rd, 2006
241.743 + </h3>
241.744 + <p>
241.745 + I completed modifications to the first back-end system module.
241.746 + After some testing and a couple quick changes, it's working just
241.747 + great! So I'm going to go ahead and start applying these changes
241.748 + to the other system modules.
241.749 + </p>
241.750 + <p>
241.751 + <br />
241.752 + </p>
241.753 + </div>
241.754 + <div class="box">
241.755 + <h3>
241.756 + December 22nd, 2006
241.757 + </h3>
241.758 + <p>
241.759 + Today I began extensive modifications to the interos environment
241.760 + back-end to get it working with the new server configuration.
241.761 + Changes were made to reflect the new directory hierarchy from when the
241.762 + master control directory was implemented. Memory allocation
241.763 + routines needed to be altered as well.
241.764 + </p>
241.765 + <p>
241.766 + <br />
241.767 + </p>
241.768 + </div>
241.769 + <div class="box">
241.770 + <h3>
241.771 + December 21st, 2006
241.772 + </h3>
241.773 + <p>
241.774 + I finished the changes to interos environment XHTML and started
241.775 + applying them to the back-end modules. The first module is
241.776 + outputting the new XHTML properly, but it appears the back-end needs
241.777 + some additional alterations in order to work with the new server
241.778 + configuration.
241.779 + </p>
241.780 + <p>
241.781 + <br />
241.782 + </p>
241.783 + </div>
241.784 + <div class="box">
241.785 + <h3>
241.786 + December 20th, 2006
241.787 + </h3>
241.788 + <p>
241.789 + The XHTML is starting to shape up as I'd intended. I should be
241.790 + finished with it tomorrow so I can begin applying this new XHTML format
241.791 + to the back-end.
241.792 + </p>
241.793 + <p>
241.794 + <br />
241.795 + </p>
241.796 + </div>
241.797 + <div class="box">
241.798 + <h3>
241.799 + December 19th, 2006
241.800 + </h3>
241.801 + <p>
241.802 + Today I began some necessary alterations to the XHTML that describes
241.803 + the interos user environment. Once I finish the changes, I can
241.804 + apply them to the back-end so that it dynamically outputs the user
241.805 + environment in the proper format.
241.806 + </p>
241.807 + <p>
241.808 + <br />
241.809 + </p>
241.810 + </div>
241.811 + <div class="box">
241.812 + <h3>
241.813 + December 18th, 2006
241.814 + </h3>
241.815 + <p>
241.816 + My birthday today was marked with the international publication of the
241.817 + patent application for interos. The United States patent
241.818 + application was published on November 29th.
241.819 + </p>
241.820 + <p>
241.821 + <br />
241.822 + </p>
241.823 + </div>
241.824 + <div class="box">
241.825 + <h3>
241.826 + December 17th, 2006
241.827 + </h3>
241.828 + <p>
241.829 + The back-end for logging in is now working. Next up is getting
241.830 + the code for the interos environment working.
241.831 + </p>
241.832 + <p>
241.833 + <br />
241.834 + </p>
241.835 + </div>
241.836 + <div class="box">
241.837 + <h3>
241.838 + December 16th, 2006
241.839 + </h3>
241.840 + <p>
241.841 + The code for the easy login back-end requires some additional changes
241.842 + in order to work with the new server configuration. I should be
241.843 + able to have them implemented by some point tomorrow.
241.844 + </p>
241.845 + <p>
241.846 + <br />
241.847 + </p>
241.848 + </div>
241.849 + <div class="box">
241.850 + <h3>
241.851 + December 15th, 2006
241.852 + </h3>
241.853 + <p>
241.854 + I finished interlinking the pages of the site to form a new and larger
241.855 + skeletal site structure. It's mostly just placeholder pages that
241.856 + are light on content, but that's the part that comes next. What
241.857 + I <em>have</em> done is made sure that <strong>things have a place to
241.858 + go</strong>. Beefing up content of these pages and adding a
241.859 + public demo of interos are my next main areas of concentration.
241.860 + </p>
241.861 + <p>
241.862 + <br />
241.863 + </p>
241.864 + </div>
241.865 + <div class="box">
241.866 + <h3>
241.867 + December 14th, 2006
241.868 + </h3>
241.869 + <p>
241.870 + I finished the master control directory linking and started
241.871 + interlinking the existing skeletal site content with the new expanded
241.872 + material.
241.873 + </p>
241.874 + <p>
241.875 + <br />
241.876 + </p>
241.877 + </div>
241.878 + <div class="box">
241.879 + <h3>
241.880 + December 13th, 2006
241.881 + </h3>
241.882 + <p>
241.883 + Today I did most of the necessary master control directory linking for
241.884 + the expanded site content.
241.885 + </p>
241.886 + <p>
241.887 + <br />
241.888 + </p>
241.889 + </div>
241.890 + <div class="box">
241.891 + <h3>
241.892 + December 12th, 2006
241.893 + </h3>
241.894 + <p>
241.895 + I've gotten a lot of work done toward expanding the site. Changes
241.896 + will start showing up as I start linking them together with current
241.897 + site content. I also performed a great many web server
241.898 + configuration tweaks to accommodate the expanded content and improve
241.899 + site behavior.
241.900 + </p>
241.901 + <p>
241.902 + <br />
241.903 + </p>
241.904 + </div>
241.905 + <div class="box">
241.906 + <h3>
241.907 + December 11th, 2006
241.908 + </h3>
241.909 + <p>
241.910 + Today I brought the blog up to date! Now that that's done, I'm
241.911 + going to go write more <strong>code</strong>.
241.912 + </p>
241.913 + <p>
241.914 + <br />
241.915 + </p>
241.916 + </div>
241.917 + <div class="box">
241.918 + <h3>
241.919 + December 10th, 2006
241.920 + </h3>
241.921 + <p>
241.922 + I did some more work in configuring the web server to execute interos
241.923 + back-end code.
241.924 + </p>
241.925 + <p>
241.926 + <br />
241.927 + </p>
241.928 + </div>
241.929 + <div class="box">
241.930 + <h3>
241.931 + December 9th, 2006
241.932 + </h3>
241.933 + <p>
241.934 + I had another meeting with intern Hardik V. Shah regarding
241.935 + <strong>Java</strong> code integration. Everything seems to be
241.936 + coming along well.
241.937 + </p>
241.938 + <p>
241.939 + <br />
241.940 + </p>
241.941 + </div>
241.942 + <div class="box">
241.943 + <h3>
241.944 + December 8th, 2006
241.945 + </h3>
241.946 + <p>
241.947 + Work on tying in the back-end continues...
241.948 + </p>
241.949 + <p>
241.950 + <br />
241.951 + </p>
241.952 + </div>
241.953 + <div class="box">
241.954 + <h3>
241.955 + December 7th, 2006
241.956 + </h3>
241.957 + <p>
241.958 + Today I continue work on back-end porting and testing.
241.959 + </p>
241.960 + <p>
241.961 + <br />
241.962 + </p>
241.963 + </div>
241.964 + <div class="box">
241.965 + <h3>
241.966 + December 6th, 2006
241.967 + </h3>
241.968 + <p>
241.969 + I started work porting the back-end to the server and modifying it to
241.970 + output XHTML in the new format.
241.971 + </p>
241.972 + <p>
241.973 + <br />
241.974 + </p>
241.975 + </div>
241.976 + <div class="box">
241.977 + <h3>
241.978 + December 5th, 2006
241.979 + </h3>
241.980 + <p>
241.981 + The new login form is completed. I'm currently repeating the
241.982 + process for the form for new users to create a login. I also
241.983 + started work to interface both forms with the back-end. I
241.984 + performed some additional code cleanup on various site pages as well.
241.985 + </p>
241.986 + <p>
241.987 + <br />
241.988 + </p>
241.989 + </div>
241.990 + <div class="box">
241.991 + <h3>
241.992 + December 4th, 2006
241.993 + </h3>
241.994 + <p>
241.995 + The first element necessary for the demo is the <strong>easy
241.996 + login</strong>. I took the existing code I developed for this and
241.997 + reimplemented it in the new standard format using one of the templates
241.998 + I created. I also made some modifications to improve
241.999 + accessibility. There's going to be a fair amount of this sort of
241.1000 + post over the next week or so as I apply this process to the code I've
241.1001 + developed for the other elements of the demo.
241.1002 + </p>
241.1003 + <p>
241.1004 + <br />
241.1005 + </p>
241.1006 + </div>
241.1007 + <div class="box">
241.1008 + <h3>
241.1009 + December 3rd, 2006
241.1010 + </h3>
241.1011 + <p>
241.1012 + Today I started work on bringing the demo to the server. Once
241.1013 + enough of it is in place, it will be <strong>accessible</strong> from
241.1014 + the <a href="/demo">demo</a> section.
241.1015 + </p>
241.1016 + <p>
241.1017 + <br />
241.1018 + </p>
241.1019 + </div>
241.1020 + <div class="box">
241.1021 + <h3>
241.1022 + December 2nd, 2006
241.1023 + </h3>
241.1024 + <p>
241.1025 + Tagging is now completed. I also started preparing the server for
241.1026 + the next sections I have planned.
241.1027 + </p>
241.1028 + <p>
241.1029 + <br />
241.1030 + </p>
241.1031 + </div>
241.1032 + <div class="box">
241.1033 + <h3>
241.1034 + December 1st, 2006
241.1035 + </h3>
241.1036 + <p>
241.1037 + I finally finished getting the last of everything on the server
241.1038 + properly <strong>organized</strong>, and I've finished tagging most of
241.1039 + it as well.
241.1040 + </p>
241.1041 + <p>
241.1042 + <br />
241.1043 + </p>
241.1044 + </div>
241.1045 + <div class="box">
241.1046 + <h3>
241.1047 + November 30th, 2006
241.1048 + </h3>
241.1049 + <p>
241.1050 + Site skeletal layout is <strong>firmly in place</strong>, and all areas
241.1051 + are <strong>well-defined</strong> parts of the overall
241.1052 + <strong>structure.</strong> It's now time to begin fleshing out
241.1053 + site content.
241.1054 + </p>
241.1055 + <p>
241.1056 + <br />
241.1057 + </p>
241.1058 + </div>
241.1059 + <div class="box">
241.1060 + <h3>
241.1061 + November 29th, 2006
241.1062 + </h3>
241.1063 + <p>
241.1064 + I linked basic style sheets in a manner to maximize
241.1065 + <strong>efficiency</strong> and site <strong>consistency</strong>.
241.1066 + </p>
241.1067 + <p>
241.1068 + <br />
241.1069 + </p>
241.1070 + </div>
241.1071 + <div class="box">
241.1072 + <h3>
241.1073 + November 28th, 2006
241.1074 + </h3>
241.1075 + <p>
241.1076 + The audit of existing XHTML continues with an emphasis on
241.1077 + <strong>semantic correctness</strong> in code.
241.1078 + </p>
241.1079 + <p>
241.1080 + <br />
241.1081 + </p>
241.1082 + </div>
241.1083 + <div class="box">
241.1084 + <h3>
241.1085 + November 27th, 2006
241.1086 + </h3>
241.1087 + <p>
241.1088 + The aforementioned templates further establish a standard format for
241.1089 + site content, so I started an audit of existing XHTML code by beginning
241.1090 + to apply the precedents set forth in said templates. This will
241.1091 + further maximize the <strong>compatibility</strong> and
241.1092 + <strong>accessibility</strong> of interos.
241.1093 + </p>
241.1094 + <p>
241.1095 + <br />
241.1096 + </p>
241.1097 + </div>
241.1098 + <div class="box">
241.1099 + <h3>
241.1100 + November 26th, 2006
241.1101 + </h3>
241.1102 + <p>
241.1103 + I created some <strong>templates</strong> for the next wave of content.
241.1104 + </p>
241.1105 + <p>
241.1106 + <br />
241.1107 + </p>
241.1108 + </div>
241.1109 + <div class="box">
241.1110 + <h3>
241.1111 + November 25th, 2006
241.1112 + </h3>
241.1113 + <p>
241.1114 + Today brings some site <strong>updates</strong> and a meeting.
241.1115 + </p>
241.1116 + <p>
241.1117 + <br />
241.1118 + </p>
241.1119 + </div>
241.1120 + <div class="box">
241.1121 + <h3>
241.1122 + November 24th, 2006
241.1123 + </h3>
241.1124 + <p>
241.1125 + The <strong>master control directory</strong> is now
241.1126 + <strong>completed</strong>.
241.1127 + </p>
241.1128 + <p>
241.1129 + <br />
241.1130 + </p>
241.1131 + </div>
241.1132 + <div class="box">
241.1133 + <h3>
241.1134 + November 23rd, 2006
241.1135 + </h3>
241.1136 + <p>
241.1137 + <strong>Happy Thanksgiving</strong> from <strong>interos</strong>!
241.1138 + </p>
241.1139 + <p>
241.1140 + <br />
241.1141 + </p>
241.1142 + </div>
241.1143 + <div class="box">
241.1144 + <h3>
241.1145 + November 22nd, 2006
241.1146 + </h3>
241.1147 + <p>
241.1148 + The <strong>server configuration</strong> is now updated to reflect the
241.1149 + changes from linking virtual hosts to a master control directory.
241.1150 + </p>
241.1151 + <p>
241.1152 + <br />
241.1153 + </p>
241.1154 + </div>
241.1155 + <div class="box">
241.1156 + <h3>
241.1157 + November 21st, 2006
241.1158 + </h3>
241.1159 + <p>
241.1160 + After a great deal of experimenting, I figured out the <strong>best
241.1161 + method</strong> for linking everything in a way that will both work and
241.1162 + be easy to update. It took all day to implement, but now common
241.1163 + address requests can easily be linked to the proper corresponding
241.1164 + resources.
241.1165 + </p>
241.1166 + <p>
241.1167 + <br />
241.1168 + </p>
241.1169 + </div>
241.1170 + <div class="box">
241.1171 + <h3>
241.1172 + November 20th, 2006
241.1173 + </h3>
241.1174 + <p>
241.1175 + I was having difficulty managing all the virtual hosts that define the
241.1176 + interconnected sections of the interos site layout. Then I had
241.1177 + the idea to implement a <strong>master control directory</strong>.
241.1178 + </p>
241.1179 + <p>
241.1180 + <br />
241.1181 + </p>
241.1182 + </div>
241.1183 + <div class="box">
241.1184 + <h3>
241.1185 + November 19th, 2006
241.1186 + </h3>
241.1187 + <p>
241.1188 + Last night I mapped out a <strong>logical web filesystem
241.1189 + layout</strong> to coincide with the aforementioned easy web
241.1190 + addresses. I still have some more time today, so I have some odds
241.1191 + and ends in mind to spend it working on. The sooner I get them
241.1192 + out of the way, the sooner I can get to posting the exciting stuff.
241.1193 + </p>
241.1194 + <p>
241.1195 + <br />
241.1196 + </p>
241.1197 + </div>
241.1198 + <div class="box">
241.1199 + <h3>
241.1200 + November 18th, 2006
241.1201 + </h3>
241.1202 + <p>
241.1203 + Today was various updates to site content, including a link to what an
241.1204 + <strong><a
241.1205 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
241.1206 + operating system</a></strong> is.
241.1207 + </p>
241.1208 + <p>
241.1209 + <br />
241.1210 + </p>
241.1211 + </div>
241.1212 + <div class="box">
241.1213 + <h3>
241.1214 + November 17th, 2006
241.1215 + </h3>
241.1216 + <p>
241.1217 + I've gone through and cleaned up most of the code, and I've established
241.1218 + a <strong>standard format</strong> for delivering site content.
241.1219 + </p>
241.1220 + <p>
241.1221 + <br />
241.1222 + </p>
241.1223 + </div>
241.1224 + <div class="box">
241.1225 + <h3>
241.1226 + November 16th, 2006
241.1227 + </h3>
241.1228 + <p>
241.1229 + The new configuration is working well, and I've been able to implement
241.1230 + site-wide changes a lot faster. This is already leading to
241.1231 + cleaner code and a more <strong>consistent look and feel</strong>.
241.1232 + </p>
241.1233 + <p>
241.1234 + <br />
241.1235 + </p>
241.1236 + </div>
241.1237 + <div class="box">
241.1238 + <h3>
241.1239 + November 15th, 2006
241.1240 + </h3>
241.1241 + <p>
241.1242 + I've now finished enough work on the local systems that I can get
241.1243 + started on <strong>rapid deployment</strong> of site content.
241.1244 + </p>
241.1245 + <p>
241.1246 + <br />
241.1247 + </p>
241.1248 + </div>
241.1249 + <div class="box">
241.1250 + <h3>
241.1251 + November 14th, 2006
241.1252 + </h3>
241.1253 + <p>
241.1254 + Some changes to my <strong>development environment</strong> should make
241.1255 + my work a lot <strong>easier</strong> from now on.
241.1256 + </p>
241.1257 + <p>
241.1258 + <br />
241.1259 + </p>
241.1260 + </div>
241.1261 + <div class="box">
241.1262 + <h3>
241.1263 + November 13th, 2006
241.1264 + </h3>
241.1265 + <p>
241.1266 + Today was yet more work on the local <strong>development and
241.1267 + testing</strong> servers. It's all coming along nicely, but it's
241.1268 + a fair amount of work to assemble a specific server software framework
241.1269 + on <strong>multiple platforms</strong> simultaneously.
241.1270 + </p>
241.1271 + <p>
241.1272 + <br />
241.1273 + </p>
241.1274 + </div>
241.1275 + <div class="box">
241.1276 + <h3>
241.1277 + November 12th, 2006
241.1278 + </h3>
241.1279 + <p>
241.1280 + After running code through validators and making the appropriate
241.1281 + alterations, interos now uses only <strong>valid CSS</strong> for
241.1282 + maximum interoperability.
241.1283 + </p>
241.1284 + <p>
241.1285 + <br />
241.1286 + </p>
241.1287 + </div>
241.1288 + <div class="box">
241.1289 + <h3>
241.1290 + November 11th, 2006
241.1291 + </h3>
241.1292 + <p>
241.1293 + After running code through validators and making the appropriate
241.1294 + alterations, interos now uses only <strong>valid XHTML</strong> for
241.1295 + maximum interoperability.
241.1296 + </p>
241.1297 + <p>
241.1298 + <br />
241.1299 + </p>
241.1300 + </div>
241.1301 + <div class="box">
241.1302 + <h3>
241.1303 + November 10th, 2006
241.1304 + </h3>
241.1305 + <p>
241.1306 + Today I started work on new local development and testing servers to
241.1307 + speed up finalizing code for production and to serve as a
241.1308 + <strong>backup</strong>. interos uses only <strong>free</strong>
241.1309 + and <strong>open source</strong> software.
241.1310 + </p>
241.1311 + <p>
241.1312 + <br />
241.1313 + </p>
241.1314 + </div>
241.1315 + <div class="box">
241.1316 + <h3>
241.1317 + November 9th, 2006
241.1318 + </h3>
241.1319 + <p>
241.1320 + interos is now set up to have <strong>easy web addresses</strong>.
241.1321 + </p>
241.1322 + <p>
241.1323 + <br />
241.1324 + </p>
241.1325 + </div>
241.1326 + <div class="box">
241.1327 + <h3>
241.1328 + November 8th, 2006
241.1329 + </h3>
241.1330 + <p>
241.1331 + Today was a lot of <strong>correspondence</strong> regarding the design
241.1332 + goals of interos.
241.1333 + </p>
241.1334 + <p>
241.1335 + <br />
241.1336 + </p>
241.1337 + </div>
241.1338 + <div class="box">
241.1339 + <h3>
241.1340 + November 7th, 2006
241.1341 + </h3>
241.1342 + <p>
241.1343 + I met with Hardik Shah today to discuss the <strong>integration of
241.1344 + code</strong> that he, Rajdeep Bhowmik, Andrew Paroski and Amol
241.1345 + Panchabhai have developed.
241.1346 + </p>
241.1347 + <p>
241.1348 + <br />
241.1349 + </p>
241.1350 + </div>
241.1351 + <div class="box">
241.1352 + <h3>
241.1353 + November 6th, 2006
241.1354 + </h3>
241.1355 + <p>
241.1356 + I did a lot of work today to <strong>maximize accessibility and ease of
241.1357 + use</strong> of the forthcoming site content. I'm excited that
241.1358 + everything's going to work so nicely.
241.1359 + </p>
241.1360 + <p>
241.1361 + <br />
241.1362 + </p>
241.1363 + </div>
241.1364 + <div class="box">
241.1365 + <h3>
241.1366 + November 5th, 2006
241.1367 + </h3>
241.1368 + <p>
241.1369 + Today was about taking care of miscellaneous odds and ends. There
241.1370 + were various tweaks to configuration files and a few alterations to
241.1371 + <strong>file permissions for security</strong> while I restructured
241.1372 + some file hierarchies. The served content directories are
241.1373 + starting to feel a great deal more <strong>organized and
241.1374 + logical</strong>. This will make <strong>content
241.1375 + management</strong> a lot easier.
241.1376 + </p>
241.1377 + <p>
241.1378 + <br />
241.1379 + </p>
241.1380 + </div>
241.1381 + <div class="box">
241.1382 + <h3>
241.1383 + November 4th, 2006
241.1384 + </h3>
241.1385 + <p>
241.1386 + I took the time to set up some administrative <strong>e-mail</strong>
241.1387 + accounts on each domain. I also performed any necessary address
241.1388 + aliasing and/or forwarding. Now the sites have working
241.1389 + <a href="mailto:info@interos.com">contact</a> links.
241.1390 + </p>
241.1391 + <p>
241.1392 + <br />
241.1393 + </p>
241.1394 + </div>
241.1395 + <div class="box">
241.1396 + <h3>
241.1397 + November 3rd, 2006
241.1398 + </h3>
241.1399 + <p>
241.1400 + The interos sites are <strong>now secured</strong> using a free
241.1401 + multi-domain SSL/TLS certificate thanks to
241.1402 + <a href="http://www.cacert.org/">CAcert.org</a> and
241.1403 + <a href="http://guillaume.romagny.free.fr/evaldo/csr.sh">this
241.1404 + script</a>. Our sites leverage the strength of the AES-256
241.1405 + encryption algorithm for securing user data and a 1024-bit RSA key for
241.1406 + <strong>maximum browser compatibility</strong>. The web server
241.1407 + configuration and directory structures for site content have been
241.1408 + modified accordingly.
241.1409 + </p>
241.1410 + <p>
241.1411 + <br />
241.1412 + </p>
241.1413 + </div>
241.1414 + <div class="box">
241.1415 + <h3>
241.1416 + November 2nd, 2006
241.1417 + </h3>
241.1418 + <p>
241.1419 + I finished performing numerous <strong>optimizations</strong> to the
241.1420 + server system. The physical server was rebooted and everything
241.1421 + seems to be <strong>humming away nicely</strong>. I have some further
241.1422 + optimizations in mind, but I'll look into those some other time when
241.1423 + there isn't quite so much to be done!
241.1424 + </p>
241.1425 + <p>
241.1426 + <br />
241.1427 + </p>
241.1428 + </div>
241.1429 + <div class="box">
241.1430 + <h3>
241.1431 + November 1st, 2006
241.1432 + </h3>
241.1433 + <p>
241.1434 + The <strong>interos server is online</strong> and the
241.1435 + <a href="https://www.interos.com/">interos.com</a> and
241.1436 + <a href="https://interos.org/">interos.org</a> domain names have been
241.1437 + associated with it.
241.1438 + </p>
241.1439 + <p>
241.1440 + I've begun populating the sites with some <strong>rough skeletal
241.1441 + content</strong> in order to test the web server configuration.
241.1442 + This skeletal content also acts as a foundation for the content I
241.1443 + ultimately intend for these sites to contain. In addition, I've
241.1444 + started this <strong>daily blog</strong> as a continuing record of the
241.1445 + progress I've made and the goals that follow.
241.1446 + </p>
241.1447 + <p>
241.1448 + For a description of interos and its history so far, see the
241.1449 + <a href="/about">about</a> section as content is added to it.
241.1450 + </p>
241.1451 + <p>
241.1452 + <br />
241.1453 + </p>
241.1454 + </div>
241.1455 + <center>
241.1456 + <p id="copyrightDates">
241.1457 + © 2001–2009 interos
241.1458 + </p>
241.1459 + </center>
241.1460 + </body>
241.1461 + <!--=====================================================================-->
241.1462 + <!-- Copyright and Trademark Statement -->
241.1463 + <!--=====================================================================-->
241.1464 + <!-- -->
241.1465 + <!-- All original textual and graphical site content: -->
241.1466 + <!-- -->
241.1467 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
241.1468 + <!-- reserved. Reproduction in whole or in part without written -->
241.1469 + <!-- permission is prohibited. interos and the interos logos are -->
241.1470 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
241.1471 + <!-- product, and service names mentioned herein may be the properties -->
241.1472 + <!-- of their respective owners. Comments in the interos.org forums -->
241.1473 + <!-- are the properties of their respective authors. All software -->
241.1474 + <!-- developed in the forums is open source and belongs to everyone. -->
241.1475 + <!-- -->
241.1476 + <!--=====================================================================-->
241.1477 + <!-- e-mail: info@interos.com -->
241.1478 + <!--=====================================================================-->
241.1479 +</html>
242.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
242.2 +++ b/xhtml/page/blog_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
242.3 @@ -0,0 +1,1189 @@
242.4 +<?xml version="1.0" encoding="utf-8"?>
242.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
242.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
242.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
242.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
242.9 + <!--=================================================-->
242.10 + <!-- interos Standard Document Header - Markup -->
242.11 + <!--=================================================-->
242.12 + <!-- URIs: http://interos.org/blog -->
242.13 + <!-- http://blog.interos.org/ -->
242.14 + <!-- http://www.interos.org/blog -->
242.15 + <!-- Title: interos blog -->
242.16 + <!-- Author: Brent Angeline -->
242.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
242.18 + <!--=================================================-->
242.19 + <head>
242.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
242.21 + <meta name="title" content="interos blog" />
242.22 + <meta name="description" content="web log for interos" />
242.23 + <meta name="author" content="Brent Angeline" />
242.24 + <meta name="copyright"
242.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
242.26 + <meta name="robots" content="index, follow, archive" />
242.27 + <title>interos blog</title>
242.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
242.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
242.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
242.31 + media="screen, projection" />
242.32 + </head>
242.33 + <body id="body">
242.34 + <center>
242.35 + <p id="navigation">
242.36 + <a href="/about">about</a> |
242.37 + blog |
242.38 + <a href="/code">code</a> |
242.39 + <a href="/forums">develop</a> |
242.40 + <a href="/e-mail">e-mail</a> |
242.41 + <a href="/faq">f.a.q.</a> |
242.42 + <a href="/gear">gear</a> |
242.43 + <a href="http://interos.org/">home</a>
242.44 + </p>
242.45 + <table id="titlePanel">
242.46 + <thead>
242.47 + <tr>
242.48 + <th><center>
242.49 + <h1>
242.50 + <a href="http://blog.interos.org/">interos blog</a>
242.51 + </h1>
242.52 + <h2>
242.53 + by Brent Angeline
242.54 + </h2>
242.55 + </center></th>
242.56 + </tr>
242.57 + </thead>
242.58 + <tbody>
242.59 + <tr>
242.60 + <td><br /></td>
242.61 + </tr>
242.62 + </tbody>
242.63 + </table>
242.64 + </center>
242.65 + <div class="box">
242.66 + <h3>
242.67 + Current Status
242.68 + </h3>
242.69 + <p>
242.70 + interos is presently undergoing some big and exciting changes!
242.71 + I'll bring the blog up to date and fill in all the details of the past
242.72 + weeks' work as soon as this wave of development is complete.
242.73 + </p>
242.74 + <p>
242.75 + <br />
242.76 + </p>
242.77 + </div>
242.78 + <div class="box">
242.79 + <h3>
242.80 + January 19th, 2007
242.81 + </h3>
242.82 + <p>
242.83 + Today I brought the blog up to date. I'll continue keeping daily
242.84 + log entries as I work, and I'll update them here online roughly weekly.
242.85 + </p>
242.86 + <p>
242.87 + Work on Javascript continues. . . .
242.88 + </p>
242.89 + <p>
242.90 + <br />
242.91 + </p>
242.92 + </div>
242.93 + <div class="box">
242.94 + <h3>
242.95 + January 18th, 2007
242.96 + </h3>
242.97 + <p>
242.98 + Today was more compositing code and all the additional alterations that
242.99 + come with it.
242.100 + </p>
242.101 + <p>
242.102 + <br />
242.103 + </p>
242.104 + </div>
242.105 + <div class="box">
242.106 + <h3>
242.107 + January 17th, 2007
242.108 + </h3>
242.109 + <p>
242.110 + I began compositing code from my prior experiments with variations on
242.111 + style into the current JavaScript.
242.112 + </p>
242.113 + <p>
242.114 + <br />
242.115 + </p>
242.116 + </div>
242.117 + <div class="box">
242.118 + <h3>
242.119 + January 16th, 2007
242.120 + </h3>
242.121 + <p>
242.122 + A few slight changes to each file were necessary to further
242.123 + cross-browser consistency when rendering some of the more advanced
242.124 + styling and positioning elements. After encountering these visual
242.125 + inconsistencies during testing and subsequently resolving them, the
242.126 + central elements of the page are approaching visual completion as
242.127 + development of the page's JavaScript continues to progress.
242.128 + </p>
242.129 + <p>
242.130 + <br />
242.131 + </p>
242.132 + </div>
242.133 + <div class="box">
242.134 + <h3>
242.135 + January 15th, 2007
242.136 + </h3>
242.137 + <p>
242.138 + Now that I have some visual feedback from the code to work with, I
242.139 + experimented with a few variations on its appearance and decided on a
242.140 + combination of stylistic elements to employ in an effort to maximize
242.141 + aesthetics, readability, and interface compactness for mobile devices.
242.142 + </p>
242.143 + <p>
242.144 + <br />
242.145 + </p>
242.146 + </div>
242.147 + <div class="box">
242.148 + <h3>
242.149 + January 14th, 2007
242.150 + </h3>
242.151 + <p>
242.152 + The page is improving visually and with consistent behavior across
242.153 + browsers, but there's still more work to be done.
242.154 + </p>
242.155 + <p>
242.156 + <br />
242.157 + </p>
242.158 + </div>
242.159 + <div class="box">
242.160 + <h3>
242.161 + January 13th, 2007
242.162 + </h3>
242.163 + <p>
242.164 + Today was more dynamic element positioning in JavaScript.
242.165 + </p>
242.166 + <p>
242.167 + <br />
242.168 + </p>
242.169 + </div>
242.170 + <div class="box">
242.171 + <h3>
242.172 + January 12th, 2007
242.173 + </h3>
242.174 + <p>
242.175 + Work on JavaScript continues. Dynamic element positioning is
242.176 + coming along nicely.
242.177 + </p>
242.178 + <p>
242.179 + <br />
242.180 + </p>
242.181 + </div>
242.182 + <div class="box">
242.183 + <h3>
242.184 + January 11th, 2007
242.185 + </h3>
242.186 + <p>
242.187 + I had to make some additional tweaks to the XHTML and its style sheet
242.188 + for better interoperability with the JavaScript as it develops
242.189 + further. Both the XHTML and JavaScript have been developed to be
242.190 + compatible with serving the XHTML as multiple MIME types. I'll
242.191 + have to make a few alterations to the server configuration in order to
242.192 + implement content negotiation. This way the page will be served
242.193 + as the MIME type that is best-suited for the current user's browser.
242.194 + </p>
242.195 + <p>
242.196 + <br />
242.197 + </p>
242.198 + </div>
242.199 + <div class="box">
242.200 + <h3>
242.201 + January 10th, 2007
242.202 + </h3>
242.203 + <p>
242.204 + The style sheet now validates without any warnings. This gives
242.205 + us: the back-end, the XHTML, and the cascading style sheet. Now
242.206 + it's time to begin adding the final component of this page: the
242.207 + JavaScript.
242.208 + </p>
242.209 + <p>
242.210 + Once JavaScript is finished for this page, I will have all the
242.211 + components necessary for a complete, working, and polished user-driven
242.212 + system module. It will set the standard for the other pages that
242.213 + also act as functional modules, and I should be able to take the new
242.214 + techniques employed and apply them throughout the site fairly quickly,
242.215 + since most pages aren't as complex as the current module.
242.216 + </p>
242.217 + <p>
242.218 + <br />
242.219 + </p>
242.220 + </div>
242.221 + <div class="box">
242.222 + <h3>
242.223 + January 9th, 2007
242.224 + </h3>
242.225 + <p>
242.226 + I've applied all the needed styling to elements of one of the more
242.227 + complex pages. It validates with no errors, but there are some
242.228 + warnings. I'll have to see about working those out tomorrow.
242.229 + </p>
242.230 + <p>
242.231 + <br />
242.232 + </p>
242.233 + </div>
242.234 + <div class="box">
242.235 + <h3>
242.236 + January 8th, 2007
242.237 + </h3>
242.238 + <p>
242.239 + I'm thrilled to say that my new approach was right on the money!
242.240 + Elements in the structural hierarchy of the page's code now translate
242.241 + to making full visual sense as well. And after a few tweaks, it's
242.242 + looking like page visual renderings will shape up to being more or less
242.243 + pixel-perfect reproductions from one browser to the next in its class.
242.244 + </p>
242.245 + <p>
242.246 + <br />
242.247 + </p>
242.248 + </div>
242.249 + <div class="box">
242.250 + <h3>
242.251 + January 7th, 2007
242.252 + </h3>
242.253 + <p>
242.254 + I spent the day experimenting with different approaches to developing a
242.255 + cross-browser style that could be implemented across all interos site
242.256 + content. I was met with varying degrees of success in each
242.257 + attempted implementation, but I think I'm starting to see some common
242.258 + threads. In the end, I wound up completely scrapping all the
242.259 + style work I'd put together today. But all is not lost, as I've
242.260 + learned a great deal from my experiments, and they're already giving me
242.261 + some ideas. I'm confident that after some rest, I can get a fresh
242.262 + start tomorrow on taking what I've learned and applying it to the new
242.263 + approach I'm beginning to formulate.
242.264 + </p>
242.265 + <p>
242.266 + <br />
242.267 + </p>
242.268 + </div>
242.269 + <div class="box">
242.270 + <h3>
242.271 + January 6th, 2007
242.272 + </h3>
242.273 + <p>
242.274 + Today I took care of some correspondence toward getting more
242.275 + development underway on web applications that integrate with the
242.276 + interos platform. I have some exciting prospects. I also
242.277 + spent some time bringing the blog up to date, and work will continue
242.278 + into the night with a concentration on getting this style sheet mess
242.279 + sorted out once and for all!
242.280 + </p>
242.281 + <p>
242.282 + <br />
242.283 + </p>
242.284 + </div>
242.285 + <div class="box">
242.286 + <h3>
242.287 + January 5th, 2007
242.288 + </h3>
242.289 + <p>
242.290 + Today I made a series of minor changes to each page on the site.
242.291 + It was time-consuming but necessary, and I'm glad it's out of the way
242.292 + now.
242.293 + </p>
242.294 + <p>
242.295 + <br />
242.296 + </p>
242.297 + </div>
242.298 + <div class="box">
242.299 + <h3>
242.300 + January 4th, 2007
242.301 + </h3>
242.302 + <p>
242.303 + Master control directory linking of style sheets continues.
242.304 + </p>
242.305 + <p>
242.306 + <br />
242.307 + </p>
242.308 + </div>
242.309 + <div class="box">
242.310 + <h3>
242.311 + January 3rd, 2007
242.312 + </h3>
242.313 + <p>
242.314 + I created a few of the new style sheets and began making link entries
242.315 + in the master control directory.
242.316 + </p>
242.317 + <p>
242.318 + <br />
242.319 + </p>
242.320 + </div>
242.321 + <div class="box">
242.322 + <h3>
242.323 + January 2nd, 2007
242.324 + </h3>
242.325 + <p>
242.326 + I began organizing style sheet elements into categories: elements to be
242.327 + applied globally across all pages containted on the site, elements to
242.328 + be applied only under certain circumstances, and elements to be applied
242.329 + by default in the absence of predefined circumstance.
242.330 + </p>
242.331 + <p>
242.332 + <br />
242.333 + </p>
242.334 + </div>
242.335 + <div class="box">
242.336 + <h3>
242.337 + January 1st, 2007
242.338 + </h3>
242.339 + <p>
242.340 + <strong>Happy New Year</strong> from <strong>interos</strong>!
242.341 + </p>
242.342 + <p>
242.343 + <br />
242.344 + </p>
242.345 + </div>
242.346 + <div class="box">
242.347 + <h3>
242.348 + December 31st, 2006
242.349 + </h3>
242.350 + <p>
242.351 + 2006 closes with the United States and international publications of
242.352 + the interos patent applications, interos code running properly on a
242.353 + genuine web server, and a public demo of interos well on its way.
242.354 + It was a big year for the fledgling interos project, and here's hoping
242.355 + that 2007 is even bigger!
242.356 + </p>
242.357 + <p>
242.358 + <br />
242.359 + </p>
242.360 + </div>
242.361 + <div class="box">
242.362 + <h3>
242.363 + December 30th, 2006
242.364 + </h3>
242.365 + <p>
242.366 + I've had a look at the style sheet situation, and I've gotten a feel
242.367 + for how styling would best be implemented across the sites.
242.368 + Structurally, it's a complete overhaul—but I have done a number
242.369 + of things correctly already, so I should be able to integrate my
242.370 + existing work into the new paradigm fairly quickly once restructuring
242.371 + is completed.
242.372 + </p>
242.373 + <p>
242.374 + <br />
242.375 + </p>
242.376 + </div>
242.377 + <div class="box">
242.378 + <h3>
242.379 + December 29th, 2006
242.380 + </h3>
242.381 + <p>
242.382 + I finished the changes, and the core modules to the operating
242.383 + environment are now working just fine with the new server
242.384 + configuration. Some style sheet work needs to be done in order
242.385 + for everything to make visual sense, but after that's completed and a
242.386 + few tweaks are made here and there, I should have something that I'm
242.387 + willing to link to from the demo page.
242.388 + </p>
242.389 + <p>
242.390 + <br />
242.391 + </p>
242.392 + </div>
242.393 + <div class="box">
242.394 + <h3>
242.395 + December 28th, 2006
242.396 + </h3>
242.397 + <p>
242.398 + I'm just about done with applying the required modifications to all of
242.399 + the modules of the system.
242.400 + </p>
242.401 + <p>
242.402 + <br />
242.403 + </p>
242.404 + </div>
242.405 + <div class="box">
242.406 + <h3>
242.407 + December 27th, 2006
242.408 + </h3>
242.409 + <p>
242.410 + I'm about half of the way through making necessary changes to system
242.411 + modules. Further work on it will continue tomorrow.
242.412 + </p>
242.413 + <p>
242.414 + <br />
242.415 + </p>
242.416 + </div>
242.417 + <div class="box">
242.418 + <h3>
242.419 + December 26th, 2006
242.420 + </h3>
242.421 + <p>
242.422 + I finished modifications to the next system module. I'll start on
242.423 + the others tomorrow.
242.424 + </p>
242.425 + <p>
242.426 + <br />
242.427 + </p>
242.428 + </div>
242.429 + <div class="box">
242.430 + <h3>
242.431 + December 25th, 2006
242.432 + </h3>
242.433 + <p>
242.434 + <strong>Merry Christmas</strong> from <strong>interos</strong>!
242.435 + </p>
242.436 + <p>
242.437 + <br />
242.438 + </p>
242.439 + </div>
242.440 + <div class="box">
242.441 + <h3>
242.442 + December 24th, 2006
242.443 + </h3>
242.444 + <p>
242.445 + With the holiday and all that comes with it, I only got the chance to
242.446 + start making changes to one of the other system modules. I'll be
242.447 + right back at it soon.
242.448 + </p>
242.449 + <p>
242.450 + <br />
242.451 + </p>
242.452 + </div>
242.453 + <div class="box">
242.454 + <h3>
242.455 + December 23rd, 2006
242.456 + </h3>
242.457 + <p>
242.458 + I completed modifications to the first back-end system module.
242.459 + After some testing and a couple quick changes, it's working just
242.460 + great! So I'm going to go ahead and start applying these changes
242.461 + to the other system modules.
242.462 + </p>
242.463 + <p>
242.464 + <br />
242.465 + </p>
242.466 + </div>
242.467 + <div class="box">
242.468 + <h3>
242.469 + December 22nd, 2006
242.470 + </h3>
242.471 + <p>
242.472 + Today I began extensive modifications to the interos environment
242.473 + back-end to get it working with the new server configuration.
242.474 + Changes were made to reflect the new directory hierarchy from when the
242.475 + master control directory was implemented. Memory allocation
242.476 + routines needed to be altered as well.
242.477 + </p>
242.478 + <p>
242.479 + <br />
242.480 + </p>
242.481 + </div>
242.482 + <div class="box">
242.483 + <h3>
242.484 + December 21st, 2006
242.485 + </h3>
242.486 + <p>
242.487 + I finished the changes to interos environment XHTML and started
242.488 + applying them to the back-end modules. The first module is
242.489 + outputting the new XHTML properly, but it appears the back-end needs
242.490 + some additional alterations in order to work with the new server
242.491 + configuration.
242.492 + </p>
242.493 + <p>
242.494 + <br />
242.495 + </p>
242.496 + </div>
242.497 + <div class="box">
242.498 + <h3>
242.499 + December 20th, 2006
242.500 + </h3>
242.501 + <p>
242.502 + The XHTML is starting to shape up as I'd intended. I should be
242.503 + finished with it tomorrow so I can begin applying this new XHTML format
242.504 + to the back-end.
242.505 + </p>
242.506 + <p>
242.507 + <br />
242.508 + </p>
242.509 + </div>
242.510 + <div class="box">
242.511 + <h3>
242.512 + December 19th, 2006
242.513 + </h3>
242.514 + <p>
242.515 + Today I began some necessary alterations to the XHTML that describes
242.516 + the interos user environment. Once I finish the changes, I can
242.517 + apply them to the back-end so that it dynamically outputs the user
242.518 + environment in the proper format.
242.519 + </p>
242.520 + <p>
242.521 + <br />
242.522 + </p>
242.523 + </div>
242.524 + <div class="box">
242.525 + <h3>
242.526 + December 18th, 2006
242.527 + </h3>
242.528 + <p>
242.529 + My birthday today was marked with the international publication of the
242.530 + patent application for interos. The United States patent
242.531 + application was published on November 29th.
242.532 + </p>
242.533 + <p>
242.534 + <br />
242.535 + </p>
242.536 + </div>
242.537 + <div class="box">
242.538 + <h3>
242.539 + December 17th, 2006
242.540 + </h3>
242.541 + <p>
242.542 + The back-end for logging in is now working. Next up is getting
242.543 + the code for the interos environment working.
242.544 + </p>
242.545 + <p>
242.546 + <br />
242.547 + </p>
242.548 + </div>
242.549 + <div class="box">
242.550 + <h3>
242.551 + December 16th, 2006
242.552 + </h3>
242.553 + <p>
242.554 + The code for the easy login back-end requires some additional changes
242.555 + in order to work with the new server configuration. I should be
242.556 + able to have them implemented by some point tomorrow.
242.557 + </p>
242.558 + <p>
242.559 + <br />
242.560 + </p>
242.561 + </div>
242.562 + <div class="box">
242.563 + <h3>
242.564 + December 15th, 2006
242.565 + </h3>
242.566 + <p>
242.567 + I finished interlinking the pages of the site to form a new and larger
242.568 + skeletal site structure. It's mostly just placeholder pages that
242.569 + are light on content, but that's the part that comes next. What
242.570 + I <em>have</em> done is made sure that <strong>things have a place to
242.571 + go</strong>. Beefing up content of these pages and adding a
242.572 + public demo of interos are my next main areas of concentration.
242.573 + </p>
242.574 + <p>
242.575 + <br />
242.576 + </p>
242.577 + </div>
242.578 + <div class="box">
242.579 + <h3>
242.580 + December 14th, 2006
242.581 + </h3>
242.582 + <p>
242.583 + I finished the master control directory linking and started
242.584 + interlinking the existing skeletal site content with the new expanded
242.585 + material.
242.586 + </p>
242.587 + <p>
242.588 + <br />
242.589 + </p>
242.590 + </div>
242.591 + <div class="box">
242.592 + <h3>
242.593 + December 13th, 2006
242.594 + </h3>
242.595 + <p>
242.596 + Today I did most of the necessary master control directory linking for
242.597 + the expanded site content.
242.598 + </p>
242.599 + <p>
242.600 + <br />
242.601 + </p>
242.602 + </div>
242.603 + <div class="box">
242.604 + <h3>
242.605 + December 12th, 2006
242.606 + </h3>
242.607 + <p>
242.608 + I've gotten a lot of work done toward expanding the site. Changes
242.609 + will start showing up as I start linking them together with current
242.610 + site content. I also performed a great many web server
242.611 + configuration tweaks to accommodate the expanded content and improve
242.612 + site behavior.
242.613 + </p>
242.614 + <p>
242.615 + <br />
242.616 + </p>
242.617 + </div>
242.618 + <div class="box">
242.619 + <h3>
242.620 + December 11th, 2006
242.621 + </h3>
242.622 + <p>
242.623 + Today I brought the blog up to date! Now that that's done, I'm
242.624 + going to go write more <strong>code</strong>.
242.625 + </p>
242.626 + <p>
242.627 + <br />
242.628 + </p>
242.629 + </div>
242.630 + <div class="box">
242.631 + <h3>
242.632 + December 10th, 2006
242.633 + </h3>
242.634 + <p>
242.635 + I did some more work in configuring the web server to execute interos
242.636 + back-end code.
242.637 + </p>
242.638 + <p>
242.639 + <br />
242.640 + </p>
242.641 + </div>
242.642 + <div class="box">
242.643 + <h3>
242.644 + December 9th, 2006
242.645 + </h3>
242.646 + <p>
242.647 + I had another meeting with intern Hardik V. Shah regarding
242.648 + <strong>Java</strong> code integration. Everything seems to be
242.649 + coming along well.
242.650 + </p>
242.651 + <p>
242.652 + <br />
242.653 + </p>
242.654 + </div>
242.655 + <div class="box">
242.656 + <h3>
242.657 + December 8th, 2006
242.658 + </h3>
242.659 + <p>
242.660 + Work on tying in the back-end continues...
242.661 + </p>
242.662 + <p>
242.663 + <br />
242.664 + </p>
242.665 + </div>
242.666 + <div class="box">
242.667 + <h3>
242.668 + December 7th, 2006
242.669 + </h3>
242.670 + <p>
242.671 + Today I continue work on back-end porting and testing.
242.672 + </p>
242.673 + <p>
242.674 + <br />
242.675 + </p>
242.676 + </div>
242.677 + <div class="box">
242.678 + <h3>
242.679 + December 6th, 2006
242.680 + </h3>
242.681 + <p>
242.682 + I started work porting the back-end to the server and modifying it to
242.683 + output XHTML in the new format.
242.684 + </p>
242.685 + <p>
242.686 + <br />
242.687 + </p>
242.688 + </div>
242.689 + <div class="box">
242.690 + <h3>
242.691 + December 5th, 2006
242.692 + </h3>
242.693 + <p>
242.694 + The new login form is completed. I'm currently repeating the
242.695 + process for the form for new users to create a login. I also
242.696 + started work to interface both forms with the back-end. I
242.697 + performed some additional code cleanup on various site pages as well.
242.698 + </p>
242.699 + <p>
242.700 + <br />
242.701 + </p>
242.702 + </div>
242.703 + <div class="box">
242.704 + <h3>
242.705 + December 4th, 2006
242.706 + </h3>
242.707 + <p>
242.708 + The first element necessary for the demo is the <strong>easy
242.709 + login</strong>. I took the existing code I developed for this and
242.710 + reimplemented it in the new standard format using one of the templates
242.711 + I created. I also made some modifications to improve
242.712 + accessibility. There's going to be a fair amount of this sort of
242.713 + post over the next week or so as I apply this process to the code I've
242.714 + developed for the other elements of the demo.
242.715 + </p>
242.716 + <p>
242.717 + <br />
242.718 + </p>
242.719 + </div>
242.720 + <div class="box">
242.721 + <h3>
242.722 + December 3rd, 2006
242.723 + </h3>
242.724 + <p>
242.725 + Today I started work on bringing the demo to the server. Once
242.726 + enough of it is in place, it will be <strong>accessible</strong> from
242.727 + the <a href="http://www.interos.com/demo">demo</a> section.
242.728 + </p>
242.729 + <p>
242.730 + <br />
242.731 + </p>
242.732 + </div>
242.733 + <div class="box">
242.734 + <h3>
242.735 + December 2nd, 2006
242.736 + </h3>
242.737 + <p>
242.738 + Tagging is now completed. I also started preparing the server for
242.739 + the next sections I have planned.
242.740 + </p>
242.741 + <p>
242.742 + <br />
242.743 + </p>
242.744 + </div>
242.745 + <div class="box">
242.746 + <h3>
242.747 + December 1st, 2006
242.748 + </h3>
242.749 + <p>
242.750 + I finally finished getting the last of everything on the server
242.751 + properly <strong>organized</strong>, and I've finished tagging most of
242.752 + it as well.
242.753 + </p>
242.754 + <p>
242.755 + <br />
242.756 + </p>
242.757 + </div>
242.758 + <div class="box">
242.759 + <h3>
242.760 + November 30th, 2006
242.761 + </h3>
242.762 + <p>
242.763 + Site skeletal layout is <strong>firmly in place</strong>, and all areas
242.764 + are <strong>well-defined</strong> parts of the overall
242.765 + <strong>structure.</strong> It's now time to begin fleshing out
242.766 + site content.
242.767 + </p>
242.768 + <p>
242.769 + <br />
242.770 + </p>
242.771 + </div>
242.772 + <div class="box">
242.773 + <h3>
242.774 + November 29th, 2006
242.775 + </h3>
242.776 + <p>
242.777 + I linked basic style sheets in a manner to maximize
242.778 + <strong>efficiency</strong> and site <strong>consistency</strong>.
242.779 + </p>
242.780 + <p>
242.781 + <br />
242.782 + </p>
242.783 + </div>
242.784 + <div class="box">
242.785 + <h3>
242.786 + November 28th, 2006
242.787 + </h3>
242.788 + <p>
242.789 + The audit of existing XHTML continues with an emphasis on
242.790 + <strong>semantic correctness</strong> in code.
242.791 + </p>
242.792 + <p>
242.793 + <br />
242.794 + </p>
242.795 + </div>
242.796 + <div class="box">
242.797 + <h3>
242.798 + November 27th, 2006
242.799 + </h3>
242.800 + <p>
242.801 + The aforementioned templates further establish a standard format for
242.802 + site content, so I started an audit of existing XHTML code by beginning
242.803 + to apply the precedents set forth in said templates. This will
242.804 + further maximize the <strong>compatibility</strong> and
242.805 + <strong>accessibility</strong> of interos.
242.806 + </p>
242.807 + <p>
242.808 + <br />
242.809 + </p>
242.810 + </div>
242.811 + <div class="box">
242.812 + <h3>
242.813 + November 26th, 2006
242.814 + </h3>
242.815 + <p>
242.816 + I created some <strong>templates</strong> for the next wave of content.
242.817 + </p>
242.818 + <p>
242.819 + <br />
242.820 + </p>
242.821 + </div>
242.822 + <div class="box">
242.823 + <h3>
242.824 + November 25th, 2006
242.825 + </h3>
242.826 + <p>
242.827 + Today brings some site <strong>updates</strong> and a meeting.
242.828 + </p>
242.829 + <p>
242.830 + <br />
242.831 + </p>
242.832 + </div>
242.833 + <div class="box">
242.834 + <h3>
242.835 + November 24th, 2006
242.836 + </h3>
242.837 + <p>
242.838 + The <strong>master control directory</strong> is now
242.839 + <strong>completed</strong>.
242.840 + </p>
242.841 + <p>
242.842 + <br />
242.843 + </p>
242.844 + </div>
242.845 + <div class="box">
242.846 + <h3>
242.847 + November 23rd, 2006
242.848 + </h3>
242.849 + <p>
242.850 + <strong>Happy Thanksgiving</strong> from <strong>interos</strong>!
242.851 + </p>
242.852 + <p>
242.853 + <br />
242.854 + </p>
242.855 + </div>
242.856 + <div class="box">
242.857 + <h3>
242.858 + November 22nd, 2006
242.859 + </h3>
242.860 + <p>
242.861 + The <strong>server configuration</strong> is now updated to reflect the
242.862 + changes from linking virtual hosts to a master control directory.
242.863 + </p>
242.864 + <p>
242.865 + <br />
242.866 + </p>
242.867 + </div>
242.868 + <div class="box">
242.869 + <h3>
242.870 + November 21st, 2006
242.871 + </h3>
242.872 + <p>
242.873 + After a great deal of experimenting, I figured out the <strong>best
242.874 + method</strong> for linking everything in a way that will both work and
242.875 + be easy to update. It took all day to implement, but now common
242.876 + address requests can easily be linked to the proper corresponding
242.877 + resources.
242.878 + </p>
242.879 + <p>
242.880 + <br />
242.881 + </p>
242.882 + </div>
242.883 + <div class="box">
242.884 + <h3>
242.885 + November 20th, 2006
242.886 + </h3>
242.887 + <p>
242.888 + I was having difficulty managing all the virtual hosts that define the
242.889 + interconnected sections of the interos site layout. Then I had
242.890 + the idea to implement a <strong>master control directory</strong>.
242.891 + </p>
242.892 + <p>
242.893 + <br />
242.894 + </p>
242.895 + </div>
242.896 + <div class="box">
242.897 + <h3>
242.898 + November 19th, 2006
242.899 + </h3>
242.900 + <p>
242.901 + Last night I mapped out a <strong>logical web filesystem
242.902 + layout</strong> to coincide with the aforementioned easy web
242.903 + addresses. I still have some more time today, so I have some odds
242.904 + and ends in mind to spend it working on. The sooner I get them
242.905 + out of the way, the sooner I can get to posting the exciting stuff.
242.906 + </p>
242.907 + <p>
242.908 + <br />
242.909 + </p>
242.910 + </div>
242.911 + <div class="box">
242.912 + <h3>
242.913 + November 18th, 2006
242.914 + </h3>
242.915 + <p>
242.916 + Today was various updates to site content, including a link to what an
242.917 + <strong><a
242.918 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
242.919 + operating system</a></strong> is.
242.920 + </p>
242.921 + <p>
242.922 + <br />
242.923 + </p>
242.924 + </div>
242.925 + <div class="box">
242.926 + <h3>
242.927 + November 17th, 2006
242.928 + </h3>
242.929 + <p>
242.930 + I've gone through and cleaned up most of the code, and I've established
242.931 + a <strong>standard format</strong> for delivering site content.
242.932 + </p>
242.933 + <p>
242.934 + <br />
242.935 + </p>
242.936 + </div>
242.937 + <div class="box">
242.938 + <h3>
242.939 + November 16th, 2006
242.940 + </h3>
242.941 + <p>
242.942 + The new configuration is working well, and I've been able to implement
242.943 + site-wide changes a lot faster. This is already leading to
242.944 + cleaner code and a more <strong>consistent look and feel</strong>.
242.945 + </p>
242.946 + <p>
242.947 + <br />
242.948 + </p>
242.949 + </div>
242.950 + <div class="box">
242.951 + <h3>
242.952 + November 15th, 2006
242.953 + </h3>
242.954 + <p>
242.955 + I've now finished enough work on the local systems that I can get
242.956 + started on <strong>rapid deployment</strong> of site content.
242.957 + </p>
242.958 + <p>
242.959 + <br />
242.960 + </p>
242.961 + </div>
242.962 + <div class="box">
242.963 + <h3>
242.964 + November 14th, 2006
242.965 + </h3>
242.966 + <p>
242.967 + Some changes to my <strong>development environment</strong> should make
242.968 + my work a lot <strong>easier</strong> from now on.
242.969 + </p>
242.970 + <p>
242.971 + <br />
242.972 + </p>
242.973 + </div>
242.974 + <div class="box">
242.975 + <h3>
242.976 + November 13th, 2006
242.977 + </h3>
242.978 + <p>
242.979 + Today was yet more work on the local <strong>development and
242.980 + testing</strong> servers. It's all coming along nicely, but it's
242.981 + a fair amount of work to assemble a specific server software framework
242.982 + on <strong>multiple platforms</strong> simultaneously.
242.983 + </p>
242.984 + <p>
242.985 + <br />
242.986 + </p>
242.987 + </div>
242.988 + <div class="box">
242.989 + <h3>
242.990 + November 12th, 2006
242.991 + </h3>
242.992 + <p>
242.993 + After running code through validators and making the appropriate
242.994 + alterations, interos now uses only <strong>valid CSS</strong> for
242.995 + maximum interoperability.
242.996 + </p>
242.997 + <p>
242.998 + <br />
242.999 + </p>
242.1000 + </div>
242.1001 + <div class="box">
242.1002 + <h3>
242.1003 + November 11th, 2006
242.1004 + </h3>
242.1005 + <p>
242.1006 + After running code through validators and making the appropriate
242.1007 + alterations, interos now uses only <strong>valid XHTML</strong> for
242.1008 + maximum interoperability.
242.1009 + </p>
242.1010 + <p>
242.1011 + <br />
242.1012 + </p>
242.1013 + </div>
242.1014 + <div class="box">
242.1015 + <h3>
242.1016 + November 10th, 2006
242.1017 + </h3>
242.1018 + <p>
242.1019 + Today I started work on new local development and testing servers to
242.1020 + speed up finalizing code for production and to serve as a
242.1021 + <strong>backup</strong>. interos uses only <strong>free</strong>
242.1022 + and <strong>open source</strong> software.
242.1023 + </p>
242.1024 + <p>
242.1025 + <br />
242.1026 + </p>
242.1027 + </div>
242.1028 + <div class="box">
242.1029 + <h3>
242.1030 + November 9th, 2006
242.1031 + </h3>
242.1032 + <p>
242.1033 + interos is now set up to have <strong>easy web addresses</strong>.
242.1034 + </p>
242.1035 + <p>
242.1036 + <br />
242.1037 + </p>
242.1038 + </div>
242.1039 + <div class="box">
242.1040 + <h3>
242.1041 + November 8th, 2006
242.1042 + </h3>
242.1043 + <p>
242.1044 + Today was a lot of <strong>correspondence</strong> regarding the design
242.1045 + goals of interos.
242.1046 + </p>
242.1047 + <p>
242.1048 + <br />
242.1049 + </p>
242.1050 + </div>
242.1051 + <div class="box">
242.1052 + <h3>
242.1053 + November 7th, 2006
242.1054 + </h3>
242.1055 + <p>
242.1056 + I met with Hardik Shah today to discuss the <strong>integration of
242.1057 + code</strong> that he, Rajdeep Bhowmik, Andrew Paroski and Amol
242.1058 + Panchabhai have developed.
242.1059 + </p>
242.1060 + <p>
242.1061 + <br />
242.1062 + </p>
242.1063 + </div>
242.1064 + <div class="box">
242.1065 + <h3>
242.1066 + November 6th, 2006
242.1067 + </h3>
242.1068 + <p>
242.1069 + I did a lot of work today to <strong>maximize accessibility and ease of
242.1070 + use</strong> of the forthcoming site content. I'm excited that
242.1071 + everything's going to work so nicely.
242.1072 + </p>
242.1073 + <p>
242.1074 + <br />
242.1075 + </p>
242.1076 + </div>
242.1077 + <div class="box">
242.1078 + <h3>
242.1079 + November 5th, 2006
242.1080 + </h3>
242.1081 + <p>
242.1082 + Today was about taking care of miscellaneous odds and ends. There
242.1083 + were various tweaks to configuration files and a few alterations to
242.1084 + <strong>file permissions for security</strong> while I restructured
242.1085 + some file hierarchies. The served content directories are
242.1086 + starting to feel a great deal more <strong>organized and
242.1087 + logical</strong>. This will make <strong>content
242.1088 + management</strong> a lot easier.
242.1089 + </p>
242.1090 + <p>
242.1091 + <br />
242.1092 + </p>
242.1093 + </div>
242.1094 + <div class="box">
242.1095 + <h3>
242.1096 + November 4th, 2006
242.1097 + </h3>
242.1098 + <p>
242.1099 + I took the time to set up some administrative <strong>e-mail</strong>
242.1100 + accounts on each domain. I also performed any necessary address
242.1101 + aliasing and/or forwarding. Now the sites have working
242.1102 + <a href="mailto:info@interos.org">contact</a> links.
242.1103 + </p>
242.1104 + <p>
242.1105 + <br />
242.1106 + </p>
242.1107 + </div>
242.1108 + <div class="box">
242.1109 + <h3>
242.1110 + November 3rd, 2006
242.1111 + </h3>
242.1112 + <p>
242.1113 + The interos sites are <strong>now secured</strong> using a free
242.1114 + multi-domain SSL/TLS certificate thanks to
242.1115 + <a href="http://www.cacert.org/">CAcert.org</a> and
242.1116 + <a href="http://guillaume.romagny.free.fr/evaldo/csr.sh">this
242.1117 + script</a>. Our sites leverage the strength of the AES-256
242.1118 + encryption algorithm for securing user data and a 1024-bit RSA key for
242.1119 + <strong>maximum browser compatibility</strong>. The web server
242.1120 + configuration and directory structures for site content have been
242.1121 + modified accordingly.
242.1122 + </p>
242.1123 + <p>
242.1124 + <br />
242.1125 + </p>
242.1126 + </div>
242.1127 + <div class="box">
242.1128 + <h3>
242.1129 + November 2nd, 2006
242.1130 + </h3>
242.1131 + <p>
242.1132 + I finished performing numerous <strong>optimizations</strong> to the
242.1133 + server system. The physical server was rebooted and everything
242.1134 + seems to be <strong>humming away nicely</strong>. I have some further
242.1135 + optimizations in mind, but I'll look into those some other time when
242.1136 + there isn't quite so much to be done!
242.1137 + </p>
242.1138 + <p>
242.1139 + <br />
242.1140 + </p>
242.1141 + </div>
242.1142 + <div class="box">
242.1143 + <h3>
242.1144 + November 1st, 2006
242.1145 + </h3>
242.1146 + <p>
242.1147 + The <strong>interos server is online</strong> and the
242.1148 + <a href="http://interos.org/">interos.org</a> and
242.1149 + <a href="http://www.interos.com/">interos.com</a> domain names have
242.1150 + been associated with it.
242.1151 + </p>
242.1152 + <p>
242.1153 + I've begun populating the sites with some <strong>rough skeletal
242.1154 + content</strong> in order to test the web server configuration.
242.1155 + This skeletal content also acts as a foundation for the content I
242.1156 + ultimately intend for these sites to contain. In addition, I've
242.1157 + started this <strong>daily blog</strong> as a continuing record of the
242.1158 + progress I've made and the goals that follow.
242.1159 + </p>
242.1160 + <p>
242.1161 + For a description of interos and its history so far, see the
242.1162 + <a href="/about">about</a> section as content is added to it.
242.1163 + </p>
242.1164 + <p>
242.1165 + <br />
242.1166 + </p>
242.1167 + </div>
242.1168 + <center>
242.1169 + <p id="copyrightDates">
242.1170 + © 2001–2009 interos
242.1171 + </p>
242.1172 + </center>
242.1173 + </body>
242.1174 + <!--=====================================================================-->
242.1175 + <!-- Copyright and Trademark Statement -->
242.1176 + <!--=====================================================================-->
242.1177 + <!-- -->
242.1178 + <!-- All original textual and graphical site content: -->
242.1179 + <!-- -->
242.1180 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
242.1181 + <!-- reserved. Reproduction in whole or in part without written -->
242.1182 + <!-- permission is prohibited. interos and the interos logos are -->
242.1183 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
242.1184 + <!-- product, and service names mentioned herein may be the properties -->
242.1185 + <!-- of their respective owners. Comments in the interos.org forums -->
242.1186 + <!-- are the properties of their respective authors. All software -->
242.1187 + <!-- developed in the forums is open source and belongs to everyone. -->
242.1188 + <!-- -->
242.1189 + <!--=====================================================================-->
242.1190 + <!-- e-mail: info@interos.org -->
242.1191 + <!--=====================================================================-->
242.1192 +</html>
243.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
243.2 +++ b/xhtml/page/blog_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
243.3 @@ -0,0 +1,1189 @@
243.4 +<?xml version="1.0" encoding="utf-8"?>
243.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
243.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
243.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
243.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
243.9 + <!--=================================================-->
243.10 + <!-- interos Standard Document Header - Markup -->
243.11 + <!--=================================================-->
243.12 + <!-- URIs: https://interos.org/blog -->
243.13 + <!-- https://blog.interos.org/ -->
243.14 + <!-- https://www.interos.org/blog -->
243.15 + <!-- Title: interos blog -->
243.16 + <!-- Author: Brent Angeline -->
243.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
243.18 + <!--=================================================-->
243.19 + <head>
243.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
243.21 + <meta name="title" content="interos blog" />
243.22 + <meta name="description" content="web log for interos" />
243.23 + <meta name="author" content="Brent Angeline" />
243.24 + <meta name="copyright"
243.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
243.26 + <meta name="robots" content="index, follow, archive" />
243.27 + <title>interos blog</title>
243.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
243.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
243.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
243.31 + media="screen, projection" />
243.32 + </head>
243.33 + <body id="body">
243.34 + <center>
243.35 + <p id="navigation">
243.36 + <a href="/about">about</a> |
243.37 + blog |
243.38 + <a href="/code">code</a> |
243.39 + <a href="/forums">develop</a> |
243.40 + <a href="/e-mail">e-mail</a> |
243.41 + <a href="/faq">f.a.q.</a> |
243.42 + <a href="/gear">gear</a> |
243.43 + <a href="https://interos.org/">home</a>
243.44 + </p>
243.45 + <table id="titlePanel">
243.46 + <thead>
243.47 + <tr>
243.48 + <th><center>
243.49 + <h1>
243.50 + <a href="https://blog.interos.org/">interos blog</a>
243.51 + </h1>
243.52 + <h2>
243.53 + by Brent Angeline
243.54 + </h2>
243.55 + </center></th>
243.56 + </tr>
243.57 + </thead>
243.58 + <tbody>
243.59 + <tr>
243.60 + <td><br /></td>
243.61 + </tr>
243.62 + </tbody>
243.63 + </table>
243.64 + </center>
243.65 + <div class="box">
243.66 + <h3>
243.67 + Current Status
243.68 + </h3>
243.69 + <p>
243.70 + interos is presently undergoing some big and exciting changes!
243.71 + I'll bring the blog up to date and fill in all the details of the past
243.72 + weeks' work as soon as this wave of development is complete.
243.73 + </p>
243.74 + <p>
243.75 + <br />
243.76 + </p>
243.77 + </div>
243.78 + <div class="box">
243.79 + <h3>
243.80 + January 19th, 2007
243.81 + </h3>
243.82 + <p>
243.83 + Today I brought the blog up to date. I'll continue keeping daily
243.84 + log entries as I work, and I'll update them here online roughly weekly.
243.85 + </p>
243.86 + <p>
243.87 + Work on Javascript continues. . . .
243.88 + </p>
243.89 + <p>
243.90 + <br />
243.91 + </p>
243.92 + </div>
243.93 + <div class="box">
243.94 + <h3>
243.95 + January 18th, 2007
243.96 + </h3>
243.97 + <p>
243.98 + Today was more compositing code and all the additional alterations that
243.99 + come with it.
243.100 + </p>
243.101 + <p>
243.102 + <br />
243.103 + </p>
243.104 + </div>
243.105 + <div class="box">
243.106 + <h3>
243.107 + January 17th, 2007
243.108 + </h3>
243.109 + <p>
243.110 + I began compositing code from my prior experiments with variations on
243.111 + style into the current JavaScript.
243.112 + </p>
243.113 + <p>
243.114 + <br />
243.115 + </p>
243.116 + </div>
243.117 + <div class="box">
243.118 + <h3>
243.119 + January 16th, 2007
243.120 + </h3>
243.121 + <p>
243.122 + A few slight changes to each file were necessary to further
243.123 + cross-browser consistency when rendering some of the more advanced
243.124 + styling and positioning elements. After encountering these visual
243.125 + inconsistencies during testing and subsequently resolving them, the
243.126 + central elements of the page are approaching visual completion as
243.127 + development of the page's JavaScript continues to progress.
243.128 + </p>
243.129 + <p>
243.130 + <br />
243.131 + </p>
243.132 + </div>
243.133 + <div class="box">
243.134 + <h3>
243.135 + January 15th, 2007
243.136 + </h3>
243.137 + <p>
243.138 + Now that I have some visual feedback from the code to work with, I
243.139 + experimented with a few variations on its appearance and decided on a
243.140 + combination of stylistic elements to employ in an effort to maximize
243.141 + aesthetics, readability, and interface compactness for mobile devices.
243.142 + </p>
243.143 + <p>
243.144 + <br />
243.145 + </p>
243.146 + </div>
243.147 + <div class="box">
243.148 + <h3>
243.149 + January 14th, 2007
243.150 + </h3>
243.151 + <p>
243.152 + The page is improving visually and with consistent behavior across
243.153 + browsers, but there's still more work to be done.
243.154 + </p>
243.155 + <p>
243.156 + <br />
243.157 + </p>
243.158 + </div>
243.159 + <div class="box">
243.160 + <h3>
243.161 + January 13th, 2007
243.162 + </h3>
243.163 + <p>
243.164 + Today was more dynamic element positioning in JavaScript.
243.165 + </p>
243.166 + <p>
243.167 + <br />
243.168 + </p>
243.169 + </div>
243.170 + <div class="box">
243.171 + <h3>
243.172 + January 12th, 2007
243.173 + </h3>
243.174 + <p>
243.175 + Work on JavaScript continues. Dynamic element positioning is
243.176 + coming along nicely.
243.177 + </p>
243.178 + <p>
243.179 + <br />
243.180 + </p>
243.181 + </div>
243.182 + <div class="box">
243.183 + <h3>
243.184 + January 11th, 2007
243.185 + </h3>
243.186 + <p>
243.187 + I had to make some additional tweaks to the XHTML and its style sheet
243.188 + for better interoperability with the JavaScript as it develops
243.189 + further. Both the XHTML and JavaScript have been developed to be
243.190 + compatible with serving the XHTML as multiple MIME types. I'll
243.191 + have to make a few alterations to the server configuration in order to
243.192 + implement content negotiation. This way the page will be served
243.193 + as the MIME type that is best-suited for the current user's browser.
243.194 + </p>
243.195 + <p>
243.196 + <br />
243.197 + </p>
243.198 + </div>
243.199 + <div class="box">
243.200 + <h3>
243.201 + January 10th, 2007
243.202 + </h3>
243.203 + <p>
243.204 + The style sheet now validates without any warnings. This gives
243.205 + us: the back-end, the XHTML, and the cascading style sheet. Now
243.206 + it's time to begin adding the final component of this page: the
243.207 + JavaScript.
243.208 + </p>
243.209 + <p>
243.210 + Once JavaScript is finished for this page, I will have all the
243.211 + components necessary for a complete, working, and polished user-driven
243.212 + system module. It will set the standard for the other pages that
243.213 + also act as functional modules, and I should be able to take the new
243.214 + techniques employed and apply them throughout the site fairly quickly,
243.215 + since most pages aren't as complex as the current module.
243.216 + </p>
243.217 + <p>
243.218 + <br />
243.219 + </p>
243.220 + </div>
243.221 + <div class="box">
243.222 + <h3>
243.223 + January 9th, 2007
243.224 + </h3>
243.225 + <p>
243.226 + I've applied all the needed styling to elements of one of the more
243.227 + complex pages. It validates with no errors, but there are some
243.228 + warnings. I'll have to see about working those out tomorrow.
243.229 + </p>
243.230 + <p>
243.231 + <br />
243.232 + </p>
243.233 + </div>
243.234 + <div class="box">
243.235 + <h3>
243.236 + January 8th, 2007
243.237 + </h3>
243.238 + <p>
243.239 + I'm thrilled to say that my new approach was right on the money!
243.240 + Elements in the structural hierarchy of the page's code now translate
243.241 + to making full visual sense as well. And after a few tweaks, it's
243.242 + looking like page visual renderings will shape up to being more or less
243.243 + pixel-perfect reproductions from one browser to the next in its class.
243.244 + </p>
243.245 + <p>
243.246 + <br />
243.247 + </p>
243.248 + </div>
243.249 + <div class="box">
243.250 + <h3>
243.251 + January 7th, 2007
243.252 + </h3>
243.253 + <p>
243.254 + I spent the day experimenting with different approaches to developing a
243.255 + cross-browser style that could be implemented across all interos site
243.256 + content. I was met with varying degrees of success in each
243.257 + attempted implementation, but I think I'm starting to see some common
243.258 + threads. In the end, I wound up completely scrapping all the
243.259 + style work I'd put together today. But all is not lost, as I've
243.260 + learned a great deal from my experiments, and they're already giving me
243.261 + some ideas. I'm confident that after some rest, I can get a fresh
243.262 + start tomorrow on taking what I've learned and applying it to the new
243.263 + approach I'm beginning to formulate.
243.264 + </p>
243.265 + <p>
243.266 + <br />
243.267 + </p>
243.268 + </div>
243.269 + <div class="box">
243.270 + <h3>
243.271 + January 6th, 2007
243.272 + </h3>
243.273 + <p>
243.274 + Today I took care of some correspondence toward getting more
243.275 + development underway on web applications that integrate with the
243.276 + interos platform. I have some exciting prospects. I also
243.277 + spent some time bringing the blog up to date, and work will continue
243.278 + into the night with a concentration on getting this style sheet mess
243.279 + sorted out once and for all!
243.280 + </p>
243.281 + <p>
243.282 + <br />
243.283 + </p>
243.284 + </div>
243.285 + <div class="box">
243.286 + <h3>
243.287 + January 5th, 2007
243.288 + </h3>
243.289 + <p>
243.290 + Today I made a series of minor changes to each page on the site.
243.291 + It was time-consuming but necessary, and I'm glad it's out of the way
243.292 + now.
243.293 + </p>
243.294 + <p>
243.295 + <br />
243.296 + </p>
243.297 + </div>
243.298 + <div class="box">
243.299 + <h3>
243.300 + January 4th, 2007
243.301 + </h3>
243.302 + <p>
243.303 + Master control directory linking of style sheets continues.
243.304 + </p>
243.305 + <p>
243.306 + <br />
243.307 + </p>
243.308 + </div>
243.309 + <div class="box">
243.310 + <h3>
243.311 + January 3rd, 2007
243.312 + </h3>
243.313 + <p>
243.314 + I created a few of the new style sheets and began making link entries
243.315 + in the master control directory.
243.316 + </p>
243.317 + <p>
243.318 + <br />
243.319 + </p>
243.320 + </div>
243.321 + <div class="box">
243.322 + <h3>
243.323 + January 2nd, 2007
243.324 + </h3>
243.325 + <p>
243.326 + I began organizing style sheet elements into categories: elements to be
243.327 + applied globally across all pages containted on the site, elements to
243.328 + be applied only under certain circumstances, and elements to be applied
243.329 + by default in the absence of predefined circumstance.
243.330 + </p>
243.331 + <p>
243.332 + <br />
243.333 + </p>
243.334 + </div>
243.335 + <div class="box">
243.336 + <h3>
243.337 + January 1st, 2007
243.338 + </h3>
243.339 + <p>
243.340 + <strong>Happy New Year</strong> from <strong>interos</strong>!
243.341 + </p>
243.342 + <p>
243.343 + <br />
243.344 + </p>
243.345 + </div>
243.346 + <div class="box">
243.347 + <h3>
243.348 + December 31st, 2006
243.349 + </h3>
243.350 + <p>
243.351 + 2006 closes with the United States and international publications of
243.352 + the interos patent applications, interos code running properly on a
243.353 + genuine web server, and a public demo of interos well on its way.
243.354 + It was a big year for the fledgling interos project, and here's hoping
243.355 + that 2007 is even bigger!
243.356 + </p>
243.357 + <p>
243.358 + <br />
243.359 + </p>
243.360 + </div>
243.361 + <div class="box">
243.362 + <h3>
243.363 + December 30th, 2006
243.364 + </h3>
243.365 + <p>
243.366 + I've had a look at the style sheet situation, and I've gotten a feel
243.367 + for how styling would best be implemented across the sites.
243.368 + Structurally, it's a complete overhaul—but I have done a number
243.369 + of things correctly already, so I should be able to integrate my
243.370 + existing work into the new paradigm fairly quickly once restructuring
243.371 + is completed.
243.372 + </p>
243.373 + <p>
243.374 + <br />
243.375 + </p>
243.376 + </div>
243.377 + <div class="box">
243.378 + <h3>
243.379 + December 29th, 2006
243.380 + </h3>
243.381 + <p>
243.382 + I finished the changes, and the core modules to the operating
243.383 + environment are now working just fine with the new server
243.384 + configuration. Some style sheet work needs to be done in order
243.385 + for everything to make visual sense, but after that's completed and a
243.386 + few tweaks are made here and there, I should have something that I'm
243.387 + willing to link to from the demo page.
243.388 + </p>
243.389 + <p>
243.390 + <br />
243.391 + </p>
243.392 + </div>
243.393 + <div class="box">
243.394 + <h3>
243.395 + December 28th, 2006
243.396 + </h3>
243.397 + <p>
243.398 + I'm just about done with applying the required modifications to all of
243.399 + the modules of the system.
243.400 + </p>
243.401 + <p>
243.402 + <br />
243.403 + </p>
243.404 + </div>
243.405 + <div class="box">
243.406 + <h3>
243.407 + December 27th, 2006
243.408 + </h3>
243.409 + <p>
243.410 + I'm about half of the way through making necessary changes to system
243.411 + modules. Further work on it will continue tomorrow.
243.412 + </p>
243.413 + <p>
243.414 + <br />
243.415 + </p>
243.416 + </div>
243.417 + <div class="box">
243.418 + <h3>
243.419 + December 26th, 2006
243.420 + </h3>
243.421 + <p>
243.422 + I finished modifications to the next system module. I'll start on
243.423 + the others tomorrow.
243.424 + </p>
243.425 + <p>
243.426 + <br />
243.427 + </p>
243.428 + </div>
243.429 + <div class="box">
243.430 + <h3>
243.431 + December 25th, 2006
243.432 + </h3>
243.433 + <p>
243.434 + <strong>Merry Christmas</strong> from <strong>interos</strong>!
243.435 + </p>
243.436 + <p>
243.437 + <br />
243.438 + </p>
243.439 + </div>
243.440 + <div class="box">
243.441 + <h3>
243.442 + December 24th, 2006
243.443 + </h3>
243.444 + <p>
243.445 + With the holiday and all that comes with it, I only got the chance to
243.446 + start making changes to one of the other system modules. I'll be
243.447 + right back at it soon.
243.448 + </p>
243.449 + <p>
243.450 + <br />
243.451 + </p>
243.452 + </div>
243.453 + <div class="box">
243.454 + <h3>
243.455 + December 23rd, 2006
243.456 + </h3>
243.457 + <p>
243.458 + I completed modifications to the first back-end system module.
243.459 + After some testing and a couple quick changes, it's working just
243.460 + great! So I'm going to go ahead and start applying these changes
243.461 + to the other system modules.
243.462 + </p>
243.463 + <p>
243.464 + <br />
243.465 + </p>
243.466 + </div>
243.467 + <div class="box">
243.468 + <h3>
243.469 + December 22nd, 2006
243.470 + </h3>
243.471 + <p>
243.472 + Today I began extensive modifications to the interos environment
243.473 + back-end to get it working with the new server configuration.
243.474 + Changes were made to reflect the new directory hierarchy from when the
243.475 + master control directory was implemented. Memory allocation
243.476 + routines needed to be altered as well.
243.477 + </p>
243.478 + <p>
243.479 + <br />
243.480 + </p>
243.481 + </div>
243.482 + <div class="box">
243.483 + <h3>
243.484 + December 21st, 2006
243.485 + </h3>
243.486 + <p>
243.487 + I finished the changes to interos environment XHTML and started
243.488 + applying them to the back-end modules. The first module is
243.489 + outputting the new XHTML properly, but it appears the back-end needs
243.490 + some additional alterations in order to work with the new server
243.491 + configuration.
243.492 + </p>
243.493 + <p>
243.494 + <br />
243.495 + </p>
243.496 + </div>
243.497 + <div class="box">
243.498 + <h3>
243.499 + December 20th, 2006
243.500 + </h3>
243.501 + <p>
243.502 + The XHTML is starting to shape up as I'd intended. I should be
243.503 + finished with it tomorrow so I can begin applying this new XHTML format
243.504 + to the back-end.
243.505 + </p>
243.506 + <p>
243.507 + <br />
243.508 + </p>
243.509 + </div>
243.510 + <div class="box">
243.511 + <h3>
243.512 + December 19th, 2006
243.513 + </h3>
243.514 + <p>
243.515 + Today I began some necessary alterations to the XHTML that describes
243.516 + the interos user environment. Once I finish the changes, I can
243.517 + apply them to the back-end so that it dynamically outputs the user
243.518 + environment in the proper format.
243.519 + </p>
243.520 + <p>
243.521 + <br />
243.522 + </p>
243.523 + </div>
243.524 + <div class="box">
243.525 + <h3>
243.526 + December 18th, 2006
243.527 + </h3>
243.528 + <p>
243.529 + My birthday today was marked with the international publication of the
243.530 + patent application for interos. The United States patent
243.531 + application was published on November 29th.
243.532 + </p>
243.533 + <p>
243.534 + <br />
243.535 + </p>
243.536 + </div>
243.537 + <div class="box">
243.538 + <h3>
243.539 + December 17th, 2006
243.540 + </h3>
243.541 + <p>
243.542 + The back-end for logging in is now working. Next up is getting
243.543 + the code for the interos environment working.
243.544 + </p>
243.545 + <p>
243.546 + <br />
243.547 + </p>
243.548 + </div>
243.549 + <div class="box">
243.550 + <h3>
243.551 + December 16th, 2006
243.552 + </h3>
243.553 + <p>
243.554 + The code for the easy login back-end requires some additional changes
243.555 + in order to work with the new server configuration. I should be
243.556 + able to have them implemented by some point tomorrow.
243.557 + </p>
243.558 + <p>
243.559 + <br />
243.560 + </p>
243.561 + </div>
243.562 + <div class="box">
243.563 + <h3>
243.564 + December 15th, 2006
243.565 + </h3>
243.566 + <p>
243.567 + I finished interlinking the pages of the site to form a new and larger
243.568 + skeletal site structure. It's mostly just placeholder pages that
243.569 + are light on content, but that's the part that comes next. What
243.570 + I <em>have</em> done is made sure that <strong>things have a place to
243.571 + go</strong>. Beefing up content of these pages and adding a
243.572 + public demo of interos are my next main areas of concentration.
243.573 + </p>
243.574 + <p>
243.575 + <br />
243.576 + </p>
243.577 + </div>
243.578 + <div class="box">
243.579 + <h3>
243.580 + December 14th, 2006
243.581 + </h3>
243.582 + <p>
243.583 + I finished the master control directory linking and started
243.584 + interlinking the existing skeletal site content with the new expanded
243.585 + material.
243.586 + </p>
243.587 + <p>
243.588 + <br />
243.589 + </p>
243.590 + </div>
243.591 + <div class="box">
243.592 + <h3>
243.593 + December 13th, 2006
243.594 + </h3>
243.595 + <p>
243.596 + Today I did most of the necessary master control directory linking for
243.597 + the expanded site content.
243.598 + </p>
243.599 + <p>
243.600 + <br />
243.601 + </p>
243.602 + </div>
243.603 + <div class="box">
243.604 + <h3>
243.605 + December 12th, 2006
243.606 + </h3>
243.607 + <p>
243.608 + I've gotten a lot of work done toward expanding the site. Changes
243.609 + will start showing up as I start linking them together with current
243.610 + site content. I also performed a great many web server
243.611 + configuration tweaks to accommodate the expanded content and improve
243.612 + site behavior.
243.613 + </p>
243.614 + <p>
243.615 + <br />
243.616 + </p>
243.617 + </div>
243.618 + <div class="box">
243.619 + <h3>
243.620 + December 11th, 2006
243.621 + </h3>
243.622 + <p>
243.623 + Today I brought the blog up to date! Now that that's done, I'm
243.624 + going to go write more <strong>code</strong>.
243.625 + </p>
243.626 + <p>
243.627 + <br />
243.628 + </p>
243.629 + </div>
243.630 + <div class="box">
243.631 + <h3>
243.632 + December 10th, 2006
243.633 + </h3>
243.634 + <p>
243.635 + I did some more work in configuring the web server to execute interos
243.636 + back-end code.
243.637 + </p>
243.638 + <p>
243.639 + <br />
243.640 + </p>
243.641 + </div>
243.642 + <div class="box">
243.643 + <h3>
243.644 + December 9th, 2006
243.645 + </h3>
243.646 + <p>
243.647 + I had another meeting with intern Hardik V. Shah regarding
243.648 + <strong>Java</strong> code integration. Everything seems to be
243.649 + coming along well.
243.650 + </p>
243.651 + <p>
243.652 + <br />
243.653 + </p>
243.654 + </div>
243.655 + <div class="box">
243.656 + <h3>
243.657 + December 8th, 2006
243.658 + </h3>
243.659 + <p>
243.660 + Work on tying in the back-end continues...
243.661 + </p>
243.662 + <p>
243.663 + <br />
243.664 + </p>
243.665 + </div>
243.666 + <div class="box">
243.667 + <h3>
243.668 + December 7th, 2006
243.669 + </h3>
243.670 + <p>
243.671 + Today I continue work on back-end porting and testing.
243.672 + </p>
243.673 + <p>
243.674 + <br />
243.675 + </p>
243.676 + </div>
243.677 + <div class="box">
243.678 + <h3>
243.679 + December 6th, 2006
243.680 + </h3>
243.681 + <p>
243.682 + I started work porting the back-end to the server and modifying it to
243.683 + output XHTML in the new format.
243.684 + </p>
243.685 + <p>
243.686 + <br />
243.687 + </p>
243.688 + </div>
243.689 + <div class="box">
243.690 + <h3>
243.691 + December 5th, 2006
243.692 + </h3>
243.693 + <p>
243.694 + The new login form is completed. I'm currently repeating the
243.695 + process for the form for new users to create a login. I also
243.696 + started work to interface both forms with the back-end. I
243.697 + performed some additional code cleanup on various site pages as well.
243.698 + </p>
243.699 + <p>
243.700 + <br />
243.701 + </p>
243.702 + </div>
243.703 + <div class="box">
243.704 + <h3>
243.705 + December 4th, 2006
243.706 + </h3>
243.707 + <p>
243.708 + The first element necessary for the demo is the <strong>easy
243.709 + login</strong>. I took the existing code I developed for this and
243.710 + reimplemented it in the new standard format using one of the templates
243.711 + I created. I also made some modifications to improve
243.712 + accessibility. There's going to be a fair amount of this sort of
243.713 + post over the next week or so as I apply this process to the code I've
243.714 + developed for the other elements of the demo.
243.715 + </p>
243.716 + <p>
243.717 + <br />
243.718 + </p>
243.719 + </div>
243.720 + <div class="box">
243.721 + <h3>
243.722 + December 3rd, 2006
243.723 + </h3>
243.724 + <p>
243.725 + Today I started work on bringing the demo to the server. Once
243.726 + enough of it is in place, it will be <strong>accessible</strong> from
243.727 + the <a href="https://www.interos.com/demo">demo</a> section.
243.728 + </p>
243.729 + <p>
243.730 + <br />
243.731 + </p>
243.732 + </div>
243.733 + <div class="box">
243.734 + <h3>
243.735 + December 2nd, 2006
243.736 + </h3>
243.737 + <p>
243.738 + Tagging is now completed. I also started preparing the server for
243.739 + the next sections I have planned.
243.740 + </p>
243.741 + <p>
243.742 + <br />
243.743 + </p>
243.744 + </div>
243.745 + <div class="box">
243.746 + <h3>
243.747 + December 1st, 2006
243.748 + </h3>
243.749 + <p>
243.750 + I finally finished getting the last of everything on the server
243.751 + properly <strong>organized</strong>, and I've finished tagging most of
243.752 + it as well.
243.753 + </p>
243.754 + <p>
243.755 + <br />
243.756 + </p>
243.757 + </div>
243.758 + <div class="box">
243.759 + <h3>
243.760 + November 30th, 2006
243.761 + </h3>
243.762 + <p>
243.763 + Site skeletal layout is <strong>firmly in place</strong>, and all areas
243.764 + are <strong>well-defined</strong> parts of the overall
243.765 + <strong>structure.</strong> It's now time to begin fleshing out
243.766 + site content.
243.767 + </p>
243.768 + <p>
243.769 + <br />
243.770 + </p>
243.771 + </div>
243.772 + <div class="box">
243.773 + <h3>
243.774 + November 29th, 2006
243.775 + </h3>
243.776 + <p>
243.777 + I linked basic style sheets in a manner to maximize
243.778 + <strong>efficiency</strong> and site <strong>consistency</strong>.
243.779 + </p>
243.780 + <p>
243.781 + <br />
243.782 + </p>
243.783 + </div>
243.784 + <div class="box">
243.785 + <h3>
243.786 + November 28th, 2006
243.787 + </h3>
243.788 + <p>
243.789 + The audit of existing XHTML continues with an emphasis on
243.790 + <strong>semantic correctness</strong> in code.
243.791 + </p>
243.792 + <p>
243.793 + <br />
243.794 + </p>
243.795 + </div>
243.796 + <div class="box">
243.797 + <h3>
243.798 + November 27th, 2006
243.799 + </h3>
243.800 + <p>
243.801 + The aforementioned templates further establish a standard format for
243.802 + site content, so I started an audit of existing XHTML code by beginning
243.803 + to apply the precedents set forth in said templates. This will
243.804 + further maximize the <strong>compatibility</strong> and
243.805 + <strong>accessibility</strong> of interos.
243.806 + </p>
243.807 + <p>
243.808 + <br />
243.809 + </p>
243.810 + </div>
243.811 + <div class="box">
243.812 + <h3>
243.813 + November 26th, 2006
243.814 + </h3>
243.815 + <p>
243.816 + I created some <strong>templates</strong> for the next wave of content.
243.817 + </p>
243.818 + <p>
243.819 + <br />
243.820 + </p>
243.821 + </div>
243.822 + <div class="box">
243.823 + <h3>
243.824 + November 25th, 2006
243.825 + </h3>
243.826 + <p>
243.827 + Today brings some site <strong>updates</strong> and a meeting.
243.828 + </p>
243.829 + <p>
243.830 + <br />
243.831 + </p>
243.832 + </div>
243.833 + <div class="box">
243.834 + <h3>
243.835 + November 24th, 2006
243.836 + </h3>
243.837 + <p>
243.838 + The <strong>master control directory</strong> is now
243.839 + <strong>completed</strong>.
243.840 + </p>
243.841 + <p>
243.842 + <br />
243.843 + </p>
243.844 + </div>
243.845 + <div class="box">
243.846 + <h3>
243.847 + November 23rd, 2006
243.848 + </h3>
243.849 + <p>
243.850 + <strong>Happy Thanksgiving</strong> from <strong>interos</strong>!
243.851 + </p>
243.852 + <p>
243.853 + <br />
243.854 + </p>
243.855 + </div>
243.856 + <div class="box">
243.857 + <h3>
243.858 + November 22nd, 2006
243.859 + </h3>
243.860 + <p>
243.861 + The <strong>server configuration</strong> is now updated to reflect the
243.862 + changes from linking virtual hosts to a master control directory.
243.863 + </p>
243.864 + <p>
243.865 + <br />
243.866 + </p>
243.867 + </div>
243.868 + <div class="box">
243.869 + <h3>
243.870 + November 21st, 2006
243.871 + </h3>
243.872 + <p>
243.873 + After a great deal of experimenting, I figured out the <strong>best
243.874 + method</strong> for linking everything in a way that will both work and
243.875 + be easy to update. It took all day to implement, but now common
243.876 + address requests can easily be linked to the proper corresponding
243.877 + resources.
243.878 + </p>
243.879 + <p>
243.880 + <br />
243.881 + </p>
243.882 + </div>
243.883 + <div class="box">
243.884 + <h3>
243.885 + November 20th, 2006
243.886 + </h3>
243.887 + <p>
243.888 + I was having difficulty managing all the virtual hosts that define the
243.889 + interconnected sections of the interos site layout. Then I had
243.890 + the idea to implement a <strong>master control directory</strong>.
243.891 + </p>
243.892 + <p>
243.893 + <br />
243.894 + </p>
243.895 + </div>
243.896 + <div class="box">
243.897 + <h3>
243.898 + November 19th, 2006
243.899 + </h3>
243.900 + <p>
243.901 + Last night I mapped out a <strong>logical web filesystem
243.902 + layout</strong> to coincide with the aforementioned easy web
243.903 + addresses. I still have some more time today, so I have some odds
243.904 + and ends in mind to spend it working on. The sooner I get them
243.905 + out of the way, the sooner I can get to posting the exciting stuff.
243.906 + </p>
243.907 + <p>
243.908 + <br />
243.909 + </p>
243.910 + </div>
243.911 + <div class="box">
243.912 + <h3>
243.913 + November 18th, 2006
243.914 + </h3>
243.915 + <p>
243.916 + Today was various updates to site content, including a link to what an
243.917 + <strong><a
243.918 + href="http://en.wikipedia.org/wiki/Internet_Operating_Systems">internet
243.919 + operating system</a></strong> is.
243.920 + </p>
243.921 + <p>
243.922 + <br />
243.923 + </p>
243.924 + </div>
243.925 + <div class="box">
243.926 + <h3>
243.927 + November 17th, 2006
243.928 + </h3>
243.929 + <p>
243.930 + I've gone through and cleaned up most of the code, and I've established
243.931 + a <strong>standard format</strong> for delivering site content.
243.932 + </p>
243.933 + <p>
243.934 + <br />
243.935 + </p>
243.936 + </div>
243.937 + <div class="box">
243.938 + <h3>
243.939 + November 16th, 2006
243.940 + </h3>
243.941 + <p>
243.942 + The new configuration is working well, and I've been able to implement
243.943 + site-wide changes a lot faster. This is already leading to
243.944 + cleaner code and a more <strong>consistent look and feel</strong>.
243.945 + </p>
243.946 + <p>
243.947 + <br />
243.948 + </p>
243.949 + </div>
243.950 + <div class="box">
243.951 + <h3>
243.952 + November 15th, 2006
243.953 + </h3>
243.954 + <p>
243.955 + I've now finished enough work on the local systems that I can get
243.956 + started on <strong>rapid deployment</strong> of site content.
243.957 + </p>
243.958 + <p>
243.959 + <br />
243.960 + </p>
243.961 + </div>
243.962 + <div class="box">
243.963 + <h3>
243.964 + November 14th, 2006
243.965 + </h3>
243.966 + <p>
243.967 + Some changes to my <strong>development environment</strong> should make
243.968 + my work a lot <strong>easier</strong> from now on.
243.969 + </p>
243.970 + <p>
243.971 + <br />
243.972 + </p>
243.973 + </div>
243.974 + <div class="box">
243.975 + <h3>
243.976 + November 13th, 2006
243.977 + </h3>
243.978 + <p>
243.979 + Today was yet more work on the local <strong>development and
243.980 + testing</strong> servers. It's all coming along nicely, but it's
243.981 + a fair amount of work to assemble a specific server software framework
243.982 + on <strong>multiple platforms</strong> simultaneously.
243.983 + </p>
243.984 + <p>
243.985 + <br />
243.986 + </p>
243.987 + </div>
243.988 + <div class="box">
243.989 + <h3>
243.990 + November 12th, 2006
243.991 + </h3>
243.992 + <p>
243.993 + After running code through validators and making the appropriate
243.994 + alterations, interos now uses only <strong>valid CSS</strong> for
243.995 + maximum interoperability.
243.996 + </p>
243.997 + <p>
243.998 + <br />
243.999 + </p>
243.1000 + </div>
243.1001 + <div class="box">
243.1002 + <h3>
243.1003 + November 11th, 2006
243.1004 + </h3>
243.1005 + <p>
243.1006 + After running code through validators and making the appropriate
243.1007 + alterations, interos now uses only <strong>valid XHTML</strong> for
243.1008 + maximum interoperability.
243.1009 + </p>
243.1010 + <p>
243.1011 + <br />
243.1012 + </p>
243.1013 + </div>
243.1014 + <div class="box">
243.1015 + <h3>
243.1016 + November 10th, 2006
243.1017 + </h3>
243.1018 + <p>
243.1019 + Today I started work on new local development and testing servers to
243.1020 + speed up finalizing code for production and to serve as a
243.1021 + <strong>backup</strong>. interos uses only <strong>free</strong>
243.1022 + and <strong>open source</strong> software.
243.1023 + </p>
243.1024 + <p>
243.1025 + <br />
243.1026 + </p>
243.1027 + </div>
243.1028 + <div class="box">
243.1029 + <h3>
243.1030 + November 9th, 2006
243.1031 + </h3>
243.1032 + <p>
243.1033 + interos is now set up to have <strong>easy web addresses</strong>.
243.1034 + </p>
243.1035 + <p>
243.1036 + <br />
243.1037 + </p>
243.1038 + </div>
243.1039 + <div class="box">
243.1040 + <h3>
243.1041 + November 8th, 2006
243.1042 + </h3>
243.1043 + <p>
243.1044 + Today was a lot of <strong>correspondence</strong> regarding the design
243.1045 + goals of interos.
243.1046 + </p>
243.1047 + <p>
243.1048 + <br />
243.1049 + </p>
243.1050 + </div>
243.1051 + <div class="box">
243.1052 + <h3>
243.1053 + November 7th, 2006
243.1054 + </h3>
243.1055 + <p>
243.1056 + I met with Hardik Shah today to discuss the <strong>integration of
243.1057 + code</strong> that he, Rajdeep Bhowmik, Andrew Paroski and Amol
243.1058 + Panchabhai have developed.
243.1059 + </p>
243.1060 + <p>
243.1061 + <br />
243.1062 + </p>
243.1063 + </div>
243.1064 + <div class="box">
243.1065 + <h3>
243.1066 + November 6th, 2006
243.1067 + </h3>
243.1068 + <p>
243.1069 + I did a lot of work today to <strong>maximize accessibility and ease of
243.1070 + use</strong> of the forthcoming site content. I'm excited that
243.1071 + everything's going to work so nicely.
243.1072 + </p>
243.1073 + <p>
243.1074 + <br />
243.1075 + </p>
243.1076 + </div>
243.1077 + <div class="box">
243.1078 + <h3>
243.1079 + November 5th, 2006
243.1080 + </h3>
243.1081 + <p>
243.1082 + Today was about taking care of miscellaneous odds and ends. There
243.1083 + were various tweaks to configuration files and a few alterations to
243.1084 + <strong>file permissions for security</strong> while I restructured
243.1085 + some file hierarchies. The served content directories are
243.1086 + starting to feel a great deal more <strong>organized and
243.1087 + logical</strong>. This will make <strong>content
243.1088 + management</strong> a lot easier.
243.1089 + </p>
243.1090 + <p>
243.1091 + <br />
243.1092 + </p>
243.1093 + </div>
243.1094 + <div class="box">
243.1095 + <h3>
243.1096 + November 4th, 2006
243.1097 + </h3>
243.1098 + <p>
243.1099 + I took the time to set up some administrative <strong>e-mail</strong>
243.1100 + accounts on each domain. I also performed any necessary address
243.1101 + aliasing and/or forwarding. Now the sites have working
243.1102 + <a href="mailto:info@interos.org">contact</a> links.
243.1103 + </p>
243.1104 + <p>
243.1105 + <br />
243.1106 + </p>
243.1107 + </div>
243.1108 + <div class="box">
243.1109 + <h3>
243.1110 + November 3rd, 2006
243.1111 + </h3>
243.1112 + <p>
243.1113 + The interos sites are <strong>now secured</strong> using a free
243.1114 + multi-domain SSL/TLS certificate thanks to
243.1115 + <a href="http://www.cacert.org/">CAcert.org</a> and
243.1116 + <a href="http://guillaume.romagny.free.fr/evaldo/csr.sh">this
243.1117 + script</a>. Our sites leverage the strength of the AES-256
243.1118 + encryption algorithm for securing user data and a 1024-bit RSA key for
243.1119 + <strong>maximum browser compatibility</strong>. The web server
243.1120 + configuration and directory structures for site content have been
243.1121 + modified accordingly.
243.1122 + </p>
243.1123 + <p>
243.1124 + <br />
243.1125 + </p>
243.1126 + </div>
243.1127 + <div class="box">
243.1128 + <h3>
243.1129 + November 2nd, 2006
243.1130 + </h3>
243.1131 + <p>
243.1132 + I finished performing numerous <strong>optimizations</strong> to the
243.1133 + server system. The physical server was rebooted and everything
243.1134 + seems to be <strong>humming away nicely</strong>. I have some further
243.1135 + optimizations in mind, but I'll look into those some other time when
243.1136 + there isn't quite so much to be done!
243.1137 + </p>
243.1138 + <p>
243.1139 + <br />
243.1140 + </p>
243.1141 + </div>
243.1142 + <div class="box">
243.1143 + <h3>
243.1144 + November 1st, 2006
243.1145 + </h3>
243.1146 + <p>
243.1147 + The <strong>interos server is online</strong> and the
243.1148 + <a href="https://interos.org/">interos.org</a> and
243.1149 + <a href="https://www.interos.com/">interos.com</a> domain names have
243.1150 + been associated with it.
243.1151 + </p>
243.1152 + <p>
243.1153 + I've begun populating the sites with some <strong>rough skeletal
243.1154 + content</strong> in order to test the web server configuration.
243.1155 + This skeletal content also acts as a foundation for the content I
243.1156 + ultimately intend for these sites to contain. In addition, I've
243.1157 + started this <strong>daily blog</strong> as a continuing record of the
243.1158 + progress I've made and the goals that follow.
243.1159 + </p>
243.1160 + <p>
243.1161 + For a description of interos and its history so far, see the
243.1162 + <a href="/about">about</a> section as content is added to it.
243.1163 + </p>
243.1164 + <p>
243.1165 + <br />
243.1166 + </p>
243.1167 + </div>
243.1168 + <center>
243.1169 + <p id="copyrightDates">
243.1170 + © 2001–2009 interos
243.1171 + </p>
243.1172 + </center>
243.1173 + </body>
243.1174 + <!--=====================================================================-->
243.1175 + <!-- Copyright and Trademark Statement -->
243.1176 + <!--=====================================================================-->
243.1177 + <!-- -->
243.1178 + <!-- All original textual and graphical site content: -->
243.1179 + <!-- -->
243.1180 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
243.1181 + <!-- reserved. Reproduction in whole or in part without written -->
243.1182 + <!-- permission is prohibited. interos and the interos logos are -->
243.1183 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
243.1184 + <!-- product, and service names mentioned herein may be the properties -->
243.1185 + <!-- of their respective owners. Comments in the interos.org forums -->
243.1186 + <!-- are the properties of their respective authors. All software -->
243.1187 + <!-- developed in the forums is open source and belongs to everyone. -->
243.1188 + <!-- -->
243.1189 + <!--=====================================================================-->
243.1190 + <!-- e-mail: info@interos.org -->
243.1191 + <!--=====================================================================-->
243.1192 +</html>
244.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
244.2 +++ b/xhtml/page/code_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
244.3 @@ -0,0 +1,106 @@
244.4 +<?xml version="1.0" encoding="utf-8"?>
244.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
244.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
244.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
244.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
244.9 + <!--=================================================-->
244.10 + <!-- interos Standard Document Header - Markup -->
244.11 + <!--=================================================-->
244.12 + <!-- URIs: http://interos.com/code -->
244.13 + <!-- http://code.interos.com/ -->
244.14 + <!-- http://www.interos.com/code -->
244.15 + <!-- Title: interos code -->
244.16 + <!-- Author: Brent Angeline -->
244.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
244.18 + <!--=================================================-->
244.19 + <head>
244.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
244.21 + <meta name="title" content="interos code" />
244.22 + <meta name="description" content="source code for interos" />
244.23 + <meta name="author" content="Brent Angeline" />
244.24 + <meta name="copyright"
244.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
244.26 + <meta name="robots" content="index, follow, noarchive" />
244.27 + <title>interos code</title>
244.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
244.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
244.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
244.31 + media="screen, projection" />
244.32 + <script type="text/javascript" src="/js/default.js"></script>
244.33 + </head>
244.34 + <body id="body">
244.35 + <center>
244.36 + <p id="navigation">
244.37 + <a href="/about">about</a> |
244.38 + <a href="/blog">blog</a> |
244.39 + code |
244.40 + <a href="/demo">demo</a> |
244.41 + <a href="/e-mail">e-mail</a> |
244.42 + <a href="/faq">f.a.q.</a> |
244.43 + <a href="/gear">gear</a> |
244.44 + <a href="http://www.interos.com/">home</a>
244.45 + </p>
244.46 + <table id="mainPanel">
244.47 + <thead>
244.48 + <tr>
244.49 + <th><center>
244.50 + <h1>
244.51 + <a href="http://code.interos.com/">interos code</a>
244.52 + </h1>
244.53 + <h2>
244.54 + source code for interos
244.55 + </h2>
244.56 + </center></th>
244.57 + </tr>
244.58 + </thead>
244.59 + <tfoot>
244.60 + <tr>
244.61 + <td><br /></td>
244.62 + </tr>
244.63 + </tfoot>
244.64 + <tbody>
244.65 + <tr>
244.66 + <td><p>
244.67 + The thousands upon thousands of lines of source code
244.68 + underlying interos will be open-sourced under a Creative
244.69 + Commons license once the code is updated and packaged.
244.70 + </p>
244.71 + <p>
244.72 + <strong>Developers:</strong> for information on how you can
244.73 + start developing free and open source applications for this
244.74 + free and open platform, please contact:
244.75 + </p>
244.76 + <center>
244.77 + <p>
244.78 + <strong>
244.79 + <a href="mailto:info@interos.com">info@interos.com</a>
244.80 + </strong>
244.81 + </p>
244.82 + </center></td>
244.83 + </tr>
244.84 + </tbody>
244.85 + </table>
244.86 + <p id="copyrightDates">
244.87 + © 2001–2009 interos
244.88 + </p>
244.89 + </center>
244.90 + </body>
244.91 + <!--=====================================================================-->
244.92 + <!-- Copyright and Trademark Statement -->
244.93 + <!--=====================================================================-->
244.94 + <!-- -->
244.95 + <!-- All original textual and graphical site content: -->
244.96 + <!-- -->
244.97 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
244.98 + <!-- reserved. Reproduction in whole or in part without written -->
244.99 + <!-- permission is prohibited. interos and the interos logos are -->
244.100 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
244.101 + <!-- product, and service names mentioned herein may be the properties -->
244.102 + <!-- of their respective owners. Comments in the interos.org forums -->
244.103 + <!-- are the properties of their respective authors. All software -->
244.104 + <!-- developed in the forums is open source and belongs to everyone. -->
244.105 + <!-- -->
244.106 + <!--=====================================================================-->
244.107 + <!-- e-mail: info@interos.com -->
244.108 + <!--=====================================================================-->
244.109 +</html>
245.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
245.2 +++ b/xhtml/page/code_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
245.3 @@ -0,0 +1,106 @@
245.4 +<?xml version="1.0" encoding="utf-8"?>
245.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
245.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
245.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
245.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
245.9 + <!--=================================================-->
245.10 + <!-- interos Standard Document Header - Markup -->
245.11 + <!--=================================================-->
245.12 + <!-- URIs: https://interos.com/code -->
245.13 + <!-- https://code.interos.com/ -->
245.14 + <!-- https://www.interos.com/code -->
245.15 + <!-- Title: interos code -->
245.16 + <!-- Author: Brent Angeline -->
245.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
245.18 + <!--=================================================-->
245.19 + <head>
245.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
245.21 + <meta name="title" content="interos code" />
245.22 + <meta name="description" content="source code for interos" />
245.23 + <meta name="author" content="Brent Angeline" />
245.24 + <meta name="copyright"
245.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
245.26 + <meta name="robots" content="index, follow, noarchive" />
245.27 + <title>interos code</title>
245.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
245.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
245.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
245.31 + media="screen, projection" />
245.32 + <script type="text/javascript" src="/js/default.js"></script>
245.33 + </head>
245.34 + <body id="body">
245.35 + <center>
245.36 + <p id="navigation">
245.37 + <a href="/about">about</a> |
245.38 + <a href="/blog">blog</a> |
245.39 + code |
245.40 + <a href="/demo">demo</a> |
245.41 + <a href="/e-mail">e-mail</a> |
245.42 + <a href="/faq">f.a.q.</a> |
245.43 + <a href="/gear">gear</a> |
245.44 + <a href="https://www.interos.com/">home</a>
245.45 + </p>
245.46 + <table id="mainPanel">
245.47 + <thead>
245.48 + <tr>
245.49 + <th><center>
245.50 + <h1>
245.51 + <a href="https://code.interos.com/">interos code</a>
245.52 + </h1>
245.53 + <h2>
245.54 + source code for interos
245.55 + </h2>
245.56 + </center></th>
245.57 + </tr>
245.58 + </thead>
245.59 + <tfoot>
245.60 + <tr>
245.61 + <td><br /></td>
245.62 + </tr>
245.63 + </tfoot>
245.64 + <tbody>
245.65 + <tr>
245.66 + <td><p>
245.67 + The thousands upon thousands of lines of source code
245.68 + underlying interos will be open-sourced under a Creative
245.69 + Commons license once the code is updated and packaged.
245.70 + </p>
245.71 + <p>
245.72 + <strong>Developers:</strong> for information on how you can
245.73 + start developing free and open source applications for this
245.74 + free and open platform, please contact:
245.75 + </p>
245.76 + <center>
245.77 + <p>
245.78 + <strong>
245.79 + <a href="mailto:info@interos.com">info@interos.com</a>
245.80 + </strong>
245.81 + </p>
245.82 + </center></td>
245.83 + </tr>
245.84 + </tbody>
245.85 + </table>
245.86 + <p id="copyrightDates">
245.87 + © 2001–2009 interos
245.88 + </p>
245.89 + </center>
245.90 + </body>
245.91 + <!--=====================================================================-->
245.92 + <!-- Copyright and Trademark Statement -->
245.93 + <!--=====================================================================-->
245.94 + <!-- -->
245.95 + <!-- All original textual and graphical site content: -->
245.96 + <!-- -->
245.97 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
245.98 + <!-- reserved. Reproduction in whole or in part without written -->
245.99 + <!-- permission is prohibited. interos and the interos logos are -->
245.100 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
245.101 + <!-- product, and service names mentioned herein may be the properties -->
245.102 + <!-- of their respective owners. Comments in the interos.org forums -->
245.103 + <!-- are the properties of their respective authors. All software -->
245.104 + <!-- developed in the forums is open source and belongs to everyone. -->
245.105 + <!-- -->
245.106 + <!--=====================================================================-->
245.107 + <!-- e-mail: info@interos.com -->
245.108 + <!--=====================================================================-->
245.109 +</html>
246.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
246.2 +++ b/xhtml/page/code_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
246.3 @@ -0,0 +1,106 @@
246.4 +<?xml version="1.0" encoding="utf-8"?>
246.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
246.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
246.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
246.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
246.9 + <!--=================================================-->
246.10 + <!-- interos Standard Document Header - Markup -->
246.11 + <!--=================================================-->
246.12 + <!-- URIs: http://interos.org/code -->
246.13 + <!-- http://code.interos.org/ -->
246.14 + <!-- http://www.interos.com/code -->
246.15 + <!-- Title: interos code -->
246.16 + <!-- Author: Brent Angeline -->
246.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
246.18 + <!--=================================================-->
246.19 + <head>
246.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
246.21 + <meta name="title" content="interos code" />
246.22 + <meta name="description" content="source code for interos" />
246.23 + <meta name="author" content="Brent Angeline" />
246.24 + <meta name="copyright"
246.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
246.26 + <meta name="robots" content="index, follow, noarchive" />
246.27 + <title>interos code</title>
246.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
246.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
246.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
246.31 + media="screen, projection" />
246.32 + <script type="text/javascript" src="/js/default.js"></script>
246.33 + </head>
246.34 + <body id="body">
246.35 + <center>
246.36 + <p id="navigation">
246.37 + <a href="/about">about</a> |
246.38 + <a href="/blog">blog</a> |
246.39 + code |
246.40 + <a href="/forums">develop</a> |
246.41 + <a href="/e-mail">e-mail</a> |
246.42 + <a href="/faq">f.a.q.</a> |
246.43 + <a href="/gear">gear</a> |
246.44 + <a href="http://interos.org/">home</a>
246.45 + </p>
246.46 + <table id="mainPanel">
246.47 + <thead>
246.48 + <tr>
246.49 + <th><center>
246.50 + <h1>
246.51 + <a href="http://code.interos.org/">interos code</a>
246.52 + </h1>
246.53 + <h2>
246.54 + source code for interos
246.55 + </h2>
246.56 + </center></th>
246.57 + </tr>
246.58 + </thead>
246.59 + <tfoot>
246.60 + <tr>
246.61 + <td><br /></td>
246.62 + </tr>
246.63 + </tfoot>
246.64 + <tbody>
246.65 + <tr>
246.66 + <td><p>
246.67 + The thousands upon thousands of lines of source code
246.68 + underlying interos will be open-sourced under a Creative
246.69 + Commons license once the code is updated and packaged.
246.70 + </p>
246.71 + <p>
246.72 + <strong>Developers:</strong> for information on how you can
246.73 + start developing free and open source applications for this
246.74 + free and open platform, please contact:
246.75 + </p>
246.76 + <center>
246.77 + <p>
246.78 + <strong>
246.79 + <a href="mailto:info@interos.org">info@interos.org</a>
246.80 + </strong>
246.81 + </p>
246.82 + </center></td>
246.83 + </tr>
246.84 + </tbody>
246.85 + </table>
246.86 + <p id="copyrightDates">
246.87 + © 2001–2009 interos
246.88 + </p>
246.89 + </center>
246.90 + </body>
246.91 + <!--=====================================================================-->
246.92 + <!-- Copyright and Trademark Statement -->
246.93 + <!--=====================================================================-->
246.94 + <!-- -->
246.95 + <!-- All original textual and graphical site content: -->
246.96 + <!-- -->
246.97 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
246.98 + <!-- reserved. Reproduction in whole or in part without written -->
246.99 + <!-- permission is prohibited. interos and the interos logos are -->
246.100 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
246.101 + <!-- product, and service names mentioned herein may be the properties -->
246.102 + <!-- of their respective owners. Comments in the interos.org forums -->
246.103 + <!-- are the properties of their respective authors. All software -->
246.104 + <!-- developed in the forums is open source and belongs to everyone. -->
246.105 + <!-- -->
246.106 + <!--=====================================================================-->
246.107 + <!-- e-mail: info@interos.org -->
246.108 + <!--=====================================================================-->
246.109 +</html>
247.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
247.2 +++ b/xhtml/page/code_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
247.3 @@ -0,0 +1,106 @@
247.4 +<?xml version="1.0" encoding="utf-8"?>
247.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
247.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
247.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
247.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
247.9 + <!--=================================================-->
247.10 + <!-- interos Standard Document Header - Markup -->
247.11 + <!--=================================================-->
247.12 + <!-- URIs: https://interos.org/code -->
247.13 + <!-- https://code.interos.org/ -->
247.14 + <!-- https://www.interos.org/code -->
247.15 + <!-- Title: interos code -->
247.16 + <!-- Author: Brent Angeline -->
247.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
247.18 + <!--=================================================-->
247.19 + <head>
247.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
247.21 + <meta name="title" content="interos code" />
247.22 + <meta name="description" content="source code for interos" />
247.23 + <meta name="author" content="Brent Angeline" />
247.24 + <meta name="copyright"
247.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
247.26 + <meta name="robots" content="index, follow, noarchive" />
247.27 + <title>interos code</title>
247.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
247.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
247.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
247.31 + media="screen, projection" />
247.32 + <script type="text/javascript" src="/js/default.js"></script>
247.33 + </head>
247.34 + <body id="body">
247.35 + <center>
247.36 + <p id="navigation">
247.37 + <a href="/about">about</a> |
247.38 + <a href="/blog">blog</a> |
247.39 + code |
247.40 + <a href="/forums">develop</a> |
247.41 + <a href="/e-mail">e-mail</a> |
247.42 + <a href="/faq">f.a.q.</a> |
247.43 + <a href="/gear">gear</a> |
247.44 + <a href="https://interos.org/">home</a>
247.45 + </p>
247.46 + <table id="mainPanel">
247.47 + <thead>
247.48 + <tr>
247.49 + <th><center>
247.50 + <h1>
247.51 + <a href="https://code.interos.org/">interos code</a>
247.52 + </h1>
247.53 + <h2>
247.54 + source code for interos
247.55 + </h2>
247.56 + </center></th>
247.57 + </tr>
247.58 + </thead>
247.59 + <tfoot>
247.60 + <tr>
247.61 + <td><br /></td>
247.62 + </tr>
247.63 + </tfoot>
247.64 + <tbody>
247.65 + <tr>
247.66 + <td><p>
247.67 + The thousands upon thousands of lines of source code
247.68 + underlying interos will be open-sourced under a Creative
247.69 + Commons license once the code is updated and packaged.
247.70 + </p>
247.71 + <p>
247.72 + <strong>Developers:</strong> for information on how you can
247.73 + start developing free and open source applications for this
247.74 + free and open platform, please contact:
247.75 + </p>
247.76 + <center>
247.77 + <p>
247.78 + <strong>
247.79 + <a href="mailto:info@interos.org">info@interos.org</a>
247.80 + </strong>
247.81 + </p>
247.82 + </center></td>
247.83 + </tr>
247.84 + </tbody>
247.85 + </table>
247.86 + <p id="copyrightDates">
247.87 + © 2001–2009 interos
247.88 + </p>
247.89 + </center>
247.90 + </body>
247.91 + <!--=====================================================================-->
247.92 + <!-- Copyright and Trademark Statement -->
247.93 + <!--=====================================================================-->
247.94 + <!-- -->
247.95 + <!-- All original textual and graphical site content: -->
247.96 + <!-- -->
247.97 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
247.98 + <!-- reserved. Reproduction in whole or in part without written -->
247.99 + <!-- permission is prohibited. interos and the interos logos are -->
247.100 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
247.101 + <!-- product, and service names mentioned herein may be the properties -->
247.102 + <!-- of their respective owners. Comments in the interos.org forums -->
247.103 + <!-- are the properties of their respective authors. All software -->
247.104 + <!-- developed in the forums is open source and belongs to everyone. -->
247.105 + <!-- -->
247.106 + <!--=====================================================================-->
247.107 + <!-- e-mail: info@interos.org -->
247.108 + <!--=====================================================================-->
247.109 +</html>
248.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
248.2 +++ b/xhtml/page/default.xhtml Sat May 01 16:19:36 2010 -0400
248.3 @@ -0,0 +1,91 @@
248.4 +<?xml version="1.0" encoding="utf-8"?>
248.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
248.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
248.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
248.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
248.9 + <!--==========================================================-->
248.10 + <!-- interos Standard Document Header - Markup -->
248.11 + <!--==========================================================-->
248.12 + <!-- URIs: / -->
248.13 + <!-- /index.html -->
248.14 + <!-- Title: interos -->
248.15 + <!-- Description: Default HTTP Response on this IP Address -->
248.16 + <!-- Author: Brent Angeline -->
248.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
248.18 + <!--==========================================================-->
248.19 + <head>
248.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
248.21 + <meta name="title" content="interos" />
248.22 + <meta name="description"
248.23 + content="internet operating system for open source applications" />
248.24 + <meta name="author" content="Brent Angeline" />
248.25 + <meta name="copyright"
248.26 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
248.27 + <meta name="robots" content="noindex, follow, noarchive" />
248.28 + <title>interos</title>
248.29 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
248.30 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
248.31 + <link rel="stylesheet" type="text/css" href="/style/default.css"
248.32 + media="screen, projection" />
248.33 + </head>
248.34 + <body id="body">
248.35 + <center>
248.36 + <table id="mainPanel" class="default">
248.37 + <thead>
248.38 + <tr>
248.39 + <th><center>
248.40 + <h1>
248.41 + interos
248.42 + </h1>
248.43 + <h2>
248.44 + choose your destination:
248.45 + </h2>
248.46 + </center></th>
248.47 + </tr>
248.48 + </thead>
248.49 + <tfoot>
248.50 + <tr>
248.51 + <td><br /></td>
248.52 + </tr>
248.53 + </tfoot>
248.54 + <tbody>
248.55 + <tr>
248.56 + <td><center>
248.57 + <p>
248.58 + <strong><a
248.59 + href="http://www.interos.com/">interos.com</a></strong>:
248.60 + internet operating system
248.61 + </p>
248.62 + <p>
248.63 + <strong><a
248.64 + href="http://interos.org/">interos.org</a></strong>:
248.65 + internet open source
248.66 + </p>
248.67 + </center></td>
248.68 + </tr>
248.69 + </tbody>
248.70 + </table>
248.71 + <p id="copyrightDates">
248.72 + © 2001–2009 interos
248.73 + </p>
248.74 + </center>
248.75 + </body>
248.76 + <!--=====================================================================-->
248.77 + <!-- Copyright and Trademark Statement -->
248.78 + <!--=====================================================================-->
248.79 + <!-- -->
248.80 + <!-- All original textual and graphical site content: -->
248.81 + <!-- -->
248.82 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
248.83 + <!-- reserved. Reproduction in whole or in part without written -->
248.84 + <!-- permission is prohibited. interos and the interos logos are -->
248.85 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
248.86 + <!-- product, and service names mentioned herein may be the properties -->
248.87 + <!-- of their respective owners. Comments in the interos.org forums -->
248.88 + <!-- are the properties of their respective authors. All software -->
248.89 + <!-- developed in the forums is open source and belongs to everyone. -->
248.90 + <!-- -->
248.91 + <!--=====================================================================-->
248.92 + <!-- e-mail: info@interos.org -->
248.93 + <!--=====================================================================-->
248.94 +</html>
249.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
249.2 +++ b/xhtml/page/default_ssl.xhtml Sat May 01 16:19:36 2010 -0400
249.3 @@ -0,0 +1,91 @@
249.4 +<?xml version="1.0" encoding="utf-8"?>
249.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
249.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
249.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
249.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
249.9 + <!--===========================================================-->
249.10 + <!-- interos Standard Document Header - Markup -->
249.11 + <!--===========================================================-->
249.12 + <!-- URIs: / -->
249.13 + <!-- /index.html -->
249.14 + <!-- Title: interos -->
249.15 + <!-- Description: Default HTTPS Response on this IP Address -->
249.16 + <!-- Author: Brent Angeline -->
249.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
249.18 + <!--===========================================================-->
249.19 + <head>
249.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
249.21 + <meta name="title" content="interos" />
249.22 + <meta name="description"
249.23 + content="internet operating system for open source applications" />
249.24 + <meta name="author" content="Brent Angeline" />
249.25 + <meta name="copyright"
249.26 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
249.27 + <meta name="robots" content="noindex, follow, noarchive" />
249.28 + <title>interos</title>
249.29 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
249.30 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
249.31 + <link rel="stylesheet" type="text/css" href="/style/default.css"
249.32 + media="screen, projection" />
249.33 + </head>
249.34 + <body id="body">
249.35 + <center>
249.36 + <table id="mainPanel" class="default">
249.37 + <thead>
249.38 + <tr>
249.39 + <th><center>
249.40 + <h1>
249.41 + interos
249.42 + </h1>
249.43 + <h2>
249.44 + choose your destination:
249.45 + </h2>
249.46 + </center></th>
249.47 + </tr>
249.48 + </thead>
249.49 + <tfoot>
249.50 + <tr>
249.51 + <td><br /></td>
249.52 + </tr>
249.53 + </tfoot>
249.54 + <tbody>
249.55 + <tr>
249.56 + <td><center>
249.57 + <p>
249.58 + <strong><a
249.59 + href="https://www.interos.com/">interos.com</a></strong>:
249.60 + internet operating system
249.61 + </p>
249.62 + <p>
249.63 + <strong><a
249.64 + href="https://interos.org/">interos.org</a></strong>:
249.65 + internet open source
249.66 + </p>
249.67 + </center></td>
249.68 + </tr>
249.69 + </tbody>
249.70 + </table>
249.71 + <p id="copyrightDates">
249.72 + © 2001–2009 interos
249.73 + </p>
249.74 + </center>
249.75 + </body>
249.76 + <!--=====================================================================-->
249.77 + <!-- Copyright and Trademark Statement -->
249.78 + <!--=====================================================================-->
249.79 + <!-- -->
249.80 + <!-- All original textual and graphical site content: -->
249.81 + <!-- -->
249.82 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
249.83 + <!-- reserved. Reproduction in whole or in part without written -->
249.84 + <!-- permission is prohibited. interos and the interos logos are -->
249.85 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
249.86 + <!-- product, and service names mentioned herein may be the properties -->
249.87 + <!-- of their respective owners. Comments in the interos.org forums -->
249.88 + <!-- are the properties of their respective authors. All software -->
249.89 + <!-- developed in the forums is open source and belongs to everyone. -->
249.90 + <!-- -->
249.91 + <!--=====================================================================-->
249.92 + <!-- e-mail: info@interos.org -->
249.93 + <!--=====================================================================-->
249.94 +</html>
250.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
250.2 +++ b/xhtml/page/demo_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
250.3 @@ -0,0 +1,113 @@
250.4 +<?xml version="1.0" encoding="utf-8"?>
250.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
250.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
250.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
250.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
250.9 + <!--=================================================-->
250.10 + <!-- interos Standard Document Header - Markup -->
250.11 + <!--=================================================-->
250.12 + <!-- URIs: http://interos.com/demo -->
250.13 + <!-- http://demo.interos.com/ -->
250.14 + <!-- http://www.interos.com/demo -->
250.15 + <!-- Title: interos demo -->
250.16 + <!-- Author: Brent Angeline -->
250.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
250.18 + <!--=================================================-->
250.19 + <head>
250.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
250.21 + <meta name="title" content="interos demo" />
250.22 + <meta name="description" content="internet operating system demo" />
250.23 + <meta name="author" content="Brent Angeline" />
250.24 + <meta name="copyright"
250.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
250.26 + <meta name="robots" content="index, follow, noarchive" />
250.27 + <title>interos demo</title>
250.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
250.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
250.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
250.31 + media="screen, projection" />
250.32 + <script type="text/javascript" src="/js/default.js"></script>
250.33 + </head>
250.34 + <body id="body">
250.35 + <center>
250.36 + <p id="navigation">
250.37 + <a href="/about">about</a> |
250.38 + <a href="/blog">blog</a> |
250.39 + <a href="/code">code</a> |
250.40 + demo |
250.41 + <a href="/e-mail">e-mail</a> |
250.42 + <a href="/faq">f.a.q.</a> |
250.43 + <a href="/gear">gear</a> |
250.44 + <a href="http://www.interos.com/">home</a>
250.45 + </p>
250.46 + <table id="mainPanel">
250.47 + <thead>
250.48 + <tr>
250.49 + <th><center>
250.50 + <h1>
250.51 + <a href="http://demo.interos.com/">interos demo</a>
250.52 + </h1>
250.53 + <h2>
250.54 + sneak preview
250.55 + </h2>
250.56 + </center></th>
250.57 + </tr>
250.58 + </thead>
250.59 + <tfoot>
250.60 + <tr>
250.61 + <td><br /></td>
250.62 + </tr>
250.63 + </tfoot>
250.64 + <tbody>
250.65 + <tr>
250.66 + <td><center>
250.67 + <p>
250.68 + Here's your chance to see interos as it's being built!
250.69 + </p>
250.70 + <p>
250.71 + After clicking the link below, you may need to select<br />
250.72 + <em>
250.73 + <strong>
250.74 + “accept this certificate”
250.75 + </strong>
250.76 + –or–
250.77 + <strong>
250.78 + “continue to this website”
250.79 + </strong>
250.80 + </em><br />
250.81 + in order to establish the secure connection interos uses.
250.82 + </p>
250.83 + <p>
250.84 + <strong>
250.85 + <a href="https://www.interos.com/login">Proceed to demo
250.86 + »</a>
250.87 + </strong>
250.88 + </p>
250.89 + </center></td>
250.90 + </tr>
250.91 + </tbody>
250.92 + </table>
250.93 + <p id="copyrightDates">
250.94 + © 2001–2009 interos
250.95 + </p>
250.96 + </center>
250.97 + </body>
250.98 + <!--=====================================================================-->
250.99 + <!-- Copyright and Trademark Statement -->
250.100 + <!--=====================================================================-->
250.101 + <!-- -->
250.102 + <!-- All original textual and graphical site content: -->
250.103 + <!-- -->
250.104 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
250.105 + <!-- reserved. Reproduction in whole or in part without written -->
250.106 + <!-- permission is prohibited. interos and the interos logos are -->
250.107 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
250.108 + <!-- product, and service names mentioned herein may be the properties -->
250.109 + <!-- of their respective owners. Comments in the interos.org forums -->
250.110 + <!-- are the properties of their respective authors. All software -->
250.111 + <!-- developed in the forums is open source and belongs to everyone. -->
250.112 + <!-- -->
250.113 + <!--=====================================================================-->
250.114 + <!-- e-mail: info@interos.com -->
250.115 + <!--=====================================================================-->
250.116 +</html>
251.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
251.2 +++ b/xhtml/page/demo_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
251.3 @@ -0,0 +1,99 @@
251.4 +<?xml version="1.0" encoding="utf-8"?>
251.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
251.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
251.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
251.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
251.9 + <!--=================================================-->
251.10 + <!-- interos Standard Document Header - Markup -->
251.11 + <!--=================================================-->
251.12 + <!-- URIs: https://interos.com/demo -->
251.13 + <!-- https://demo.interos.com/ -->
251.14 + <!-- https://www.interos.com/demo -->
251.15 + <!-- Title: interos demo -->
251.16 + <!-- Author: Brent Angeline -->
251.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
251.18 + <!--=================================================-->
251.19 + <head>
251.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
251.21 + <meta name="title" content="interos demo" />
251.22 + <meta name="description" content="internet operating system demo" />
251.23 + <meta name="author" content="Brent Angeline" />
251.24 + <meta name="copyright"
251.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
251.26 + <meta name="robots" content="index, follow, noarchive" />
251.27 + <title>interos demo</title>
251.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
251.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
251.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
251.31 + media="screen, projection" />
251.32 + <script type="text/javascript" src="/js/default.js"></script>
251.33 + </head>
251.34 + <body id="body">
251.35 + <center>
251.36 + <p id="navigation">
251.37 + <a href="/about">about</a> |
251.38 + <a href="/blog">blog</a> |
251.39 + <a href="/code">code</a> |
251.40 + demo |
251.41 + <a href="/e-mail">e-mail</a> |
251.42 + <a href="/faq">f.a.q.</a> |
251.43 + <a href="/gear">gear</a> |
251.44 + <a href="https://www.interos.com/">home</a>
251.45 + </p>
251.46 + <table id="mainPanel">
251.47 + <thead>
251.48 + <tr>
251.49 + <th><center>
251.50 + <h1>
251.51 + <a href="https://demo.interos.com/">interos demo</a>
251.52 + </h1>
251.53 + <h2>
251.54 + sneak preview
251.55 + </h2>
251.56 + </center></th>
251.57 + </tr>
251.58 + </thead>
251.59 + <tfoot>
251.60 + <tr>
251.61 + <td><br /></td>
251.62 + </tr>
251.63 + </tfoot>
251.64 + <tbody>
251.65 + <tr>
251.66 + <td><center>
251.67 + <p>
251.68 + Here's your chance to see interos as it's being built!
251.69 + </p>
251.70 + <p>
251.71 + <strong>
251.72 + <a href="/login">Proceed to demo »</a>
251.73 + </strong>
251.74 + </p>
251.75 + </center></td>
251.76 + </tr>
251.77 + </tbody>
251.78 + </table>
251.79 + <p id="copyrightDates">
251.80 + © 2001–2009 interos
251.81 + </p>
251.82 + </center>
251.83 + </body>
251.84 + <!--=====================================================================-->
251.85 + <!-- Copyright and Trademark Statement -->
251.86 + <!--=====================================================================-->
251.87 + <!-- -->
251.88 + <!-- All original textual and graphical site content: -->
251.89 + <!-- -->
251.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
251.91 + <!-- reserved. Reproduction in whole or in part without written -->
251.92 + <!-- permission is prohibited. interos and the interos logos are -->
251.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
251.94 + <!-- product, and service names mentioned herein may be the properties -->
251.95 + <!-- of their respective owners. Comments in the interos.org forums -->
251.96 + <!-- are the properties of their respective authors. All software -->
251.97 + <!-- developed in the forums is open source and belongs to everyone. -->
251.98 + <!-- -->
251.99 + <!--=====================================================================-->
251.100 + <!-- e-mail: info@interos.com -->
251.101 + <!--=====================================================================-->
251.102 +</html>
252.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
252.2 +++ b/xhtml/page/e-mail_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
252.3 @@ -0,0 +1,99 @@
252.4 +<?xml version="1.0" encoding="utf-8"?>
252.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
252.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
252.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
252.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
252.9 + <!--=================================================-->
252.10 + <!-- interos Standard Document Header - Markup -->
252.11 + <!--=================================================-->
252.12 + <!-- URIs: http://interos.com/e-mail -->
252.13 + <!-- http://e-mail.interos.com/ -->
252.14 + <!-- http://www.interos.com/e-mail -->
252.15 + <!-- Title: e-mail interos -->
252.16 + <!-- Author: Brent Angeline -->
252.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
252.18 + <!--=================================================-->
252.19 + <head>
252.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
252.21 + <meta name="title" content="e-mail interos" />
252.22 + <meta name="description" content="contact interos by e-mail" />
252.23 + <meta name="author" content="Brent Angeline" />
252.24 + <meta name="copyright"
252.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
252.26 + <meta name="robots" content="index, follow, noarchive" />
252.27 + <title>e-mail interos</title>
252.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
252.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
252.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
252.31 + media="screen, projection" />
252.32 + <script type="text/javascript" src="/js/default.js"></script>
252.33 + </head>
252.34 + <body id="body">
252.35 + <center>
252.36 + <p id="navigation">
252.37 + <a href="/about">about</a> |
252.38 + <a href="/blog">blog</a> |
252.39 + <a href="/code">code</a> |
252.40 + <a href="/demo">demo</a> |
252.41 + e-mail |
252.42 + <a href="/faq">f.a.q.</a> |
252.43 + <a href="/gear">gear</a> |
252.44 + <a href="http://www.interos.com/">home</a>
252.45 + </p>
252.46 + <table id="mainPanel">
252.47 + <thead>
252.48 + <tr>
252.49 + <th><center>
252.50 + <h1>
252.51 + <a href="http://e-mail.interos.com/">e-mail interos</a>
252.52 + </h1>
252.53 + <h2>
252.54 + contact interos by e-mail
252.55 + </h2>
252.56 + </center></th>
252.57 + </tr>
252.58 + </thead>
252.59 + <tfoot>
252.60 + <tr>
252.61 + <td><br /></td>
252.62 + </tr>
252.63 + </tfoot>
252.64 + <tbody>
252.65 + <tr>
252.66 + <td><center>
252.67 + <p>
252.68 + Please direct any questions, comments, or suggestions to:
252.69 + </p>
252.70 + <p>
252.71 + <strong>
252.72 + <a href="mailto:info@interos.com">info@interos.com</a>
252.73 + </strong>
252.74 + </p>
252.75 + </center></td>
252.76 + </tr>
252.77 + </tbody>
252.78 + </table>
252.79 + <p id="copyrightDates">
252.80 + © 2001–2009 interos
252.81 + </p>
252.82 + </center>
252.83 + </body>
252.84 + <!--=====================================================================-->
252.85 + <!-- Copyright and Trademark Statement -->
252.86 + <!--=====================================================================-->
252.87 + <!-- -->
252.88 + <!-- All original textual and graphical site content: -->
252.89 + <!-- -->
252.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
252.91 + <!-- reserved. Reproduction in whole or in part without written -->
252.92 + <!-- permission is prohibited. interos and the interos logos are -->
252.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
252.94 + <!-- product, and service names mentioned herein may be the properties -->
252.95 + <!-- of their respective owners. Comments in the interos.org forums -->
252.96 + <!-- are the properties of their respective authors. All software -->
252.97 + <!-- developed in the forums is open source and belongs to everyone. -->
252.98 + <!-- -->
252.99 + <!--=====================================================================-->
252.100 + <!-- e-mail: info@interos.com -->
252.101 + <!--=====================================================================-->
252.102 +</html>
253.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
253.2 +++ b/xhtml/page/e-mail_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
253.3 @@ -0,0 +1,99 @@
253.4 +<?xml version="1.0" encoding="utf-8"?>
253.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
253.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
253.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
253.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
253.9 + <!--=================================================-->
253.10 + <!-- interos Standard Document Header - Markup -->
253.11 + <!--=================================================-->
253.12 + <!-- URIs: https://interos.com/e-mail -->
253.13 + <!-- https://e-mail.interos.com/ -->
253.14 + <!-- https://www.interos.com/e-mail -->
253.15 + <!-- Title: e-mail interos -->
253.16 + <!-- Author: Brent Angeline -->
253.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
253.18 + <!--=================================================-->
253.19 + <head>
253.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
253.21 + <meta name="title" content="e-mail interos" />
253.22 + <meta name="description" content="contact interos by e-mail" />
253.23 + <meta name="author" content="Brent Angeline" />
253.24 + <meta name="copyright"
253.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
253.26 + <meta name="robots" content="index, follow, noarchive" />
253.27 + <title>e-mail interos</title>
253.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
253.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
253.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
253.31 + media="screen, projection" />
253.32 + <script type="text/javascript" src="/js/default.js"></script>
253.33 + </head>
253.34 + <body id="body">
253.35 + <center>
253.36 + <p id="navigation">
253.37 + <a href="/about">about</a> |
253.38 + <a href="/blog">blog</a> |
253.39 + <a href="/code">code</a> |
253.40 + <a href="/demo">demo</a> |
253.41 + e-mail |
253.42 + <a href="/faq">f.a.q.</a> |
253.43 + <a href="/gear">gear</a> |
253.44 + <a href="https://www.interos.com/">home</a>
253.45 + </p>
253.46 + <table id="mainPanel">
253.47 + <thead>
253.48 + <tr>
253.49 + <th><center>
253.50 + <h1>
253.51 + <a href="https://e-mail.interos.com/">e-mail interos</a>
253.52 + </h1>
253.53 + <h2>
253.54 + contact interos by e-mail
253.55 + </h2>
253.56 + </center></th>
253.57 + </tr>
253.58 + </thead>
253.59 + <tfoot>
253.60 + <tr>
253.61 + <td><br /></td>
253.62 + </tr>
253.63 + </tfoot>
253.64 + <tbody>
253.65 + <tr>
253.66 + <td><center>
253.67 + <p>
253.68 + Please direct any questions, comments, or suggestions to:
253.69 + </p>
253.70 + <p>
253.71 + <strong>
253.72 + <a href="mailto:info@interos.com">info@interos.com</a>
253.73 + </strong>
253.74 + </p>
253.75 + </center></td>
253.76 + </tr>
253.77 + </tbody>
253.78 + </table>
253.79 + <p id="copyrightDates">
253.80 + © 2001–2009 interos
253.81 + </p>
253.82 + </center>
253.83 + </body>
253.84 + <!--=====================================================================-->
253.85 + <!-- Copyright and Trademark Statement -->
253.86 + <!--=====================================================================-->
253.87 + <!-- -->
253.88 + <!-- All original textual and graphical site content: -->
253.89 + <!-- -->
253.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
253.91 + <!-- reserved. Reproduction in whole or in part without written -->
253.92 + <!-- permission is prohibited. interos and the interos logos are -->
253.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
253.94 + <!-- product, and service names mentioned herein may be the properties -->
253.95 + <!-- of their respective owners. Comments in the interos.org forums -->
253.96 + <!-- are the properties of their respective authors. All software -->
253.97 + <!-- developed in the forums is open source and belongs to everyone. -->
253.98 + <!-- -->
253.99 + <!--=====================================================================-->
253.100 + <!-- e-mail: info@interos.com -->
253.101 + <!--=====================================================================-->
253.102 +</html>
254.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
254.2 +++ b/xhtml/page/e-mail_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
254.3 @@ -0,0 +1,99 @@
254.4 +<?xml version="1.0" encoding="utf-8"?>
254.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
254.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
254.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
254.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
254.9 + <!--=================================================-->
254.10 + <!-- interos Standard Document Header - Markup -->
254.11 + <!--=================================================-->
254.12 + <!-- URIs: http://interos.org/e-mail -->
254.13 + <!-- http://e-mail.interos.org/ -->
254.14 + <!-- http://www.interos.org/e-mail -->
254.15 + <!-- Title: e-mail interos -->
254.16 + <!-- Author: Brent Angeline -->
254.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
254.18 + <!--=================================================-->
254.19 + <head>
254.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
254.21 + <meta name="title" content="e-mail interos" />
254.22 + <meta name="description" content="contact interos by e-mail" />
254.23 + <meta name="author" content="Brent Angeline" />
254.24 + <meta name="copyright"
254.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
254.26 + <meta name="robots" content="index, follow, noarchive" />
254.27 + <title>e-mail interos</title>
254.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
254.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
254.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
254.31 + media="screen, projection" />
254.32 + <script type="text/javascript" src="/js/default.js"></script>
254.33 + </head>
254.34 + <body id="body">
254.35 + <center>
254.36 + <p id="navigation">
254.37 + <a href="/about">about</a> |
254.38 + <a href="/blog">blog</a> |
254.39 + <a href="/code">code</a> |
254.40 + <a href="/forums">develop</a> |
254.41 + e-mail |
254.42 + <a href="/faq">f.a.q.</a> |
254.43 + <a href="/gear">gear</a> |
254.44 + <a href="http://interos.org/">home</a>
254.45 + </p>
254.46 + <table id="mainPanel">
254.47 + <thead>
254.48 + <tr>
254.49 + <th><center>
254.50 + <h1>
254.51 + <a href="http://e-mail.interos.org/">e-mail interos</a>
254.52 + </h1>
254.53 + <h2>
254.54 + contact interos by e-mail
254.55 + </h2>
254.56 + </center></th>
254.57 + </tr>
254.58 + </thead>
254.59 + <tfoot>
254.60 + <tr>
254.61 + <td><br /></td>
254.62 + </tr>
254.63 + </tfoot>
254.64 + <tbody>
254.65 + <tr>
254.66 + <td><center>
254.67 + <p>
254.68 + Please direct any questions, comments, or suggestions to:
254.69 + </p>
254.70 + <p>
254.71 + <strong>
254.72 + <a href="mailto:info@interos.org">info@interos.org</a>
254.73 + </strong>
254.74 + </p>
254.75 + </center></td>
254.76 + </tr>
254.77 + </tbody>
254.78 + </table>
254.79 + <p id="copyrightDates">
254.80 + © 2001–2009 interos
254.81 + </p>
254.82 + </center>
254.83 + </body>
254.84 + <!--=====================================================================-->
254.85 + <!-- Copyright and Trademark Statement -->
254.86 + <!--=====================================================================-->
254.87 + <!-- -->
254.88 + <!-- All original textual and graphical site content: -->
254.89 + <!-- -->
254.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
254.91 + <!-- reserved. Reproduction in whole or in part without written -->
254.92 + <!-- permission is prohibited. interos and the interos logos are -->
254.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
254.94 + <!-- product, and service names mentioned herein may be the properties -->
254.95 + <!-- of their respective owners. Comments in the interos.org forums -->
254.96 + <!-- are the properties of their respective authors. All software -->
254.97 + <!-- developed in the forums is open source and belongs to everyone. -->
254.98 + <!-- -->
254.99 + <!--=====================================================================-->
254.100 + <!-- e-mail: info@interos.org -->
254.101 + <!--=====================================================================-->
254.102 +</html>
255.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
255.2 +++ b/xhtml/page/e-mail_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
255.3 @@ -0,0 +1,99 @@
255.4 +<?xml version="1.0" encoding="utf-8"?>
255.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
255.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
255.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
255.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
255.9 + <!--=================================================-->
255.10 + <!-- interos Standard Document Header - Markup -->
255.11 + <!--=================================================-->
255.12 + <!-- URIs: https://interos.org/e-mail -->
255.13 + <!-- https://e-mail.interos.org/ -->
255.14 + <!-- https://www.interos.org/e-mail -->
255.15 + <!-- Title: e-mail interos -->
255.16 + <!-- Author: Brent Angeline -->
255.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
255.18 + <!--=================================================-->
255.19 + <head>
255.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
255.21 + <meta name="title" content="e-mail interos" />
255.22 + <meta name="description" content="contact interos by e-mail" />
255.23 + <meta name="author" content="Brent Angeline" />
255.24 + <meta name="copyright"
255.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
255.26 + <meta name="robots" content="index, follow, noarchive" />
255.27 + <title>e-mail interos</title>
255.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
255.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
255.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
255.31 + media="screen, projection" />
255.32 + <script type="text/javascript" src="/js/default.js"></script>
255.33 + </head>
255.34 + <body id="body">
255.35 + <center>
255.36 + <p id="navigation">
255.37 + <a href="/about">about</a> |
255.38 + <a href="/blog">blog</a> |
255.39 + <a href="/code">code</a> |
255.40 + <a href="/forums">develop</a> |
255.41 + e-mail |
255.42 + <a href="/faq">f.a.q.</a> |
255.43 + <a href="/gear">gear</a> |
255.44 + <a href="https://interos.org/">home</a>
255.45 + </p>
255.46 + <table id="mainPanel">
255.47 + <thead>
255.48 + <tr>
255.49 + <th><center>
255.50 + <h1>
255.51 + <a href="https://e-mail.interos.org/">e-mail interos</a>
255.52 + </h1>
255.53 + <h2>
255.54 + contact interos by e-mail
255.55 + </h2>
255.56 + </center></th>
255.57 + </tr>
255.58 + </thead>
255.59 + <tfoot>
255.60 + <tr>
255.61 + <td><br /></td>
255.62 + </tr>
255.63 + </tfoot>
255.64 + <tbody>
255.65 + <tr>
255.66 + <td><center>
255.67 + <p>
255.68 + Please direct any questions, comments, or suggestions to:
255.69 + </p>
255.70 + <p>
255.71 + <strong>
255.72 + <a href="mailto:info@interos.org">info@interos.org</a>
255.73 + </strong>
255.74 + </p>
255.75 + </center></td>
255.76 + </tr>
255.77 + </tbody>
255.78 + </table>
255.79 + <p id="copyrightDates">
255.80 + © 2001–2009 interos
255.81 + </p>
255.82 + </center>
255.83 + </body>
255.84 + <!--=====================================================================-->
255.85 + <!-- Copyright and Trademark Statement -->
255.86 + <!--=====================================================================-->
255.87 + <!-- -->
255.88 + <!-- All original textual and graphical site content: -->
255.89 + <!-- -->
255.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
255.91 + <!-- reserved. Reproduction in whole or in part without written -->
255.92 + <!-- permission is prohibited. interos and the interos logos are -->
255.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
255.94 + <!-- product, and service names mentioned herein may be the properties -->
255.95 + <!-- of their respective owners. Comments in the interos.org forums -->
255.96 + <!-- are the properties of their respective authors. All software -->
255.97 + <!-- developed in the forums is open source and belongs to everyone. -->
255.98 + <!-- -->
255.99 + <!--=====================================================================-->
255.100 + <!-- e-mail: info@interos.org -->
255.101 + <!--=====================================================================-->
255.102 +</html>
256.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
256.2 +++ b/xhtml/page/faq_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
256.3 @@ -0,0 +1,99 @@
256.4 +<?xml version="1.0" encoding="utf-8"?>
256.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
256.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
256.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
256.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
256.9 + <!--=================================================-->
256.10 + <!-- interos Standard Document Header - Markup -->
256.11 + <!--=================================================-->
256.12 + <!-- URIs: http://interos.com/faq -->
256.13 + <!-- http://www.interos.com/faq -->
256.14 + <!-- http://faq.interos.com/ -->
256.15 + <!-- Title: interos f.a.q. -->
256.16 + <!-- Author: Brent Angeline -->
256.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
256.18 + <!--=================================================-->
256.19 + <head>
256.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
256.21 + <meta name="title" content="interos f.a.q." />
256.22 + <meta name="description" content="frequently asked questions" />
256.23 + <meta name="author" content="Brent Angeline" />
256.24 + <meta name="copyright"
256.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
256.26 + <meta name="robots" content="index, follow, noarchive" />
256.27 + <title>interos f.a.q.</title>
256.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
256.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
256.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
256.31 + media="screen, projection" />
256.32 + <script type="text/javascript" src="/js/default.js"></script>
256.33 + </head>
256.34 + <body id="body">
256.35 + <center>
256.36 + <p id="navigation">
256.37 + <a href="/about">about</a> |
256.38 + <a href="/blog">blog</a> |
256.39 + <a href="/code">code</a> |
256.40 + <a href="/demo">demo</a> |
256.41 + <a href="/e-mail">e-mail</a> |
256.42 + f.a.q. |
256.43 + <a href="/gear">gear</a> |
256.44 + <a href="http://www.interos.com/">home</a>
256.45 + </p>
256.46 + <table id="mainPanel">
256.47 + <thead>
256.48 + <tr>
256.49 + <th><center>
256.50 + <h1>
256.51 + <a href="http://faq.interos.com/">interos f.a.q.</a>
256.52 + </h1>
256.53 + <h2>
256.54 + frequently asked questions
256.55 + </h2>
256.56 + </center></th>
256.57 + </tr>
256.58 + </thead>
256.59 + <tfoot>
256.60 + <tr>
256.61 + <td><br /></td>
256.62 + </tr>
256.63 + </tfoot>
256.64 + <tbody>
256.65 + <tr>
256.66 + <td><center>
256.67 + <p>
256.68 + Please e-mail your questions to:
256.69 + </p>
256.70 + <p>
256.71 + <strong>
256.72 + <a href="mailto:info@interos.com">info@interos.com</a>
256.73 + </strong>
256.74 + </p>
256.75 + </center></td>
256.76 + </tr>
256.77 + </tbody>
256.78 + </table>
256.79 + <p id="copyrightDates">
256.80 + © 2001–2009 interos
256.81 + </p>
256.82 + </center>
256.83 + </body>
256.84 + <!--=====================================================================-->
256.85 + <!-- Copyright and Trademark Statement -->
256.86 + <!--=====================================================================-->
256.87 + <!-- -->
256.88 + <!-- All original textual and graphical site content: -->
256.89 + <!-- -->
256.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
256.91 + <!-- reserved. Reproduction in whole or in part without written -->
256.92 + <!-- permission is prohibited. interos and the interos logos are -->
256.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
256.94 + <!-- product, and service names mentioned herein may be the properties -->
256.95 + <!-- of their respective owners. Comments in the interos.org forums -->
256.96 + <!-- are the properties of their respective authors. All software -->
256.97 + <!-- developed in the forums is open source and belongs to everyone. -->
256.98 + <!-- -->
256.99 + <!--=====================================================================-->
256.100 + <!-- e-mail: info@interos.com -->
256.101 + <!--=====================================================================-->
256.102 +</html>
257.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
257.2 +++ b/xhtml/page/faq_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
257.3 @@ -0,0 +1,99 @@
257.4 +<?xml version="1.0" encoding="utf-8"?>
257.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
257.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
257.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
257.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
257.9 + <!--=================================================-->
257.10 + <!-- interos Standard Document Header - Markup -->
257.11 + <!--=================================================-->
257.12 + <!-- URIs: https://interos.com/faq -->
257.13 + <!-- https://www.interos.com/faq -->
257.14 + <!-- https://faq.interos.com/ -->
257.15 + <!-- Title: interos f.a.q. -->
257.16 + <!-- Author: Brent Angeline -->
257.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
257.18 + <!--=================================================-->
257.19 + <head>
257.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
257.21 + <meta name="title" content="interos f.a.q." />
257.22 + <meta name="description" content="frequently asked questions" />
257.23 + <meta name="author" content="Brent Angeline" />
257.24 + <meta name="copyright"
257.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
257.26 + <meta name="robots" content="index, follow, noarchive" />
257.27 + <title>interos f.a.q.</title>
257.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
257.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
257.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
257.31 + media="screen, projection" />
257.32 + <script type="text/javascript" src="/js/default.js"></script>
257.33 + </head>
257.34 + <body id="body">
257.35 + <center>
257.36 + <p id="navigation">
257.37 + <a href="/about">about</a> |
257.38 + <a href="/blog">blog</a> |
257.39 + <a href="/code">code</a> |
257.40 + <a href="/demo">demo</a> |
257.41 + <a href="/e-mail">e-mail</a> |
257.42 + f.a.q. |
257.43 + <a href="/gear">gear</a> |
257.44 + <a href="https://www.interos.com/">home</a>
257.45 + </p>
257.46 + <table id="mainPanel">
257.47 + <thead>
257.48 + <tr>
257.49 + <th><center>
257.50 + <h1>
257.51 + <a href="https://faq.interos.com/">interos f.a.q.</a>
257.52 + </h1>
257.53 + <h2>
257.54 + frequently asked questions
257.55 + </h2>
257.56 + </center></th>
257.57 + </tr>
257.58 + </thead>
257.59 + <tfoot>
257.60 + <tr>
257.61 + <td><br /></td>
257.62 + </tr>
257.63 + </tfoot>
257.64 + <tbody>
257.65 + <tr>
257.66 + <td><center>
257.67 + <p>
257.68 + Please e-mail your questions to:
257.69 + </p>
257.70 + <p>
257.71 + <strong>
257.72 + <a href="mailto:info@interos.com">info@interos.com</a>
257.73 + </strong>
257.74 + </p>
257.75 + </center></td>
257.76 + </tr>
257.77 + </tbody>
257.78 + </table>
257.79 + <p id="copyrightDates">
257.80 + © 2001–2009 interos
257.81 + </p>
257.82 + </center>
257.83 + </body>
257.84 + <!--=====================================================================-->
257.85 + <!-- Copyright and Trademark Statement -->
257.86 + <!--=====================================================================-->
257.87 + <!-- -->
257.88 + <!-- All original textual and graphical site content: -->
257.89 + <!-- -->
257.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
257.91 + <!-- reserved. Reproduction in whole or in part without written -->
257.92 + <!-- permission is prohibited. interos and the interos logos are -->
257.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
257.94 + <!-- product, and service names mentioned herein may be the properties -->
257.95 + <!-- of their respective owners. Comments in the interos.org forums -->
257.96 + <!-- are the properties of their respective authors. All software -->
257.97 + <!-- developed in the forums is open source and belongs to everyone. -->
257.98 + <!-- -->
257.99 + <!--=====================================================================-->
257.100 + <!-- e-mail: info@interos.com -->
257.101 + <!--=====================================================================-->
257.102 +</html>
258.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
258.2 +++ b/xhtml/page/faq_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
258.3 @@ -0,0 +1,99 @@
258.4 +<?xml version="1.0" encoding="utf-8"?>
258.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
258.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
258.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
258.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
258.9 + <!--=================================================-->
258.10 + <!-- interos Standard Document Header - Markup -->
258.11 + <!--=================================================-->
258.12 + <!-- URIs: http://interos.org/faq -->
258.13 + <!-- http://www.interos.org/faq -->
258.14 + <!-- http://faq.interos.org/ -->
258.15 + <!-- Title: interos f.a.q. -->
258.16 + <!-- Author: Brent Angeline -->
258.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
258.18 + <!--=================================================-->
258.19 + <head>
258.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
258.21 + <meta name="title" content="interos f.a.q." />
258.22 + <meta name="description" content="frequently asked questions" />
258.23 + <meta name="author" content="Brent Angeline" />
258.24 + <meta name="copyright"
258.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
258.26 + <meta name="robots" content="index, follow, noarchive" />
258.27 + <title>interos f.a.q.</title>
258.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
258.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
258.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
258.31 + media="screen, projection" />
258.32 + <script type="text/javascript" src="/js/default.js"></script>
258.33 + </head>
258.34 + <body id="body">
258.35 + <center>
258.36 + <p id="navigation">
258.37 + <a href="/about">about</a> |
258.38 + <a href="/blog">blog</a> |
258.39 + <a href="/code">code</a> |
258.40 + <a href="/forums">develop</a> |
258.41 + <a href="/e-mail">e-mail</a> |
258.42 + f.a.q. |
258.43 + <a href="/gear">gear</a> |
258.44 + <a href="http://interos.org/">home</a>
258.45 + </p>
258.46 + <table id="mainPanel">
258.47 + <thead>
258.48 + <tr>
258.49 + <th><center>
258.50 + <h1>
258.51 + <a href="http://faq.interos.org/">interos f.a.q.</a>
258.52 + </h1>
258.53 + <h2>
258.54 + frequently asked questions
258.55 + </h2>
258.56 + </center></th>
258.57 + </tr>
258.58 + </thead>
258.59 + <tfoot>
258.60 + <tr>
258.61 + <td><br /></td>
258.62 + </tr>
258.63 + </tfoot>
258.64 + <tbody>
258.65 + <tr>
258.66 + <td><center>
258.67 + <p>
258.68 + Please e-mail your questions to:
258.69 + </p>
258.70 + <p>
258.71 + <strong>
258.72 + <a href="mailto:info@interos.org">info@interos.org</a>
258.73 + </strong>
258.74 + </p>
258.75 + </center></td>
258.76 + </tr>
258.77 + </tbody>
258.78 + </table>
258.79 + <p id="copyrightDates">
258.80 + © 2001–2009 interos
258.81 + </p>
258.82 + </center>
258.83 + </body>
258.84 + <!--=====================================================================-->
258.85 + <!-- Copyright and Trademark Statement -->
258.86 + <!--=====================================================================-->
258.87 + <!-- -->
258.88 + <!-- All original textual and graphical site content: -->
258.89 + <!-- -->
258.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
258.91 + <!-- reserved. Reproduction in whole or in part without written -->
258.92 + <!-- permission is prohibited. interos and the interos logos are -->
258.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
258.94 + <!-- product, and service names mentioned herein may be the properties -->
258.95 + <!-- of their respective owners. Comments in the interos.org forums -->
258.96 + <!-- are the properties of their respective authors. All software -->
258.97 + <!-- developed in the forums is open source and belongs to everyone. -->
258.98 + <!-- -->
258.99 + <!--=====================================================================-->
258.100 + <!-- e-mail: info@interos.org -->
258.101 + <!--=====================================================================-->
258.102 +</html>
259.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
259.2 +++ b/xhtml/page/faq_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
259.3 @@ -0,0 +1,99 @@
259.4 +<?xml version="1.0" encoding="utf-8"?>
259.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
259.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
259.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
259.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
259.9 + <!--=================================================-->
259.10 + <!-- interos Standard Document Header - Markup -->
259.11 + <!--=================================================-->
259.12 + <!-- URIs: https://interos.org/faq -->
259.13 + <!-- https://www.interos.org/faq -->
259.14 + <!-- https://faq.interos.org/ -->
259.15 + <!-- Title: interos f.a.q. -->
259.16 + <!-- Author: Brent Angeline -->
259.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
259.18 + <!--=================================================-->
259.19 + <head>
259.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
259.21 + <meta name="title" content="interos f.a.q." />
259.22 + <meta name="description" content="frequently asked questions" />
259.23 + <meta name="author" content="Brent Angeline" />
259.24 + <meta name="copyright"
259.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
259.26 + <meta name="robots" content="index, follow, noarchive" />
259.27 + <title>interos f.a.q.</title>
259.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
259.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
259.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
259.31 + media="screen, projection" />
259.32 + <script type="text/javascript" src="/js/default.js"></script>
259.33 + </head>
259.34 + <body id="body">
259.35 + <center>
259.36 + <p id="navigation">
259.37 + <a href="/about">about</a> |
259.38 + <a href="/blog">blog</a> |
259.39 + <a href="/code">code</a> |
259.40 + <a href="/forums">develop</a> |
259.41 + <a href="/e-mail">e-mail</a> |
259.42 + f.a.q. |
259.43 + <a href="/gear">gear</a> |
259.44 + <a href="https://interos.org/">home</a>
259.45 + </p>
259.46 + <table id="mainPanel">
259.47 + <thead>
259.48 + <tr>
259.49 + <th><center>
259.50 + <h1>
259.51 + <a href="https://faq.interos.org/">interos f.a.q.</a>
259.52 + </h1>
259.53 + <h2>
259.54 + frequently asked questions
259.55 + </h2>
259.56 + </center></th>
259.57 + </tr>
259.58 + </thead>
259.59 + <tfoot>
259.60 + <tr>
259.61 + <td><br /></td>
259.62 + </tr>
259.63 + </tfoot>
259.64 + <tbody>
259.65 + <tr>
259.66 + <td><center>
259.67 + <p>
259.68 + Please e-mail your questions to:
259.69 + </p>
259.70 + <p>
259.71 + <strong>
259.72 + <a href="mailto:info@interos.org">info@interos.org</a>
259.73 + </strong>
259.74 + </p>
259.75 + </center></td>
259.76 + </tr>
259.77 + </tbody>
259.78 + </table>
259.79 + <p id="copyrightDates">
259.80 + © 2001–2009 interos
259.81 + </p>
259.82 + </center>
259.83 + </body>
259.84 + <!--=====================================================================-->
259.85 + <!-- Copyright and Trademark Statement -->
259.86 + <!--=====================================================================-->
259.87 + <!-- -->
259.88 + <!-- All original textual and graphical site content: -->
259.89 + <!-- -->
259.90 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
259.91 + <!-- reserved. Reproduction in whole or in part without written -->
259.92 + <!-- permission is prohibited. interos and the interos logos are -->
259.93 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
259.94 + <!-- product, and service names mentioned herein may be the properties -->
259.95 + <!-- of their respective owners. Comments in the interos.org forums -->
259.96 + <!-- are the properties of their respective authors. All software -->
259.97 + <!-- developed in the forums is open source and belongs to everyone. -->
259.98 + <!-- -->
259.99 + <!--=====================================================================-->
259.100 + <!-- e-mail: info@interos.org -->
259.101 + <!--=====================================================================-->
259.102 +</html>
260.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
260.2 +++ b/xhtml/page/gear_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
260.3 @@ -0,0 +1,105 @@
260.4 +<?xml version="1.0" encoding="utf-8"?>
260.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
260.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
260.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
260.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
260.9 + <!--=================================================-->
260.10 + <!-- interos Standard Document Header - Markup -->
260.11 + <!--=================================================-->
260.12 + <!-- URIs: http://interos.com/gear -->
260.13 + <!-- http://gear.interos.com/ -->
260.14 + <!-- http://www.interos.com/gear -->
260.15 + <!-- Title: interos gear -->
260.16 + <!-- Author: Brent Angeline -->
260.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
260.18 + <!--=================================================-->
260.19 + <head>
260.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
260.21 + <meta name="title" content="interos gear" />
260.22 + <meta name="description" content="be a part of the interos street team!" />
260.23 + <meta name="author" content="Brent Angeline" />
260.24 + <meta name="copyright"
260.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
260.26 + <meta name="robots" content="index, follow, noarchive" />
260.27 + <title>interos gear</title>
260.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
260.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
260.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
260.31 + media="screen, projection" />
260.32 + <script type="text/javascript" src="/js/default.js"></script>
260.33 + </head>
260.34 + <body id="body">
260.35 + <center>
260.36 + <p id="navigation">
260.37 + <a href="/about">about</a> |
260.38 + <a href="/blog">blog</a> |
260.39 + <a href="/code">code</a> |
260.40 + <a href="/demo">demo</a> |
260.41 + <a href="/e-mail">e-mail</a> |
260.42 + <a href="/faq">f.a.q.</a> |
260.43 + gear |
260.44 + <a href="http://www.interos.com/">home</a>
260.45 + </p>
260.46 + <table id="mainPanel">
260.47 + <thead>
260.48 + <tr>
260.49 + <th><center>
260.50 + <h1>
260.51 + <a href="http://gear.interos.com/">interos gear</a>
260.52 + </h1>
260.53 + <h2>
260.54 + (coming soon)
260.55 + </h2>
260.56 + </center></th>
260.57 + </tr>
260.58 + </thead>
260.59 + <tfoot>
260.60 + <tr>
260.61 + <td><br /></td>
260.62 + </tr>
260.63 + </tfoot>
260.64 + <tbody>
260.65 + <tr>
260.66 + <td><p>
260.67 + Send us your suggestions for items you'd like to see
260.68 + available that sport the interos logo. Also, let us know
260.69 + about any interesting gadgets you've enjoyed using with
260.70 + interos!
260.71 + </p>
260.72 + <center>
260.73 + <p>
260.74 + Please direct this information to:
260.75 + </p>
260.76 + <p>
260.77 + <strong>
260.78 + <a href="mailto:info@interos.com">info@interos.com</a>
260.79 + </strong>
260.80 + </p>
260.81 + </center></td>
260.82 + </tr>
260.83 + </tbody>
260.84 + </table>
260.85 + <p id="copyrightDates">
260.86 + © 2001–2009 interos
260.87 + </p>
260.88 + </center>
260.89 + </body>
260.90 + <!--=====================================================================-->
260.91 + <!-- Copyright and Trademark Statement -->
260.92 + <!--=====================================================================-->
260.93 + <!-- -->
260.94 + <!-- All original textual and graphical site content: -->
260.95 + <!-- -->
260.96 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
260.97 + <!-- reserved. Reproduction in whole or in part without written -->
260.98 + <!-- permission is prohibited. interos and the interos logos are -->
260.99 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
260.100 + <!-- product, and service names mentioned herein may be the properties -->
260.101 + <!-- of their respective owners. Comments in the interos.org forums -->
260.102 + <!-- are the properties of their respective authors. All software -->
260.103 + <!-- developed in the forums is open source and belongs to everyone. -->
260.104 + <!-- -->
260.105 + <!--=====================================================================-->
260.106 + <!-- e-mail: info@interos.com -->
260.107 + <!--=====================================================================-->
260.108 +</html>
261.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
261.2 +++ b/xhtml/page/gear_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
261.3 @@ -0,0 +1,105 @@
261.4 +<?xml version="1.0" encoding="utf-8"?>
261.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
261.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
261.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
261.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
261.9 + <!--=================================================-->
261.10 + <!-- interos Standard Document Header - Markup -->
261.11 + <!--=================================================-->
261.12 + <!-- URIs: https://interos.com/gear -->
261.13 + <!-- https://gear.interos.com/ -->
261.14 + <!-- https://www.interos.com/gear -->
261.15 + <!-- Title: interos gear -->
261.16 + <!-- Author: Brent Angeline -->
261.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
261.18 + <!--=================================================-->
261.19 + <head>
261.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
261.21 + <meta name="title" content="interos gear" />
261.22 + <meta name="description" content="be a part of the interos street team!" />
261.23 + <meta name="author" content="Brent Angeline" />
261.24 + <meta name="copyright"
261.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
261.26 + <meta name="robots" content="index, follow, noarchive" />
261.27 + <title>interos gear</title>
261.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
261.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
261.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
261.31 + media="screen, projection" />
261.32 + <script type="text/javascript" src="/js/default.js"></script>
261.33 + </head>
261.34 + <body id="body">
261.35 + <center>
261.36 + <p id="navigation">
261.37 + <a href="/about">about</a> |
261.38 + <a href="/blog">blog</a> |
261.39 + <a href="/code">code</a> |
261.40 + <a href="/demo">demo</a> |
261.41 + <a href="/e-mail">e-mail</a> |
261.42 + <a href="/faq">f.a.q.</a> |
261.43 + gear |
261.44 + <a href="https://www.interos.com/">home</a>
261.45 + </p>
261.46 + <table id="mainPanel">
261.47 + <thead>
261.48 + <tr>
261.49 + <th><center>
261.50 + <h1>
261.51 + <a href="https://gear.interos.com/">interos gear</a>
261.52 + </h1>
261.53 + <h2>
261.54 + (coming soon)
261.55 + </h2>
261.56 + </center></th>
261.57 + </tr>
261.58 + </thead>
261.59 + <tfoot>
261.60 + <tr>
261.61 + <td><br /></td>
261.62 + </tr>
261.63 + </tfoot>
261.64 + <tbody>
261.65 + <tr>
261.66 + <td><p>
261.67 + Send us your suggestions for items you'd like to see
261.68 + available that sport the interos logo. Also, let us know
261.69 + about any interesting gadgets you've enjoyed using with
261.70 + interos!
261.71 + </p>
261.72 + <center>
261.73 + <p>
261.74 + Please direct this information to:
261.75 + </p>
261.76 + <p>
261.77 + <strong>
261.78 + <a href="mailto:info@interos.com">info@interos.com</a>
261.79 + </strong>
261.80 + </p>
261.81 + </center></td>
261.82 + </tr>
261.83 + </tbody>
261.84 + </table>
261.85 + <p id="copyrightDates">
261.86 + © 2001–2009 interos
261.87 + </p>
261.88 + </center>
261.89 + </body>
261.90 + <!--=====================================================================-->
261.91 + <!-- Copyright and Trademark Statement -->
261.92 + <!--=====================================================================-->
261.93 + <!-- -->
261.94 + <!-- All original textual and graphical site content: -->
261.95 + <!-- -->
261.96 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
261.97 + <!-- reserved. Reproduction in whole or in part without written -->
261.98 + <!-- permission is prohibited. interos and the interos logos are -->
261.99 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
261.100 + <!-- product, and service names mentioned herein may be the properties -->
261.101 + <!-- of their respective owners. Comments in the interos.org forums -->
261.102 + <!-- are the properties of their respective authors. All software -->
261.103 + <!-- developed in the forums is open source and belongs to everyone. -->
261.104 + <!-- -->
261.105 + <!--=====================================================================-->
261.106 + <!-- e-mail: info@interos.com -->
261.107 + <!--=====================================================================-->
261.108 +</html>
262.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
262.2 +++ b/xhtml/page/gear_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
262.3 @@ -0,0 +1,105 @@
262.4 +<?xml version="1.0" encoding="utf-8"?>
262.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
262.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
262.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
262.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
262.9 + <!--=================================================-->
262.10 + <!-- interos Standard Document Header - Markup -->
262.11 + <!--=================================================-->
262.12 + <!-- URIs: http://interos.org/gear -->
262.13 + <!-- http://gear.interos.org/ -->
262.14 + <!-- http://www.interos.org/gear -->
262.15 + <!-- Title: interos gear -->
262.16 + <!-- Author: Brent Angeline -->
262.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
262.18 + <!--=================================================-->
262.19 + <head>
262.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
262.21 + <meta name="title" content="interos gear" />
262.22 + <meta name="description" content="be a part of the interos street team!" />
262.23 + <meta name="author" content="Brent Angeline" />
262.24 + <meta name="copyright"
262.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
262.26 + <meta name="robots" content="index, follow, noarchive" />
262.27 + <title>interos gear</title>
262.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
262.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
262.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
262.31 + media="screen, projection" />
262.32 + <script type="text/javascript" src="/js/default.js"></script>
262.33 + </head>
262.34 + <body id="body">
262.35 + <center>
262.36 + <p id="navigation">
262.37 + <a href="/about">about</a> |
262.38 + <a href="/blog">blog</a> |
262.39 + <a href="/code">code</a> |
262.40 + <a href="/demo">demo</a> |
262.41 + <a href="/e-mail">e-mail</a> |
262.42 + <a href="/faq">f.a.q.</a> |
262.43 + gear |
262.44 + <a href="http://www.interos.org/">home</a>
262.45 + </p>
262.46 + <table id="mainPanel">
262.47 + <thead>
262.48 + <tr>
262.49 + <th><center>
262.50 + <h1>
262.51 + <a href="http://gear.interos.org/">interos gear</a>
262.52 + </h1>
262.53 + <h2>
262.54 + (coming soon)
262.55 + </h2>
262.56 + </center></th>
262.57 + </tr>
262.58 + </thead>
262.59 + <tfoot>
262.60 + <tr>
262.61 + <td><br /></td>
262.62 + </tr>
262.63 + </tfoot>
262.64 + <tbody>
262.65 + <tr>
262.66 + <td><p>
262.67 + Send us your suggestions for items you'd like to see
262.68 + available that sport the interos logo. Also, let us know
262.69 + about any interesting gadgets you've enjoyed using with
262.70 + interos!
262.71 + </p>
262.72 + <center>
262.73 + <p>
262.74 + Please direct this information to:
262.75 + </p>
262.76 + <p>
262.77 + <strong>
262.78 + <a href="mailto:info@interos.org">info@interos.org</a>
262.79 + </strong>
262.80 + </p>
262.81 + </center></td>
262.82 + </tr>
262.83 + </tbody>
262.84 + </table>
262.85 + <p id="copyrightDates">
262.86 + © 2001–2009 interos
262.87 + </p>
262.88 + </center>
262.89 + </body>
262.90 + <!--=====================================================================-->
262.91 + <!-- Copyright and Trademark Statement -->
262.92 + <!--=====================================================================-->
262.93 + <!-- -->
262.94 + <!-- All original textual and graphical site content: -->
262.95 + <!-- -->
262.96 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
262.97 + <!-- reserved. Reproduction in whole or in part without written -->
262.98 + <!-- permission is prohibited. interos and the interos logos are -->
262.99 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
262.100 + <!-- product, and service names mentioned herein may be the properties -->
262.101 + <!-- of their respective owners. Comments in the interos.org forums -->
262.102 + <!-- are the properties of their respective authors. All software -->
262.103 + <!-- developed in the forums is open source and belongs to everyone. -->
262.104 + <!-- -->
262.105 + <!--=====================================================================-->
262.106 + <!-- e-mail: info@interos.org -->
262.107 + <!--=====================================================================-->
262.108 +</html>
263.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
263.2 +++ b/xhtml/page/gear_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
263.3 @@ -0,0 +1,105 @@
263.4 +<?xml version="1.0" encoding="utf-8"?>
263.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
263.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
263.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
263.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
263.9 + <!--=================================================-->
263.10 + <!-- interos Standard Document Header - Markup -->
263.11 + <!--=================================================-->
263.12 + <!-- URIs: https://interos.org/gear -->
263.13 + <!-- https://gear.interos.org/ -->
263.14 + <!-- https://www.interos.org/gear -->
263.15 + <!-- Title: interos gear -->
263.16 + <!-- Author: Brent Angeline -->
263.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
263.18 + <!--=================================================-->
263.19 + <head>
263.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
263.21 + <meta name="title" content="interos gear" />
263.22 + <meta name="description" content="be a part of the interos street team!" />
263.23 + <meta name="author" content="Brent Angeline" />
263.24 + <meta name="copyright"
263.25 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
263.26 + <meta name="robots" content="index, follow, noarchive" />
263.27 + <title>interos gear</title>
263.28 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
263.29 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
263.30 + <link rel="stylesheet" type="text/css" href="/style/default.css"
263.31 + media="screen, projection" />
263.32 + <script type="text/javascript" src="/js/default.js"></script>
263.33 + </head>
263.34 + <body id="body">
263.35 + <center>
263.36 + <p id="navigation">
263.37 + <a href="/about">about</a> |
263.38 + <a href="/blog">blog</a> |
263.39 + <a href="/code">code</a> |
263.40 + <a href="/demo">demo</a> |
263.41 + <a href="/e-mail">e-mail</a> |
263.42 + <a href="/faq">f.a.q.</a> |
263.43 + gear |
263.44 + <a href="https://www.interos.org/">home</a>
263.45 + </p>
263.46 + <table id="mainPanel">
263.47 + <thead>
263.48 + <tr>
263.49 + <th><center>
263.50 + <h1>
263.51 + <a href="https://gear.interos.org/">interos gear</a>
263.52 + </h1>
263.53 + <h2>
263.54 + (coming soon)
263.55 + </h2>
263.56 + </center></th>
263.57 + </tr>
263.58 + </thead>
263.59 + <tfoot>
263.60 + <tr>
263.61 + <td><br /></td>
263.62 + </tr>
263.63 + </tfoot>
263.64 + <tbody>
263.65 + <tr>
263.66 + <td><p>
263.67 + Send us your suggestions for items you'd like to see
263.68 + available that sport the interos logo. Also, let us know
263.69 + about any interesting gadgets you've enjoyed using with
263.70 + interos!
263.71 + </p>
263.72 + <center>
263.73 + <p>
263.74 + Please direct this information to:
263.75 + </p>
263.76 + <p>
263.77 + <strong>
263.78 + <a href="mailto:info@interos.org">info@interos.org</a>
263.79 + </strong>
263.80 + </p>
263.81 + </center></td>
263.82 + </tr>
263.83 + </tbody>
263.84 + </table>
263.85 + <p id="copyrightDates">
263.86 + © 2001–2009 interos
263.87 + </p>
263.88 + </center>
263.89 + </body>
263.90 + <!--=====================================================================-->
263.91 + <!-- Copyright and Trademark Statement -->
263.92 + <!--=====================================================================-->
263.93 + <!-- -->
263.94 + <!-- All original textual and graphical site content: -->
263.95 + <!-- -->
263.96 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
263.97 + <!-- reserved. Reproduction in whole or in part without written -->
263.98 + <!-- permission is prohibited. interos and the interos logos are -->
263.99 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
263.100 + <!-- product, and service names mentioned herein may be the properties -->
263.101 + <!-- of their respective owners. Comments in the interos.org forums -->
263.102 + <!-- are the properties of their respective authors. All software -->
263.103 + <!-- developed in the forums is open source and belongs to everyone. -->
263.104 + <!-- -->
263.105 + <!--=====================================================================-->
263.106 + <!-- e-mail: info@interos.org -->
263.107 + <!--=====================================================================-->
263.108 +</html>
264.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
264.2 +++ b/xhtml/page/help_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
264.3 @@ -0,0 +1,96 @@
264.4 +<?xml version="1.0" encoding="utf-8"?>
264.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
264.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
264.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
264.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
264.9 + <!--=================================================-->
264.10 + <!-- interos Standard Document Header - Markup -->
264.11 + <!--=================================================-->
264.12 + <!-- URIs: http://interos.com/help -->
264.13 + <!-- http://help.interos.com/ -->
264.14 + <!-- http://www.interos.com/help -->
264.15 + <!-- Title: interos help -->
264.16 + <!-- Author: Brent Angeline -->
264.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
264.18 + <!--=================================================-->
264.19 + <head>
264.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
264.21 + <meta name="title" content="interos help" />
264.22 + <meta name="description" content="guide to using interos" />
264.23 + <meta name="author" content="Brent Angeline" />
264.24 + <meta name="keywords"
264.25 + content="interos help, interos, help, interos guide, guide" />
264.26 + <meta name="copyright"
264.27 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
264.28 + <meta name="robots" content="index, follow, noarchive" />
264.29 + <title>interos help</title>
264.30 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
264.31 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
264.32 + <link rel="stylesheet" type="text/css" href="/style/default.css"
264.33 + media="screen, projection" />
264.34 + <script type="text/javascript" src="/js/default.js"></script>
264.35 + </head>
264.36 + <body id="body">
264.37 + <center>
264.38 + <p id="navigation">
264.39 + <a href="/about">about</a> |
264.40 + <a href="/blog">blog</a> |
264.41 + <a href="/code">code</a> |
264.42 + <a href="http://interos.org/">develop</a> |
264.43 + <a href="/e-mail">e-mail</a> |
264.44 + <a href="/faq">f.a.q.</a> |
264.45 + <a href="/gear">gear</a> |
264.46 + <a href="http://www.interos.com/">home</a>
264.47 + </p>
264.48 + <table id="mainPanel">
264.49 + <thead>
264.50 + <tr>
264.51 + <th><center>
264.52 + <h1>
264.53 + <a href="http://help.interos.com/">interos help</a>
264.54 + </h1>
264.55 + <h2>
264.56 + guide to using interos
264.57 + </h2>
264.58 + </center></th>
264.59 + </tr>
264.60 + </thead>
264.61 + <tfoot>
264.62 + <tr>
264.63 + <td><br /></td>
264.64 + </tr>
264.65 + </tfoot>
264.66 + <tbody>
264.67 + <tr>
264.68 + <td><center>
264.69 + <p>
264.70 + (coming soon)
264.71 + </p>
264.72 + </center></td>
264.73 + </tr>
264.74 + </tbody>
264.75 + </table>
264.76 + <p id="copyrightDates">
264.77 + © 2001–2009 interos
264.78 + </p>
264.79 + </center>
264.80 + </body>
264.81 + <!--=====================================================================-->
264.82 + <!-- Copyright and Trademark Statement -->
264.83 + <!--=====================================================================-->
264.84 + <!-- -->
264.85 + <!-- All original textual and graphical site content: -->
264.86 + <!-- -->
264.87 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
264.88 + <!-- reserved. Reproduction in whole or in part without written -->
264.89 + <!-- permission is prohibited. interos and the interos logos are -->
264.90 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
264.91 + <!-- product, and service names mentioned herein may be the properties -->
264.92 + <!-- of their respective owners. Comments in the interos.org forums -->
264.93 + <!-- are the properties of their respective authors. All software -->
264.94 + <!-- developed in the forums is open source and belongs to everyone. -->
264.95 + <!-- -->
264.96 + <!--=====================================================================-->
264.97 + <!-- e-mail: info@interos.com -->
264.98 + <!--=====================================================================-->
264.99 +</html>
265.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
265.2 +++ b/xhtml/page/help_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
265.3 @@ -0,0 +1,96 @@
265.4 +<?xml version="1.0" encoding="utf-8"?>
265.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
265.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
265.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
265.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
265.9 + <!--=================================================-->
265.10 + <!-- interos Standard Document Header - Markup -->
265.11 + <!--=================================================-->
265.12 + <!-- URIs: https://interos.com/help -->
265.13 + <!-- https://help.interos.com/ -->
265.14 + <!-- https://www.interos.com/help -->
265.15 + <!-- Title: interos help -->
265.16 + <!-- Author: Brent Angeline -->
265.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
265.18 + <!--=================================================-->
265.19 + <head>
265.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
265.21 + <meta name="title" content="interos help" />
265.22 + <meta name="description" content="guide to using interos" />
265.23 + <meta name="author" content="Brent Angeline" />
265.24 + <meta name="keywords"
265.25 + content="interos help, interos, help, interos guide, guide" />
265.26 + <meta name="copyright"
265.27 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
265.28 + <meta name="robots" content="index, follow, noarchive" />
265.29 + <title>interos help</title>
265.30 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
265.31 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
265.32 + <link rel="stylesheet" type="text/css" href="/style/default.css"
265.33 + media="screen, projection" />
265.34 + <script type="text/javascript" src="/js/default.js"></script>
265.35 + </head>
265.36 + <body id="body">
265.37 + <center>
265.38 + <p id="navigation">
265.39 + <a href="/about">about</a> |
265.40 + <a href="/blog">blog</a> |
265.41 + <a href="/code">code</a> |
265.42 + <a href="https://interos.org/">develop</a> |
265.43 + <a href="/e-mail">e-mail</a> |
265.44 + <a href="/faq">f.a.q.</a> |
265.45 + <a href="/gear">gear</a> |
265.46 + <a href="https://www.interos.com/">home</a>
265.47 + </p>
265.48 + <table id="mainPanel">
265.49 + <thead>
265.50 + <tr>
265.51 + <th><center>
265.52 + <h1>
265.53 + <a href="https://help.interos.com/">interos help</a>
265.54 + </h1>
265.55 + <h2>
265.56 + guide to using interos
265.57 + </h2>
265.58 + </center></th>
265.59 + </tr>
265.60 + </thead>
265.61 + <tfoot>
265.62 + <tr>
265.63 + <td><br /></td>
265.64 + </tr>
265.65 + </tfoot>
265.66 + <tbody>
265.67 + <tr>
265.68 + <td><center>
265.69 + <p>
265.70 + (coming soon)
265.71 + </p>
265.72 + </center></td>
265.73 + </tr>
265.74 + </tbody>
265.75 + </table>
265.76 + <p id="copyrightDates">
265.77 + © 2001–2009 interos
265.78 + </p>
265.79 + </center>
265.80 + </body>
265.81 + <!--=====================================================================-->
265.82 + <!-- Copyright and Trademark Statement -->
265.83 + <!--=====================================================================-->
265.84 + <!-- -->
265.85 + <!-- All original textual and graphical site content: -->
265.86 + <!-- -->
265.87 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
265.88 + <!-- reserved. Reproduction in whole or in part without written -->
265.89 + <!-- permission is prohibited. interos and the interos logos are -->
265.90 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
265.91 + <!-- product, and service names mentioned herein may be the properties -->
265.92 + <!-- of their respective owners. Comments in the interos.org forums -->
265.93 + <!-- are the properties of their respective authors. All software -->
265.94 + <!-- developed in the forums is open source and belongs to everyone. -->
265.95 + <!-- -->
265.96 + <!--=====================================================================-->
265.97 + <!-- e-mail: info@interos.com -->
265.98 + <!--=====================================================================-->
265.99 +</html>
266.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
266.2 +++ b/xhtml/page/help_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
266.3 @@ -0,0 +1,96 @@
266.4 +<?xml version="1.0" encoding="utf-8"?>
266.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
266.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
266.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
266.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
266.9 + <!--=================================================-->
266.10 + <!-- interos Standard Document Header - Markup -->
266.11 + <!--=================================================-->
266.12 + <!-- URIs: http://interos.org/help -->
266.13 + <!-- http://help.interos.org/ -->
266.14 + <!-- http://www.interos.org/help -->
266.15 + <!-- Title: interos help -->
266.16 + <!-- Author: Brent Angeline -->
266.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
266.18 + <!--=================================================-->
266.19 + <head>
266.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
266.21 + <meta name="title" content="interos help" />
266.22 + <meta name="description" content="guide to using interos" />
266.23 + <meta name="author" content="Brent Angeline" />
266.24 + <meta name="keywords"
266.25 + content="interos help, interos, help, interos guide, guide" />
266.26 + <meta name="copyright"
266.27 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
266.28 + <meta name="robots" content="index, follow, noarchive" />
266.29 + <title>interos help</title>
266.30 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
266.31 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
266.32 + <link rel="stylesheet" type="text/css" href="/style/default.css"
266.33 + media="screen, projection" />
266.34 + <script type="text/javascript" src="/js/default.js"></script>
266.35 + </head>
266.36 + <body id="body">
266.37 + <center>
266.38 + <p id="navigation">
266.39 + <a href="/about">about</a> |
266.40 + <a href="/blog">blog</a> |
266.41 + <a href="/code">code</a> |
266.42 + <a href="/forums">develop</a> |
266.43 + <a href="/e-mail">e-mail</a> |
266.44 + <a href="/faq">f.a.q.</a> |
266.45 + <a href="/gear">gear</a> |
266.46 + <a href="http://interos.org/">home</a>
266.47 + </p>
266.48 + <table id="mainPanel">
266.49 + <thead>
266.50 + <tr>
266.51 + <th><center>
266.52 + <h1>
266.53 + <a href="http://help.interos.org/">interos help</a>
266.54 + </h1>
266.55 + <h2>
266.56 + guide to using interos
266.57 + </h2>
266.58 + </center></th>
266.59 + </tr>
266.60 + </thead>
266.61 + <tfoot>
266.62 + <tr>
266.63 + <td><br /></td>
266.64 + </tr>
266.65 + </tfoot>
266.66 + <tbody>
266.67 + <tr>
266.68 + <td><center>
266.69 + <p>
266.70 + (coming soon)
266.71 + </p>
266.72 + </center></td>
266.73 + </tr>
266.74 + </tbody>
266.75 + </table>
266.76 + <p id="copyrightDates">
266.77 + © 2001–2009 interos
266.78 + </p>
266.79 + </center>
266.80 + </body>
266.81 + <!--=====================================================================-->
266.82 + <!-- Copyright and Trademark Statement -->
266.83 + <!--=====================================================================-->
266.84 + <!-- -->
266.85 + <!-- All original textual and graphical site content: -->
266.86 + <!-- -->
266.87 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
266.88 + <!-- reserved. Reproduction in whole or in part without written -->
266.89 + <!-- permission is prohibited. interos and the interos logos are -->
266.90 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
266.91 + <!-- product, and service names mentioned herein may be the properties -->
266.92 + <!-- of their respective owners. Comments in the interos.org forums -->
266.93 + <!-- are the properties of their respective authors. All software -->
266.94 + <!-- developed in the forums is open source and belongs to everyone. -->
266.95 + <!-- -->
266.96 + <!--=====================================================================-->
266.97 + <!-- e-mail: info@interos.org -->
266.98 + <!--=====================================================================-->
266.99 +</html>
267.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
267.2 +++ b/xhtml/page/help_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
267.3 @@ -0,0 +1,95 @@
267.4 +<?xml version="1.0" encoding="utf-8"?>
267.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
267.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
267.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
267.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
267.9 + <!--=================================================-->
267.10 + <!-- interos Standard Document Header - Markup -->
267.11 + <!--=================================================-->
267.12 + <!-- URIs: https://interos.org/help -->
267.13 + <!-- https://help.interos.org/ -->
267.14 + <!-- https://www.interos.org/help -->
267.15 + <!-- Title: interos help -->
267.16 + <!-- Author: Brent Angeline -->
267.17 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
267.18 + <!--=================================================-->
267.19 + <head>
267.20 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
267.21 + <meta name="title" content="interos help" />
267.22 + <meta name="description" content="guide to using interos" />
267.23 + <meta name="author" content="Brent Angeline" />
267.24 + <meta name="keywords"
267.25 + content="interos help, interos, help, interos guide, guide" />
267.26 + <meta name="copyright"
267.27 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
267.28 + <meta name="robots" content="index, follow, noarchive" />
267.29 + <title>interos help</title>
267.30 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
267.31 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
267.32 + <link rel="stylesheet" type="text/css" href="/style/default.css"
267.33 + media="screen, projection" />
267.34 + </head>
267.35 + <body id="body">
267.36 + <center>
267.37 + <p id="navigation">
267.38 + <a href="/about">about</a> |
267.39 + <a href="/blog">blog</a> |
267.40 + <a href="/code">code</a> |
267.41 + <a href="/forums">develop</a> |
267.42 + <a href="/e-mail">e-mail</a> |
267.43 + <a href="/faq">f.a.q.</a> |
267.44 + <a href="/gear">gear</a> |
267.45 + <a href="https://interos.org/">home</a>
267.46 + </p>
267.47 + <table id="mainPanel">
267.48 + <thead>
267.49 + <tr>
267.50 + <th><center>
267.51 + <h1>
267.52 + <a href="https://help.interos.org/">interos help</a>
267.53 + </h1>
267.54 + <h2>
267.55 + guide to using interos
267.56 + </h2>
267.57 + </center></th>
267.58 + </tr>
267.59 + </thead>
267.60 + <tfoot>
267.61 + <tr>
267.62 + <td><br /></td>
267.63 + </tr>
267.64 + </tfoot>
267.65 + <tbody>
267.66 + <tr>
267.67 + <td><center>
267.68 + <p>
267.69 + (coming soon)
267.70 + </p>
267.71 + </center></td>
267.72 + </tr>
267.73 + </tbody>
267.74 + </table>
267.75 + <p id="copyrightDates">
267.76 + © 2001–2009 interos
267.77 + </p>
267.78 + </center>
267.79 + </body>
267.80 + <!--=====================================================================-->
267.81 + <!-- Copyright and Trademark Statement -->
267.82 + <!--=====================================================================-->
267.83 + <!-- -->
267.84 + <!-- All original textual and graphical site content: -->
267.85 + <!-- -->
267.86 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
267.87 + <!-- reserved. Reproduction in whole or in part without written -->
267.88 + <!-- permission is prohibited. interos and the interos logos are -->
267.89 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
267.90 + <!-- product, and service names mentioned herein may be the properties -->
267.91 + <!-- of their respective owners. Comments in the interos.org forums -->
267.92 + <!-- are the properties of their respective authors. All software -->
267.93 + <!-- developed in the forums is open source and belongs to everyone. -->
267.94 + <!-- -->
267.95 + <!--=====================================================================-->
267.96 + <!-- e-mail: info@interos.org -->
267.97 + <!--=====================================================================-->
267.98 +</html>
268.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
268.2 +++ b/xhtml/page/home_interos.com.xhtml Sat May 01 16:19:36 2010 -0400
268.3 @@ -0,0 +1,98 @@
268.4 +<?xml version="1.0" encoding="utf-8"?>
268.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
268.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
268.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
268.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
268.9 + <!--=================================================-->
268.10 + <!-- interos Standard Document Header - Markup -->
268.11 + <!--=================================================-->
268.12 + <!-- URIs: http://interos.com/ -->
268.13 + <!-- http://www.interos.com/ -->
268.14 + <!-- Title: interos -->
268.15 + <!-- Author: Brent Angeline -->
268.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
268.17 + <!--=================================================-->
268.18 + <head>
268.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
268.20 + <meta name="title" content="interos" />
268.21 + <meta name="description" content="internet operating system" />
268.22 + <meta name="author" content="Brent Angeline" />
268.23 + <meta name="copyright"
268.24 + content="Copyright © 2001-2010 Brent Angeline and interos LLC" />
268.25 + <meta name="robots" content="index, follow, noarchive" />
268.26 + <title>interos</title>
268.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
268.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
268.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
268.30 + media="screen, projection" />
268.31 + <script type="text/javascript" src="/js/home.js"></script>
268.32 + </head>
268.33 + <body id="body">
268.34 + <center>
268.35 + <p id="navigation">
268.36 + <a href="/about">about</a> |
268.37 + <a href="/blog">blog</a> |
268.38 + <a href="/code">code</a> |
268.39 + <a href="http://interos.org/">develop</a> |
268.40 + <a href="/e-mail">e-mail</a> |
268.41 + <a href="/faq">f.a.q.</a> |
268.42 + <a href="/gear">gear</a> |
268.43 + home
268.44 + </p>
268.45 + <table id="mainPanel">
268.46 + <thead>
268.47 + <tr>
268.48 + <th><center>
268.49 + <div id="title">
268.50 + <h1>
268.51 + <a href="/">interos</a>
268.52 + </h1>
268.53 + </div>
268.54 + <h2>
268.55 + internet operating system
268.56 + </h2>
268.57 + </center></th>
268.58 + </tr>
268.59 + </thead>
268.60 + <tfoot>
268.61 + <tr>
268.62 + <td><br /></td>
268.63 + </tr>
268.64 + </tfoot>
268.65 + <tbody>
268.66 + <tr>
268.67 + <td><center>
268.68 + <p>
268.69 + <strong>
268.70 + <a href="https://www.interos.com/">click here for a<br />
268.71 + sneak preview »</a>
268.72 + </strong>
268.73 + </p>
268.74 + </center></td>
268.75 + </tr>
268.76 + </tbody>
268.77 + </table>
268.78 + <p id="copyrightDates">
268.79 + © 2001–2010 interos
268.80 + </p>
268.81 + </center>
268.82 + </body>
268.83 + <!--=====================================================================-->
268.84 + <!-- Copyright and Trademark Statement -->
268.85 + <!--=====================================================================-->
268.86 + <!-- -->
268.87 + <!-- All original textual and graphical site content: -->
268.88 + <!-- -->
268.89 + <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->
268.90 + <!-- reserved. Reproduction in whole or in part without written -->
268.91 + <!-- permission is prohibited. interos and the interos logos are -->
268.92 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
268.93 + <!-- product, and service names mentioned herein may be the properties -->
268.94 + <!-- of their respective owners. Comments in the interos.org forums -->
268.95 + <!-- are the properties of their respective authors. All software -->
268.96 + <!-- developed in the forums is open source and belongs to everyone. -->
268.97 + <!-- -->
268.98 + <!--=====================================================================-->
268.99 + <!-- e-mail: info@interos.com -->
268.100 + <!--=====================================================================-->
268.101 +</html>
269.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
269.2 +++ b/xhtml/page/home_interos.com_ssl.xhtml Sat May 01 16:19:36 2010 -0400
269.3 @@ -0,0 +1,98 @@
269.4 +<?xml version="1.0" encoding="utf-8"?>
269.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
269.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
269.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
269.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
269.9 + <!--=================================================-->
269.10 + <!-- interos Standard Document Header - Markup -->
269.11 + <!--=================================================-->
269.12 + <!-- URIs: https://interos.com/ -->
269.13 + <!-- https://www.interos.com/ -->
269.14 + <!-- Title: interos -->
269.15 + <!-- Author: Brent Angeline -->
269.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
269.17 + <!--=================================================-->
269.18 + <head>
269.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
269.20 + <meta name="title" content="interos" />
269.21 + <meta name="description" content="internet operating system" />
269.22 + <meta name="author" content="Brent Angeline" />
269.23 + <meta name="copyright"
269.24 + content="Copyright © 2001-2010 Brent Angeline and interos LLC" />
269.25 + <meta name="robots" content="index, follow, noarchive" />
269.26 + <title>interos</title>
269.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
269.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
269.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
269.30 + media="screen, projection" />
269.31 + <script type="text/javascript" src="/js/home.js"></script>
269.32 + </head>
269.33 + <body id="body">
269.34 + <center>
269.35 + <p id="navigation">
269.36 + <a href="/about">about</a> |
269.37 + <a href="/blog">blog</a> |
269.38 + <a href="/code">code</a> |
269.39 + <a href="/demo">demo</a> |
269.40 + <a href="/e-mail">e-mail</a> |
269.41 + <a href="/faq">f.a.q.</a> |
269.42 + <a href="/gear">gear</a> |
269.43 + home
269.44 + </p>
269.45 + <table id="mainPanel">
269.46 + <thead>
269.47 + <tr>
269.48 + <th><center>
269.49 + <div id="title">
269.50 + <h1>
269.51 + <a href="/">interos</a>
269.52 + </h1>
269.53 + </div>
269.54 + <h2>
269.55 + internet operating system
269.56 + </h2>
269.57 + </center></th>
269.58 + </tr>
269.59 + </thead>
269.60 + <tfoot>
269.61 + <tr>
269.62 + <td><br /></td>
269.63 + </tr>
269.64 + </tfoot>
269.65 + <tbody>
269.66 + <tr>
269.67 + <td><center>
269.68 + <p>
269.69 + <strong>
269.70 + <a href="/demo">click here for a<br />
269.71 + sneak preview »</a>
269.72 + </strong>
269.73 + </p>
269.74 + </center></td>
269.75 + </tr>
269.76 + </tbody>
269.77 + </table>
269.78 + <p id="copyrightDates">
269.79 + © 2001–2010 interos
269.80 + </p>
269.81 + </center>
269.82 + </body>
269.83 + <!--=====================================================================-->
269.84 + <!-- Copyright and Trademark Statement -->
269.85 + <!--=====================================================================-->
269.86 + <!-- -->
269.87 + <!-- All original textual and graphical site content: -->
269.88 + <!-- -->
269.89 + <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->
269.90 + <!-- reserved. Reproduction in whole or in part without written -->
269.91 + <!-- permission is prohibited. interos and the interos logos are -->
269.92 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
269.93 + <!-- product, and service names mentioned herein may be the properties -->
269.94 + <!-- of their respective owners. Comments in the interos.org forums -->
269.95 + <!-- are the properties of their respective authors. All software -->
269.96 + <!-- developed in the forums is open source and belongs to everyone. -->
269.97 + <!-- -->
269.98 + <!--=====================================================================-->
269.99 + <!-- e-mail: info@interos.com -->
269.100 + <!--=====================================================================-->
269.101 +</html>
270.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
270.2 +++ b/xhtml/page/home_interos.org.xhtml Sat May 01 16:19:36 2010 -0400
270.3 @@ -0,0 +1,215 @@
270.4 +<?xml version="1.0" encoding="utf-8"?>
270.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
270.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
270.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
270.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
270.9 + <!--=================================================-->
270.10 + <!-- interos Standard Document Header - Markup -->
270.11 + <!--=================================================-->
270.12 + <!-- URIs: http://interos.org/ -->
270.13 + <!-- http://www.interos.org/ -->
270.14 + <!-- Title: interos.org -->
270.15 + <!-- Author: Brent Angeline -->
270.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
270.17 + <!--=================================================-->
270.18 + <head>
270.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
270.20 + <meta name="title" content="interos.org" />
270.21 + <meta name="description" content="internet open source" />
270.22 + <meta name="author" content="Brent Angeline" />
270.23 + <meta name="copyright"
270.24 + content="Copyright © 2001-2010 Brent Angeline and interos LLC" />
270.25 + <meta name="robots" content="index, follow, noarchive" />
270.26 + <title>interos.org</title>
270.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
270.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
270.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
270.30 + media="screen, projection" />
270.31 + <script type="text/javascript" src="/js/default.js"></script>
270.32 + <style type="text/css">
270.33 + #toolkit {
270.34 + width: 28em;
270.35 + background: white;
270.36 + margin-top: 19px;
270.37 + border-right: 1px solid black;
270.38 + border-bottom: 1px solid black;
270.39 + border-left: 1px solid gray;
270.40 + }
270.41 + #logo {
270.42 + float: left;
270.43 + margin-top: 5px;
270.44 + margin-left: 5px;
270.45 + }
270.46 + #toolkit h3 {
270.47 + background: orange url(/style/images/box/highlight.gif) repeat-x;
270.48 + border-top: 1px solid gray;
270.49 + border-bottom: 1px solid black;
270.50 + margin-top: 0;
270.51 + padding-left: 10px;
270.52 + padding-right: 10px;
270.53 + }
270.54 + #toolkit td {
270.55 + text-align: center;
270.56 + vertical-align: middle;
270.57 + }
270.58 + #toolkit a {
270.59 + font-weight: bold;
270.60 + text-decoration: underline;
270.61 + }
270.62 + #toolkit a:hover {
270.63 + color: white;
270.64 + }
270.65 + #toolkit a:active {
270.66 + color: black;
270.67 + }
270.68 + a#wiki {
270.69 + color: blue;
270.70 + }
270.71 + a#wiki:hover {
270.72 + background: blue;
270.73 + }
270.74 + a#planet {
270.75 + color: green;
270.76 + }
270.77 + a#planet:hover {
270.78 + background: green;
270.79 + }
270.80 + a#source {
270.81 + color: red;
270.82 + }
270.83 + a#source:hover {
270.84 + background: red;
270.85 + }
270.86 + a#doc {
270.87 + color: #ada900;
270.88 + }
270.89 + a#doc:hover {
270.90 + background: #ada900;
270.91 + }
270.92 + a#forums {
270.93 + color: #e47100;
270.94 + }
270.95 + a#forums:hover {
270.96 + background: #e47100;
270.97 + }
270.98 + a#irc {
270.99 + color: purple;
270.100 + }
270.101 + a#irc:hover {
270.102 + background: purple;
270.103 + }
270.104 + </style>
270.105 + </head>
270.106 + <body id="body">
270.107 + <center>
270.108 + <p id="navigation">
270.109 + <a href="/about">about</a> |
270.110 + <a href="/blog">blog</a> |
270.111 + <a href="/code">code</a> |
270.112 + <a href="/forums">develop</a> |
270.113 + <a href="/e-mail">e-mail</a> |
270.114 + <a href="/faq">f.a.q.</a> |
270.115 + <a href="/gear">gear</a> |
270.116 + home
270.117 + </p>
270.118 + <table id="mainPanel">
270.119 + <thead>
270.120 + <tr>
270.121 + <th><center>
270.122 + <h1>
270.123 + <a href="/">interos.org</a>
270.124 + </h1>
270.125 + <h2>
270.126 + internet open source
270.127 + </h2>
270.128 + </center></th>
270.129 + </tr>
270.130 + </thead>
270.131 + <tfoot>
270.132 + <tr>
270.133 + <td><center>
270.134 + <p>
270.135 + see also:
270.136 + <strong>
270.137 + <a href="http://www.interos.com/">interos.com</a>
270.138 + </strong>
270.139 + </p>
270.140 + </center></td>
270.141 + </tr>
270.142 + </tfoot>
270.143 + <tbody>
270.144 + <tr>
270.145 + <td><center>
270.146 + <div id="toolkit">
270.147 + <div id="logo">
270.148 + <img src="/images/interos.org_logo.png"
270.149 + alt="interos.org logo" width="116" height="116" />
270.150 + </div>
270.151 + <h3>
270.152 + development community toolkit
270.153 + </h3>
270.154 + <table>
270.155 + <tr>
270.156 + <td rowspan="3"><div>
270.157 + <a id="wiki"
270.158 + href="http://wiki.interos.org/">wiki</a>
270.159 + </div></td>
270.160 + <td><div>
270.161 + <a id="planet"
270.162 + href="http://planet.interos.org/">planet</a>
270.163 + </div></td>
270.164 + <td><div>
270.165 + <a id="source"
270.166 + href="http://source.interos.org/">source</a>
270.167 + </div></td>
270.168 + <td rowspan="3"><div>
270.169 + <a id="doc"
270.170 + href="http://doc.interos.org/">doc</a>
270.171 + </div></td>
270.172 + </tr>
270.173 + <tr>
270.174 + <td colspan="2"><br /></td>
270.175 + </tr>
270.176 + <tr>
270.177 + <td><div>
270.178 + <a id="forums"
270.179 + href="http://forums.interos.org/">forums</a>
270.180 + </div></td>
270.181 + <td><div>
270.182 + <a id="irc"
270.183 + href="http://wiki.interos.org/view/IRC">irc</a>
270.184 + </div></td>
270.185 + </tr>
270.186 + <tr>
270.187 + <td colspan="4"><br /></td>
270.188 + </tr>
270.189 + </table>
270.190 + </div>
270.191 + </center></td>
270.192 + </tr>
270.193 + </tbody>
270.194 + </table>
270.195 + <p id="copyrightDates">
270.196 + © 2001–2010 interos
270.197 + </p>
270.198 + </center>
270.199 + </body>
270.200 + <!--=====================================================================-->
270.201 + <!-- Copyright and Trademark Statement -->
270.202 + <!--=====================================================================-->
270.203 + <!-- -->
270.204 + <!-- All original textual and graphical site content: -->
270.205 + <!-- -->
270.206 + <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->
270.207 + <!-- reserved. Reproduction in whole or in part without written -->
270.208 + <!-- permission is prohibited. interos and the interos logos are -->
270.209 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
270.210 + <!-- product, and service names mentioned herein may be the properties -->
270.211 + <!-- of their respective owners. Comments in the interos.org forums -->
270.212 + <!-- are the properties of their respective authors. All software -->
270.213 + <!-- developed in the forums is open source and belongs to everyone. -->
270.214 + <!-- -->
270.215 + <!--=====================================================================-->
270.216 + <!-- e-mail: info@interos.org -->
270.217 + <!--=====================================================================-->
270.218 +</html>
271.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
271.2 +++ b/xhtml/page/home_interos.org_old.xhtml Sat May 01 16:19:36 2010 -0400
271.3 @@ -0,0 +1,103 @@
271.4 +<?xml version="1.0" encoding="utf-8"?>
271.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
271.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
271.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
271.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
271.9 + <!--=================================================-->
271.10 + <!-- interos Standard Document Header - Markup -->
271.11 + <!--=================================================-->
271.12 + <!-- URIs: http://interos.org/ -->
271.13 + <!-- http://www.interos.org/ -->
271.14 + <!-- Title: interos.org -->
271.15 + <!-- Author: Brent Angeline -->
271.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
271.17 + <!--=================================================-->
271.18 + <head>
271.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
271.20 + <meta name="title" content="interos.org" />
271.21 + <meta name="description" content="internet open source" />
271.22 + <meta name="author" content="Brent Angeline" />
271.23 + <meta name="copyright"
271.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
271.25 + <meta name="robots" content="index, follow, noarchive" />
271.26 + <title>interos.org</title>
271.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
271.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
271.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
271.30 + media="screen, projection" />
271.31 + <script type="text/javascript" src="/js/default.js"></script>
271.32 + </head>
271.33 + <body id="body">
271.34 + <center>
271.35 + <p id="navigation">
271.36 + <a href="/about">about</a> |
271.37 + <a href="/blog">blog</a> |
271.38 + <a href="/code">code</a> |
271.39 + <a href="/forums">develop</a> |
271.40 + <a href="/e-mail">e-mail</a> |
271.41 + <a href="/faq">f.a.q.</a> |
271.42 + <a href="/gear">gear</a> |
271.43 + home
271.44 + </p>
271.45 + <table id="mainPanel">
271.46 + <thead>
271.47 + <tr>
271.48 + <th><center>
271.49 + <h1>
271.50 + <a href="/">interos.org</a>
271.51 + </h1>
271.52 + <h2>
271.53 + internet open source
271.54 + </h2>
271.55 + </center></th>
271.56 + </tr>
271.57 + </thead>
271.58 + <tfoot>
271.59 + <tr>
271.60 + <td><br /></td>
271.61 + </tr>
271.62 + </tfoot>
271.63 + <tbody>
271.64 + <tr>
271.65 + <td><center>
271.66 + <p>
271.67 + A <strong><a href="http://www.interos.com/demo">sneak
271.68 + preview</a></strong> of interos is now available!
271.69 + </p>
271.70 + <p>
271.71 + For information on developing free and open Java and Flash
271.72 + applications for interos, please contact:
271.73 + </p>
271.74 + <p>
271.75 + <strong>
271.76 + <a href="mailto:info@interos.org">info@interos.org</a>
271.77 + </strong>
271.78 + </p>
271.79 + </center></td>
271.80 + </tr>
271.81 + </tbody>
271.82 + </table>
271.83 + <p id="copyrightDates">
271.84 + © 2001–2009 interos
271.85 + </p>
271.86 + </center>
271.87 + </body>
271.88 + <!--=====================================================================-->
271.89 + <!-- Copyright and Trademark Statement -->
271.90 + <!--=====================================================================-->
271.91 + <!-- -->
271.92 + <!-- All original textual and graphical site content: -->
271.93 + <!-- -->
271.94 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
271.95 + <!-- reserved. Reproduction in whole or in part without written -->
271.96 + <!-- permission is prohibited. interos and the interos logos are -->
271.97 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
271.98 + <!-- product, and service names mentioned herein may be the properties -->
271.99 + <!-- of their respective owners. Comments in the interos.org forums -->
271.100 + <!-- are the properties of their respective authors. All software -->
271.101 + <!-- developed in the forums is open source and belongs to everyone. -->
271.102 + <!-- -->
271.103 + <!--=====================================================================-->
271.104 + <!-- e-mail: info@interos.org -->
271.105 + <!--=====================================================================-->
271.106 +</html>
272.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
272.2 +++ b/xhtml/page/home_interos.org_ssl.xhtml Sat May 01 16:19:36 2010 -0400
272.3 @@ -0,0 +1,215 @@
272.4 +<?xml version="1.0" encoding="utf-8"?>
272.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
272.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
272.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
272.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
272.9 + <!--=================================================-->
272.10 + <!-- interos Standard Document Header - Markup -->
272.11 + <!--=================================================-->
272.12 + <!-- URIs: https://interos.org/ -->
272.13 + <!-- https://www.interos.org/ -->
272.14 + <!-- Title: interos.org -->
272.15 + <!-- Author: Brent Angeline -->
272.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
272.17 + <!--=================================================-->
272.18 + <head>
272.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
272.20 + <meta name="title" content="interos.org" />
272.21 + <meta name="description" content="internet open source" />
272.22 + <meta name="author" content="Brent Angeline" />
272.23 + <meta name="copyright"
272.24 + content="Copyright © 2001-2010 Brent Angeline and interos LLC" />
272.25 + <meta name="robots" content="index, follow, noarchive" />
272.26 + <title>interos.org</title>
272.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
272.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
272.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
272.30 + media="screen, projection" />
272.31 + <script type="text/javascript" src="/js/default.js"></script>
272.32 + <style type="text/css">
272.33 + #toolkit {
272.34 + width: 28em;
272.35 + background: white;
272.36 + margin-top: 19px;
272.37 + border-right: 1px solid black;
272.38 + border-bottom: 1px solid black;
272.39 + border-left: 1px solid gray;
272.40 + }
272.41 + #logo {
272.42 + float: left;
272.43 + margin-top: 5px;
272.44 + margin-left: 5px;
272.45 + }
272.46 + #toolkit h3 {
272.47 + background: orange url(/style/images/box/highlight.gif) repeat-x;
272.48 + border-top: 1px solid gray;
272.49 + border-bottom: 1px solid black;
272.50 + margin-top: 0;
272.51 + padding-left: 10px;
272.52 + padding-right: 10px;
272.53 + }
272.54 + #toolkit td {
272.55 + text-align: center;
272.56 + vertical-align: middle;
272.57 + }
272.58 + #toolkit a {
272.59 + font-weight: bold;
272.60 + text-decoration: underline;
272.61 + }
272.62 + #toolkit a:hover {
272.63 + color: white;
272.64 + }
272.65 + #toolkit a:active {
272.66 + color: black;
272.67 + }
272.68 + a#wiki {
272.69 + color: blue;
272.70 + }
272.71 + a#wiki:hover {
272.72 + background: blue;
272.73 + }
272.74 + a#planet {
272.75 + color: green;
272.76 + }
272.77 + a#planet:hover {
272.78 + background: green;
272.79 + }
272.80 + a#source {
272.81 + color: red;
272.82 + }
272.83 + a#source:hover {
272.84 + background: red;
272.85 + }
272.86 + a#doc {
272.87 + color: #ada900;
272.88 + }
272.89 + a#doc:hover {
272.90 + background: #ada900;
272.91 + }
272.92 + a#forums {
272.93 + color: #e47100;
272.94 + }
272.95 + a#forums:hover {
272.96 + background: #e47100;
272.97 + }
272.98 + a#irc {
272.99 + color: purple;
272.100 + }
272.101 + a#irc:hover {
272.102 + background: purple;
272.103 + }
272.104 + </style>
272.105 + </head>
272.106 + <body id="body">
272.107 + <center>
272.108 + <p id="navigation">
272.109 + <a href="/about">about</a> |
272.110 + <a href="/blog">blog</a> |
272.111 + <a href="/code">code</a> |
272.112 + <a href="/forums">develop</a> |
272.113 + <a href="/e-mail">e-mail</a> |
272.114 + <a href="/faq">f.a.q.</a> |
272.115 + <a href="/gear">gear</a> |
272.116 + home
272.117 + </p>
272.118 + <table id="mainPanel">
272.119 + <thead>
272.120 + <tr>
272.121 + <th><center>
272.122 + <h1>
272.123 + <a href="/">interos.org</a>
272.124 + </h1>
272.125 + <h2>
272.126 + internet open source
272.127 + </h2>
272.128 + </center></th>
272.129 + </tr>
272.130 + </thead>
272.131 + <tfoot>
272.132 + <tr>
272.133 + <td><center>
272.134 + <p>
272.135 + see also:
272.136 + <strong>
272.137 + <a href="https://www.interos.com/">interos.com</a>
272.138 + </strong>
272.139 + </p>
272.140 + </center></td>
272.141 + </tr>
272.142 + </tfoot>
272.143 + <tbody>
272.144 + <tr>
272.145 + <td><center>
272.146 + <div id="toolkit">
272.147 + <div id="logo">
272.148 + <img src="/images/interos.org_logo.png"
272.149 + alt="interos.org logo" width="116" height="116" />
272.150 + </div>
272.151 + <h3>
272.152 + development community toolkit
272.153 + </h3>
272.154 + <table>
272.155 + <tr>
272.156 + <td rowspan="3"><div>
272.157 + <a id="wiki"
272.158 + href="http://wiki.interos.org/">wiki</a>
272.159 + </div></td>
272.160 + <td><div>
272.161 + <a id="planet"
272.162 + href="http://planet.interos.org/">planet</a>
272.163 + </div></td>
272.164 + <td><div>
272.165 + <a id="source"
272.166 + href="http://source.interos.org/">source</a>
272.167 + </div></td>
272.168 + <td rowspan="3"><div>
272.169 + <a id="doc"
272.170 + href="http://doc.interos.org/">doc</a>
272.171 + </div></td>
272.172 + </tr>
272.173 + <tr>
272.174 + <td colspan="2"><br /></td>
272.175 + </tr>
272.176 + <tr>
272.177 + <td><div>
272.178 + <a id="forums"
272.179 + href="http://forums.interos.org/">forums</a>
272.180 + </div></td>
272.181 + <td><div>
272.182 + <a id="irc"
272.183 + href="http://wiki.interos.org/view/IRC">irc</a>
272.184 + </div></td>
272.185 + </tr>
272.186 + <tr>
272.187 + <td colspan="4"><br /></td>
272.188 + </tr>
272.189 + </table>
272.190 + </div>
272.191 + </center></td>
272.192 + </tr>
272.193 + </tbody>
272.194 + </table>
272.195 + <p id="copyrightDates">
272.196 + © 2001–2010 interos
272.197 + </p>
272.198 + </center>
272.199 + </body>
272.200 + <!--=====================================================================-->
272.201 + <!-- Copyright and Trademark Statement -->
272.202 + <!--=====================================================================-->
272.203 + <!-- -->
272.204 + <!-- All original textual and graphical site content: -->
272.205 + <!-- -->
272.206 + <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->
272.207 + <!-- reserved. Reproduction in whole or in part without written -->
272.208 + <!-- permission is prohibited. interos and the interos logos are -->
272.209 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
272.210 + <!-- product, and service names mentioned herein may be the properties -->
272.211 + <!-- of their respective owners. Comments in the interos.org forums -->
272.212 + <!-- are the properties of their respective authors. All software -->
272.213 + <!-- developed in the forums is open source and belongs to everyone. -->
272.214 + <!-- -->
272.215 + <!--=====================================================================-->
272.216 + <!-- e-mail: info@interos.org -->
272.217 + <!--=====================================================================-->
272.218 +</html>
273.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
273.2 +++ b/xhtml/page/home_interos.org_ssl_old.xhtml Sat May 01 16:19:36 2010 -0400
273.3 @@ -0,0 +1,103 @@
273.4 +<?xml version="1.0" encoding="utf-8"?>
273.5 +<?xml-stylesheet type="text/css" href="/style/default.css"?>
273.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
273.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
273.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
273.9 + <!--=================================================-->
273.10 + <!-- interos Standard Document Header - Markup -->
273.11 + <!--=================================================-->
273.12 + <!-- URIs: https://interos.org/ -->
273.13 + <!-- https://www.interos.org/ -->
273.14 + <!-- Title: interos.org -->
273.15 + <!-- Author: Brent Angeline -->
273.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
273.17 + <!--=================================================-->
273.18 + <head>
273.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
273.20 + <meta name="title" content="interos.org" />
273.21 + <meta name="description" content="internet open source" />
273.22 + <meta name="author" content="Brent Angeline" />
273.23 + <meta name="copyright"
273.24 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
273.25 + <meta name="robots" content="index, follow, noarchive" />
273.26 + <title>interos.org</title>
273.27 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
273.28 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
273.29 + <link rel="stylesheet" type="text/css" href="/style/default.css"
273.30 + media="screen, projection" />
273.31 + <script type="text/javascript" src="/js/default.js"></script>
273.32 + </head>
273.33 + <body id="body">
273.34 + <center>
273.35 + <p id="navigation">
273.36 + <a href="/about">about</a> |
273.37 + <a href="/blog">blog</a> |
273.38 + <a href="/code">code</a> |
273.39 + <a href="/forums">develop</a> |
273.40 + <a href="/e-mail">e-mail</a> |
273.41 + <a href="/faq">f.a.q.</a> |
273.42 + <a href="/gear">gear</a> |
273.43 + home
273.44 + </p>
273.45 + <table id="mainPanel">
273.46 + <thead>
273.47 + <tr>
273.48 + <th><center>
273.49 + <h1>
273.50 + <a href="/">interos.org</a>
273.51 + </h1>
273.52 + <h2>
273.53 + internet open source
273.54 + </h2>
273.55 + </center></th>
273.56 + </tr>
273.57 + </thead>
273.58 + <tfoot>
273.59 + <tr>
273.60 + <td><br /></td>
273.61 + </tr>
273.62 + </tfoot>
273.63 + <tbody>
273.64 + <tr>
273.65 + <td><center>
273.66 + <p>
273.67 + A <strong><a href="https://www.interos.com/demo">sneak
273.68 + preview</a></strong> of interos is now available!
273.69 + </p>
273.70 + <p>
273.71 + For information on developing free and open Java and Flash
273.72 + applications for interos, please contact:
273.73 + </p>
273.74 + <p>
273.75 + <strong>
273.76 + <a href="mailto:info@interos.org">info@interos.org</a>
273.77 + </strong>
273.78 + </p>
273.79 + </center></td>
273.80 + </tr>
273.81 + </tbody>
273.82 + </table>
273.83 + <p id="copyrightDates">
273.84 + © 2001–2009 interos
273.85 + </p>
273.86 + </center>
273.87 + </body>
273.88 + <!--=====================================================================-->
273.89 + <!-- Copyright and Trademark Statement -->
273.90 + <!--=====================================================================-->
273.91 + <!-- -->
273.92 + <!-- All original textual and graphical site content: -->
273.93 + <!-- -->
273.94 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
273.95 + <!-- reserved. Reproduction in whole or in part without written -->
273.96 + <!-- permission is prohibited. interos and the interos logos are -->
273.97 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
273.98 + <!-- product, and service names mentioned herein may be the properties -->
273.99 + <!-- of their respective owners. Comments in the interos.org forums -->
273.100 + <!-- are the properties of their respective authors. All software -->
273.101 + <!-- developed in the forums is open source and belongs to everyone. -->
273.102 + <!-- -->
273.103 + <!--=====================================================================-->
273.104 + <!-- e-mail: info@interos.org -->
273.105 + <!--=====================================================================-->
273.106 +</html>
274.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
274.2 +++ b/xhtml/template.xhtml Sat May 01 16:19:36 2010 -0400
274.3 @@ -0,0 +1,53 @@
274.4 +<?xml version="1.0" encoding="utf-8"?>
274.5 +<?xml-stylesheet type="text/css" href="/sys/style/.css"?>
274.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
274.7 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
274.8 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
274.9 + <!--=================================================-->
274.10 + <!-- interos Standard Document Header - Markup -->
274.11 + <!--=================================================-->
274.12 + <!-- URIs: http://interos. -->
274.13 + <!-- http://www. -->
274.14 + <!-- Title: interos -->
274.15 + <!-- Author: Brent Angeline -->
274.16 + <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->
274.17 + <!--=================================================-->
274.18 + <head>
274.19 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
274.20 + <meta name="title" content="interos " />
274.21 + <meta name="description" content=" " />
274.22 + <meta name="author" content="Brent Angeline" />
274.23 + <meta name="keywords"
274.24 + content=" " />
274.25 + <meta name="copyright"
274.26 + content="Copyright © 2001-2009 Brent Angeline and interos LLC" />
274.27 + <meta name="robots" content="index, nofollow, noarchive" />
274.28 + <title>interos </title>
274.29 + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
274.30 + <link rel="icon" type="image/gif" href="/images/favicon.gif" />
274.31 + <link rel="stylesheet" type="text/css" href="/style/.css"
274.32 + media="screen, projection" />
274.33 + <script type="text/javascript" src="/js/.js"></script>
274.34 + </head>
274.35 + <body>
274.36 +
274.37 + </body>
274.38 + <!--=====================================================================-->
274.39 + <!-- Copyright and Trademark Statement -->
274.40 + <!--=====================================================================-->
274.41 + <!-- -->
274.42 + <!-- All original textual and graphical site content: -->
274.43 + <!-- -->
274.44 + <!-- Copyright 2001-2009 Brent Angeline and interos LLC. All rights -->
274.45 + <!-- reserved. Reproduction in whole or in part without written -->
274.46 + <!-- permission is prohibited. interos and the interos logos are -->
274.47 + <!-- trademarks of Brent Angeline and interos LLC. All other company, -->
274.48 + <!-- product, and service names mentioned herein may be the properties -->
274.49 + <!-- of their respective owners. Comments in the interos.org forums -->
274.50 + <!-- are the properties of their respective authors. All software -->
274.51 + <!-- developed in the forums is open source and belongs to everyone. -->
274.52 + <!-- -->
274.53 + <!--=====================================================================-->
274.54 + <!-- e-mail: info@interos. -->
274.55 + <!--=====================================================================-->
274.56 +</html>
275.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
275.2 +++ b/xml/c/access_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
275.3 @@ -0,0 +1,315 @@
275.4 +/******************************************************/
275.5 +/* interos Standard Document Header - CGI in C */
275.6 +/******************************************************/
275.7 +/* File: access */
275.8 +/* Source: access.c */
275.9 +/* Description: FastCGI for interos access checker */
275.10 +/* Author: Brent Angeline */
275.11 +/* CGI: FastCGI in ISO/ANSI C */
275.12 +/******************************************************/
275.13 +
275.14 +/* PREPROCESSOR DIRECTIVES */
275.15 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen() */
275.16 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
275.17 +#include <stdlib.h> /* free(), getenv(), malloc() */
275.18 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen(), strncmp() */
275.19 +#include <unistd.h> /* F_OK, access() */
275.20 +
275.21 +/* FUNCTION PROTOTYPE DECLARATIONS */
275.22 +static void DenyAccess(void);
275.23 +static void GrantAccess(void);
275.24 +
275.25 +/* BEGIN MAIN PROGRAM */
275.26 +int main(void) {
275.27 +
275.28 + /* BEGIN FASTCGI */
275.29 + while (FCGI_Accept() >= 0) {
275.30 +
275.31 + /* IF A URI REQUEST DOESN'T EXIST OR IS TOO LONG... */
275.32 + if (!getenv("REQUEST_URI") || (sizeof(strlen(getenv("REQUEST_URI"))) > sizeof(INT))) {
275.33 + /** ERROR | A URI REQUEST DOES NOT EXIST OR IS TOO LONG > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.34 + DenyAccess();
275.35 +
275.36 + /* OTHERWISE, IF A URI REQUEST DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
275.37 + } else {
275.38 +
275.39 + /* IF THE URI REQUEST IS FOR A PUBLIC FILE IN THE SERVER ROOT... */
275.40 + if (!(strcmp(getenv("REQUEST_URI"), "/") && strcmp(getenv("REQUEST_URI"), "/favicon.ico") &&
275.41 + strcmp(getenv("REQUEST_URI"), "/index.html") && strcmp(getenv("REQUEST_URI"), "/index.xhtml") &&
275.42 + strcmp(getenv("REQUEST_URI"), "/about") && strcmp(getenv("REQUEST_URI"), "/about/") &&
275.43 + strcmp(getenv("REQUEST_URI"), "/blog") && strcmp(getenv("REQUEST_URI"), "/blog/") &&
275.44 + strcmp(getenv("REQUEST_URI"), "/code") && strcmp(getenv("REQUEST_URI"), "/code/") &&
275.45 + strcmp(getenv("REQUEST_URI"), "/demo") && strcmp(getenv("REQUEST_URI"), "/demo/") &&
275.46 + strcmp(getenv("REQUEST_URI"), "/e-mail") && strcmp(getenv("REQUEST_URI"), "/e-mail/") &&
275.47 + strcmp(getenv("REQUEST_URI"), "/email") && strcmp(getenv("REQUEST_URI"), "/email/") &&
275.48 + strcmp(getenv("REQUEST_URI"), "/f.a.q.") && strcmp(getenv("REQUEST_URI"), "/f.a.q./") &&
275.49 + strcmp(getenv("REQUEST_URI"), "/faq") && strcmp(getenv("REQUEST_URI"), "/faq/") &&
275.50 + strcmp(getenv("REQUEST_URI"), "/gear") && strcmp(getenv("REQUEST_URI"), "/gear/") &&
275.51 + strcmp(getenv("REQUEST_URI"), "/help") && strcmp(getenv("REQUEST_URI"), "/help/") &&
275.52 + strcmp(getenv("REQUEST_URI"), "/home") && strcmp(getenv("REQUEST_URI"), "/home/") &&
275.53 + strcmp(getenv("REQUEST_URI"), "/bottom") && strcmp(getenv("REQUEST_URI"), "/bottom/") &&
275.54 + strcmp(getenv("REQUEST_URI"), "/browse") && strcmp(getenv("REQUEST_URI"), "/browse/") &&
275.55 + strcmp(getenv("REQUEST_URI"), "/content") && strcmp(getenv("REQUEST_URI"), "/content/") &&
275.56 + strcmp(getenv("REQUEST_URI"), "/login") && strcmp(getenv("REQUEST_URI"), "/login/") &&
275.57 + strcmp(getenv("REQUEST_URI"), "/logout") && strcmp(getenv("REQUEST_URI"), "/logout/") &&
275.58 + strcmp(getenv("REQUEST_URI"), "/main") && strcmp(getenv("REQUEST_URI"), "/main/") &&
275.59 + strcmp(getenv("REQUEST_URI"), "/interos") && strcmp(getenv("REQUEST_URI"), "/interos/") &&
275.60 + strcmp(getenv("REQUEST_URI"), "/menu") && strcmp(getenv("REQUEST_URI"), "/menu/") &&
275.61 + strcmp(getenv("REQUEST_URI"), "/new") && strcmp(getenv("REQUEST_URI"), "/new/") &&
275.62 + strcmp(getenv("REQUEST_URI"), "/new_user") && strcmp(getenv("REQUEST_URI"), "/new_user/") &&
275.63 + strcmp(getenv("REQUEST_URI"), "/newuser") && strcmp(getenv("REQUEST_URI"), "/newuser/") &&
275.64 + strcmp(getenv("REQUEST_URI"), "/next") && strcmp(getenv("REQUEST_URI"), "/next/") &&
275.65 + strcmp(getenv("REQUEST_URI"), "/open") && strcmp(getenv("REQUEST_URI"), "/open/") &&
275.66 + strcmp(getenv("REQUEST_URI"), "/settings") && strcmp(getenv("REQUEST_URI"), "/settings/") &&
275.67 + strcmp(getenv("REQUEST_URI"), "/top") && strcmp(getenv("REQUEST_URI"), "/top/") &&
275.68 + strcmp(getenv("REQUEST_URI"), "/upload") && strcmp(getenv("REQUEST_URI"), "/upload/") &&
275.69 + strcmp(getenv("REQUEST_URI"), "/user") && strcmp(getenv("REQUEST_URI"), "/user/") &&
275.70 + strcmp(getenv("REQUEST_URI"), "/welcome") && strcmp(getenv("REQUEST_URI"), "/welcome/") &&
275.71 + strcmp(getenv("REQUEST_URI"), "/welcome_back") && strcmp(getenv("REQUEST_URI"), "/welcome_back/") &&
275.72 + strcmp(getenv("REQUEST_URI"), "/welcomeback") && strcmp(getenv("REQUEST_URI"), "/welcomeback/"))) {
275.73 + /** STATUS | PUBLIC FILE > GRANT ACCESS **/
275.74 + GrantAccess();
275.75 +
275.76 + /* OTHERWISE, IF THE URI REQUEST IS FOR A PUBLIC SYSTEM FILE... */
275.77 + } else if (!(strncmp(getenv("REQUEST_URI"), "/dtd/", 5) &&
275.78 + strncmp(getenv("REQUEST_URI"), "/flash/", 7) &&
275.79 + strncmp(getenv("REQUEST_URI"), "/flex/", 6) &&
275.80 + strncmp(getenv("REQUEST_URI"), "/html/", 6) &&
275.81 + strncmp(getenv("REQUEST_URI"), "/icons/", 7) &&
275.82 + strncmp(getenv("REQUEST_URI"), "/images/", 8) &&
275.83 + strncmp(getenv("REQUEST_URI"), "/java/", 6) &&
275.84 + strncmp(getenv("REQUEST_URI"), "/javafx/", 8) &&
275.85 + strncmp(getenv("REQUEST_URI"), "/js/", 4) &&
275.86 + strncmp(getenv("REQUEST_URI"), "/markup/", 8) &&
275.87 + strncmp(getenv("REQUEST_URI"), "/style/", 7) &&
275.88 + strncmp(getenv("REQUEST_URI"), "/sys/", 5) &&
275.89 + strncmp(getenv("REQUEST_URI"), "/xhtml/", 7) &&
275.90 + strncmp(getenv("REQUEST_URI"), "/xml/", 5))) {
275.91 + /** STATUS | PUBLIC SYSTEM FILE > GRANT ACCESS **/
275.92 + GrantAccess();
275.93 +
275.94 + /* OTHERWISE, THE PROPER COOKIES ARE REQUIRED FOR ACCESS... */
275.95 + } else {
275.96 +
275.97 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
275.98 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
275.99 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
275.100 + DenyAccess();
275.101 +
275.102 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
275.103 + } else {
275.104 +
275.105 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
275.106 + char *cookie;
275.107 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
275.108 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
275.109 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.110 + DenyAccess();
275.111 + } else {
275.112 + char *variableName;
275.113 + if (!(variableName = malloc(cookieLength + 1))) {
275.114 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.115 + DenyAccess();
275.116 + } else {
275.117 + char *variableValue;
275.118 + if (!(variableValue = malloc(cookieLength + 1))) {
275.119 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.120 + DenyAccess();
275.121 +
275.122 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
275.123 + } else {
275.124 +
275.125 + /* PROCESS COOKIE DATA */
275.126 + char *login, *password;
275.127 + INT c, i;
275.128 + login = password = NULL;
275.129 + c = 0;
275.130 + strcpy(cookie, getenv("HTTP_COOKIE"));
275.131 + while ((c < cookieLength) && (cookie[c] != '\0')) {
275.132 + i = 0;
275.133 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
275.134 + variableName[i] = cookie[c];
275.135 + ++c;
275.136 + ++i;
275.137 + }
275.138 + variableName[i] = '\0';
275.139 + ++c;
275.140 + i = 0;
275.141 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
275.142 + variableValue[i] = cookie[c];
275.143 + ++c;
275.144 + ++i;
275.145 + }
275.146 + variableValue[i] = '\0';
275.147 + ++c;
275.148 + while ((c < cookieLength) && (cookie[c] == ' ')) {
275.149 + ++c;
275.150 + }
275.151 + if (!login && !strcmp(variableName, "login")) {
275.152 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
275.153 + strcpy(login, variableValue);
275.154 + }
275.155 + } else if (!password && !strcmp(variableName, "password")) {
275.156 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
275.157 + strcpy(password, variableValue);
275.158 + }
275.159 + }
275.160 + }
275.161 +
275.162 + /* IF LOGIN VALUE IS MISSING... */
275.163 + if (!login) {
275.164 + /** ERROR | LOGIN VALUE IS MISSING > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.165 + DenyAccess();
275.166 +
275.167 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
275.168 + } else {
275.169 +
275.170 + /* VERIFY LOGIN AND PASSWORD */
275.171 + char *directory;
275.172 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
275.173 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.174 + DenyAccess();
275.175 + } else {
275.176 + char *systemDirectory;
275.177 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
275.178 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.179 + DenyAccess();
275.180 + } else {
275.181 + strcpy(directory, DIRECTORY);
275.182 + strcat(directory, login);
275.183 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
275.184 + strcat(systemDirectory, login);
275.185 +
275.186 + /* IF DIRECTORY CAN'T BE ACCESSED... */
275.187 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
275.188 + /** ERROR | CANNOT ACCESS DIRECTORY > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.189 + DenyAccess();
275.190 +
275.191 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
275.192 + } else {
275.193 +
275.194 + /* ATTEMPT TO ACCESS PASSWORD FILE */
275.195 + char *passwordFileName;
275.196 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
275.197 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.198 + DenyAccess();
275.199 + } else {
275.200 + strcpy(passwordFileName, systemDirectory);
275.201 + strcat(passwordFileName, PASSWORD_FILE_NAME);
275.202 +
275.203 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
275.204 + if (access(passwordFileName, F_OK)) {
275.205 + /** ERROR | CANNOT ACCESS FILE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.206 + DenyAccess();
275.207 +
275.208 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
275.209 + } else {
275.210 +
275.211 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
275.212 + FILE *passwordFile;
275.213 +
275.214 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
275.215 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
275.216 + /** ERROR | CANNOT READ FILE > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.217 + DenyAccess();
275.218 +
275.219 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
275.220 + } else {
275.221 + char *filePassword;
275.222 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
275.223 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE **/
275.224 + /** > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.225 + DenyAccess();
275.226 + } else {
275.227 + char c;
275.228 + i = 0;
275.229 +
275.230 + /* READ PASSWORD FROM PASSWORD FILE */
275.231 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
275.232 + filePassword[i] = c;
275.233 + ++i;
275.234 + }
275.235 + filePassword[i] = '\0';
275.236 + fclose(passwordFile);
275.237 +
275.238 + /* IF PASSWORD FAILS COMPARISON... */
275.239 + if (strcmp(filePassword, password)) {
275.240 + /** ERROR | PASSWORD FAILED > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.241 + DenyAccess();
275.242 +
275.243 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
275.244 + } else {
275.245 + char *loginDirectory;
275.246 + if (!(loginDirectory = malloc(strlen(login) + 3))) {
275.247 + /** ERROR | CANNOT ALLOCATE MEMORY FOR LOGIN DIRECTORY NAME **/
275.248 + /** > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.249 + DenyAccess();
275.250 + } else {
275.251 + strcpy(loginDirectory, "/");
275.252 + strcat(loginDirectory, login);
275.253 + strcat(loginDirectory, "/");
275.254 + if (strncmp(loginDirectory, getenv("REQUEST_URI"), (strlen(login) + 2))) {
275.255 + /** STATUS | FILE DOES NOT BELONG TO USER > DENY ACCESS AND REDIRECT TO LOGIN PANEL **/
275.256 + DenyAccess();
275.257 + } else {
275.258 + /** STATUS | FILE DOES BELONG TO USER > GRANT ACCESS **/
275.259 + GrantAccess();
275.260 + }
275.261 + free(loginDirectory);
275.262 + }
275.263 + }
275.264 + free(filePassword);
275.265 + }
275.266 + }
275.267 + }
275.268 + free(passwordFileName);
275.269 + }
275.270 + }
275.271 + free(systemDirectory);
275.272 + }
275.273 + free(directory);
275.274 + }
275.275 + free(login);
275.276 + }
275.277 + free(password);
275.278 + free(variableValue);
275.279 + }
275.280 + free(variableName);
275.281 + }
275.282 + free(cookie);
275.283 + }
275.284 + }
275.285 + }
275.286 + }
275.287 + }
275.288 + return 0;
275.289 +}
275.290 +
275.291 +/* FUNCTION | DENY ACCESS */
275.292 +static void DenyAccess(void) {
275.293 + printf("Status: 403\r\n\r\n");
275.294 +}
275.295 +
275.296 +/* FUNCTION | GRANT ACCESS */
275.297 +static void GrantAccess(void) {
275.298 + printf("Status: 200\r\n\r\n");
275.299 +}
275.300 +
275.301 +/***********************************************************************/
275.302 +/* Copyright and Trademark Statement */
275.303 +/***********************************************************************/
275.304 +/* */
275.305 +/* All original textual and graphical site content: */
275.306 +/* */
275.307 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
275.308 +/* reserved. Reproduction in whole or in part without written */
275.309 +/* permission is prohibited. interos and the interos logos are */
275.310 +/* trademarks of Brent Angeline and interos LLC. All other company, */
275.311 +/* product, and service names mentioned herein may be the properties */
275.312 +/* of their respective owners. Comments in the interos.org forums */
275.313 +/* are the properties of their respective authors. All software */
275.314 +/* developed in the forums is open source and belongs to everyone. */
275.315 +/* */
275.316 +/***********************************************************************/
275.317 +/* e-mail: info@interos.com */
275.318 +/***********************************************************************/
276.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
276.2 +++ b/xml/c/bottom_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
276.3 @@ -0,0 +1,514 @@
276.4 +/******************************************************/
276.5 +/* interos Standard Document Header - CGI in C */
276.6 +/******************************************************/
276.7 +/* URIs: https://interos.com/bottom */
276.8 +/* https://www.interos.com/bottom */
276.9 +/* Source: bottom.c */
276.10 +/* Description: FastCGI for interos bottom toolbar */
276.11 +/* Author: Brent Angeline */
276.12 +/* CGI: FastCGI in ISO/ANSI C */
276.13 +/******************************************************/
276.14 +
276.15 +/* PREPROCESSOR DIRECTIVES */
276.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
276.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
276.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
276.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
276.20 +#include <unistd.h> /* F_OK, access() */
276.21 +
276.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
276.23 +static void RedirectToLoginPanel(void);
276.24 +static void OutputBottom(char *status);
276.25 +static void OutputNewMenuButton(void);
276.26 +static void OutputSettingsMenuButton(void);
276.27 +static void BeginXHTMLOutput(void);
276.28 +static void BeginBottomOutput(void);
276.29 +static void FinishXHTMLOutput(void);
276.30 +
276.31 +/* BEGIN MAIN PROGRAM */
276.32 +int main(void) {
276.33 +
276.34 + /* BEGIN FASTCGI */
276.35 + while (FCGI_Accept() >= 0) {
276.36 +
276.37 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
276.38 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
276.39 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
276.40 + RedirectToLoginPanel();
276.41 +
276.42 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
276.43 + } else {
276.44 +
276.45 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
276.46 + char *cookie;
276.47 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
276.48 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
276.49 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
276.50 + RedirectToLoginPanel();
276.51 + } else {
276.52 + char *variableName;
276.53 + if (!(variableName = malloc(cookieLength + 1))) {
276.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
276.55 + RedirectToLoginPanel();
276.56 + } else {
276.57 + char *variableValue;
276.58 + if (!(variableValue = malloc(cookieLength + 1))) {
276.59 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
276.60 + RedirectToLoginPanel();
276.61 +
276.62 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
276.63 + } else {
276.64 +
276.65 + /* PROCESS COOKIE DATA */
276.66 + char *login, *password;
276.67 + INT c, i;
276.68 + login = password = NULL;
276.69 + c = 0;
276.70 + strcpy(cookie, getenv("HTTP_COOKIE"));
276.71 + while ((c < cookieLength) && (cookie[c] != '\0')) {
276.72 + i = 0;
276.73 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
276.74 + variableName[i] = cookie[c];
276.75 + ++c;
276.76 + ++i;
276.77 + }
276.78 + variableName[i] = '\0';
276.79 + ++c;
276.80 + i = 0;
276.81 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
276.82 + variableValue[i] = cookie[c];
276.83 + ++c;
276.84 + ++i;
276.85 + }
276.86 + variableValue[i] = '\0';
276.87 + ++c;
276.88 + while ((c < cookieLength) && (cookie[c] == ' ')) {
276.89 + ++c;
276.90 + }
276.91 + if (!login && !strcmp(variableName, "login")) {
276.92 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
276.93 + strcpy(login, variableValue);
276.94 + }
276.95 + } else if (!password && !strcmp(variableName, "password")) {
276.96 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
276.97 + strcpy(password, variableValue);
276.98 + }
276.99 + }
276.100 + }
276.101 +
276.102 + /* IF LOGIN VALUE IS MISSING... */
276.103 + if (!login) {
276.104 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
276.105 + RedirectToLoginPanel();
276.106 +
276.107 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
276.108 + } else {
276.109 +
276.110 + /* VERIFY LOGIN AND PASSWORD */
276.111 + char *directory;
276.112 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
276.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
276.114 + RedirectToLoginPanel();
276.115 + } else {
276.116 + char *systemDirectory;
276.117 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
276.118 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
276.119 + RedirectToLoginPanel();
276.120 + } else {
276.121 + strcpy(directory, DIRECTORY);
276.122 + strcat(directory, login);
276.123 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
276.124 + strcat(systemDirectory, login);
276.125 +
276.126 + /* IF DIRECTORY CAN'T BE ACCESSED... */
276.127 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
276.128 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
276.129 + RedirectToLoginPanel();
276.130 +
276.131 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
276.132 + } else {
276.133 +
276.134 + /* ATTEMPT TO ACCESS PASSWORD FILE */
276.135 + char *passwordFileName;
276.136 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
276.137 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
276.138 + RedirectToLoginPanel();
276.139 + } else {
276.140 + strcpy(passwordFileName, systemDirectory);
276.141 + strcat(passwordFileName, PASSWORD_FILE_NAME);
276.142 +
276.143 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
276.144 + if (access(passwordFileName, F_OK)) {
276.145 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
276.146 + RedirectToLoginPanel();
276.147 +
276.148 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
276.149 + } else {
276.150 +
276.151 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
276.152 + FILE *passwordFile;
276.153 +
276.154 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
276.155 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
276.156 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
276.157 + RedirectToLoginPanel();
276.158 +
276.159 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
276.160 + } else {
276.161 + char *filePassword;
276.162 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
276.163 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
276.164 + RedirectToLoginPanel();
276.165 + } else {
276.166 + char c;
276.167 + i = 0;
276.168 +
276.169 + /* READ PASSWORD FROM PASSWORD FILE */
276.170 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
276.171 + filePassword[i] = c;
276.172 + ++i;
276.173 + }
276.174 + filePassword[i] = '\0';
276.175 + fclose(passwordFile);
276.176 +
276.177 + /* IF PASSWORD FAILS COMPARISON... */
276.178 + if (strcmp(filePassword, password)) {
276.179 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
276.180 + RedirectToLoginPanel();
276.181 +
276.182 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
276.183 + } else {
276.184 +
276.185 + /* LOAD SETTINGS VALUES FROM FILES */
276.186 +
276.187 + /* LOAD interos BOTTOM COMPONENTS FROM FILES */
276.188 +
276.189 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
276.190 + char *status, *button;
276.191 + status = button = NULL;
276.192 +
276.193 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
276.194 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
276.195 + char *query;
276.196 + INT queryLength = strlen(getenv("QUERY_STRING"));
276.197 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
276.198 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
276.199 + } else {
276.200 + strcpy(query, getenv("QUERY_STRING"));
276.201 + free(variableName);
276.202 + if (!(variableName = malloc(queryLength + 1))) {
276.203 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
276.204 + } else {
276.205 + free(variableValue);
276.206 + if (!(variableValue = malloc(queryLength + 1))) {
276.207 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
276.208 +
276.209 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
276.210 + } else {
276.211 +
276.212 + /* PROCESS QUERY DATA */
276.213 + INT q = 0;
276.214 + i = 0;
276.215 + while ((q < queryLength) && (query[q] != '\0')) {
276.216 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
276.217 + variableName[i] = query[q];
276.218 + ++q;
276.219 + ++i;
276.220 + }
276.221 + variableName[i] = '\0';
276.222 + ++q;
276.223 + i = 0;
276.224 + while ((query[q] != '&') && (query[q] != '\0')) {
276.225 + variableValue[i] = query[q];
276.226 + ++q;
276.227 + ++i;
276.228 + }
276.229 + variableValue[i] = '\0';
276.230 + if (query[q] != '\0') {
276.231 + ++q;
276.232 + }
276.233 + if (!status && !strcmp(variableName, "status")) {
276.234 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
276.235 + strcpy(status, variableValue);
276.236 + }
276.237 + } else if (!button && !strcmp(variableName, "button")) {
276.238 + if ((button = malloc(strlen(variableValue) + 1)) != 0) {
276.239 + strcpy(button, variableValue);
276.240 + }
276.241 + }
276.242 + }
276.243 + }
276.244 + }
276.245 + free(query);
276.246 + }
276.247 + }
276.248 +
276.249 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
276.250 + if (button) {
276.251 + if (!strcmp(button, "new")) {
276.252 + OutputNewMenuButton();
276.253 + } else if (!strcmp(button, "settings")) {
276.254 + OutputSettingsMenuButton();
276.255 + } else {
276.256 +
276.257 + /* OUTPUT XHTML FOR interos BOTTOM BAR */
276.258 + OutputBottom(status);
276.259 + }
276.260 + } else {
276.261 +
276.262 + /* OUTPUT XHTML FOR interos BOTTOM BAR */
276.263 + OutputBottom(status);
276.264 + }
276.265 + free(button);
276.266 + free(status);
276.267 + }
276.268 + free(filePassword);
276.269 + }
276.270 + }
276.271 + }
276.272 + free(passwordFileName);
276.273 + }
276.274 + }
276.275 + free(systemDirectory);
276.276 + }
276.277 + free(directory);
276.278 + }
276.279 + free(login);
276.280 + }
276.281 + free(password);
276.282 + free(variableValue);
276.283 + }
276.284 + free(variableName);
276.285 + }
276.286 + free(cookie);
276.287 + }
276.288 + }
276.289 + }
276.290 + return 0;
276.291 +}
276.292 +
276.293 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
276.294 +static void RedirectToLoginPanel(void) {
276.295 + BeginXHTMLOutput();
276.296 + BeginBottomOutput();
276.297 + printf(" <a href=\"/login\" \n");
276.298 + printf(" target=\"_top\">click here to login for interos bottom toolbar</a>\n");
276.299 + FinishXHTMLOutput();
276.300 +}
276.301 +
276.302 +/* FUNCTION | OUTPUT XHTML FOR interos BOTTOM TOOLBAR */
276.303 +static void OutputBottom(char *status) {
276.304 + BeginXHTMLOutput();
276.305 + BeginBottomOutput();
276.306 + printf(" <table id=\"bottomToolbar\" width=\"100%%\" \n");
276.307 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
276.308 + printf(" <tr>\n");
276.309 + printf(" <td width=\"72\" \n");
276.310 + printf(" height=\"72\"><center>\n");
276.311 + printf(" <a id=\"newButton\" \n");
276.312 + printf(" href=\"/interos?menu=new\" \n");
276.313 + printf(" style=\"padding: 26px 0 27px\" \n");
276.314 + printf(" target=\"_top\"><strong>new</strong></a>\n");
276.315 + printf(" </center></td>\n");
276.316 + printf(" <td><center>\n");
276.317 + printf(" <span class=\"hidden\">|</span> \n");
276.318 + printf(" </center></td>\n");
276.319 + printf(" <td width=\"72\" \n");
276.320 + printf(" height=\"72\"><center>\n");
276.321 + printf(" <a id=\"settingsButton\" \n");
276.322 + printf(" href=\"/interos?menu=settings\" \n");
276.323 + printf(" style=\"padding: 26px 0 27px\" \n");
276.324 + printf(" target=\"_top\"><strong>settings</strong></a>\n");
276.325 + printf(" </center></td>\n");
276.326 + printf(" </tr>\n");
276.327 + printf(" </table>\n");
276.328 + FinishXHTMLOutput();
276.329 +}
276.330 +
276.331 +/* FUNCTION | OUTPUT XHTML FOR NEW MENU BUTTON */
276.332 +static void OutputNewMenuButton(void) {
276.333 + BeginXHTMLOutput();
276.334 + printf(" <!--======================================================-->\n");
276.335 + printf(" <!-- interos Standard Document Header - Markup -->\n");
276.336 + printf(" <!--======================================================-->\n");
276.337 + printf(" <!-- URIs: https://interos.com/bottom?button=new -->\n");
276.338 + printf(" <!-- https://www.interos.com/bottom?button=new -->\n");
276.339 + printf(" <!-- Title: interos new menu button -->\n");
276.340 + printf(" <!-- Author: Brent Angeline -->\n");
276.341 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
276.342 + printf(" <!--======================================================-->\n");
276.343 + printf(" <head>\n");
276.344 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
276.345 + printf(" <meta name=\"title\" content=\"interos new menu button\" />\n");
276.346 + printf(" <meta name=\"description\" content=\"button for interos new menu\" />\n");
276.347 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
276.348 + printf(" <meta name=\"copyright\" \n");
276.349 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
276.350 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
276.351 + printf(" <title>interos new menu button</title>\n");
276.352 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
276.353 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
276.354 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
276.355 + printf(" media=\"screen, projection\" />\n");
276.356 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
276.357 + printf(" </head>\n");
276.358 + printf(" <body id=\"body\">\n");
276.359 + printf(" <center>\n");
276.360 + printf(" <table id=\"bottomToolbarFaded\" width=\"100%%\" \n");
276.361 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
276.362 + printf(" <tr>\n");
276.363 + printf(" <td width=\"72\" \n");
276.364 + printf(" height=\"72\"><center>\n");
276.365 + printf(" <a id=\"newMenuButton\" \n");
276.366 + printf(" href=\"/main\" \n");
276.367 + printf(" style=\"padding: 26px 0 27px\" \n");
276.368 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
276.369 + printf(" </center></td>\n");
276.370 + printf(" <td><center>\n");
276.371 + printf(" <span class=\"hidden\">|</span> \n");
276.372 + printf(" </center></td>\n");
276.373 + printf(" <td id=\"bottomToolbarCornerFaded\" \n");
276.374 + printf(" width=\"72\" \n");
276.375 + printf(" height=\"72\"><p>\n");
276.376 + printf(" <br />\n");
276.377 + printf(" </p></td>\n");
276.378 + printf(" </tr>\n");
276.379 + printf(" </table>\n");
276.380 + FinishXHTMLOutput();
276.381 +}
276.382 +
276.383 +/* FUNCTION | OUTPUT XHTML FOR SETTINGS MENU BUTTON */
276.384 +static void OutputSettingsMenuButton(void) {
276.385 + BeginXHTMLOutput();
276.386 + printf(" <!--===========================================================-->\n");
276.387 + printf(" <!-- interos Standard Document Header - Markup -->\n");
276.388 + printf(" <!--===========================================================-->\n");
276.389 + printf(" <!-- URIs: https://interos.com/bottom?button=settings -->\n");
276.390 + printf(" <!-- https://www.interos.com/bottom?button=settings -->\n");
276.391 + printf(" <!-- Title: interos settings menu button -->\n");
276.392 + printf(" <!-- Author: Brent Angeline -->\n");
276.393 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
276.394 + printf(" <!--===========================================================-->\n");
276.395 + printf(" <head>\n");
276.396 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
276.397 + printf(" <meta name=\"title\" content=\"interos settings menu button\" />\n");
276.398 + printf(" <meta name=\"description\" content=\"button for interos settings menu\" />\n");
276.399 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
276.400 + printf(" <meta name=\"copyright\" \n");
276.401 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
276.402 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
276.403 + printf(" <title>interos settings menu button</title>\n");
276.404 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
276.405 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
276.406 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
276.407 + printf(" media=\"screen, projection\" />\n");
276.408 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
276.409 + printf(" </head>\n");
276.410 + printf(" <body id=\"body\">\n");
276.411 + printf(" <center>\n");
276.412 + printf(" <table id=\"bottomToolbarFaded\" width=\"100%%\" \n");
276.413 + printf(" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
276.414 + printf(" <tr>\n");
276.415 + printf(" <td id=\"bottomToolbarCornerFaded\" \n");
276.416 + printf(" width=\"72\" \n");
276.417 + printf(" height=\"72\"><p>\n");
276.418 + printf(" <br />\n");
276.419 + printf(" </p></td>\n");
276.420 + printf(" <td><center>\n");
276.421 + printf(" <span class=\"hidden\">|</span> \n");
276.422 + printf(" </center></td>\n");
276.423 + printf(" <td width=\"72\" \n");
276.424 + printf(" height=\"72\"><center>\n");
276.425 + printf(" <a id=\"settingsMenuButton\" \n");
276.426 + printf(" href=\"/main\" \n");
276.427 + printf(" style=\"padding: 26px 0 27px\" \n");
276.428 + printf(" target=\"_top\"><strong>« back</strong></a>\n");
276.429 + printf(" </center></td>\n");
276.430 + printf(" </tr>\n");
276.431 + printf(" </table>\n");
276.432 + FinishXHTMLOutput();
276.433 +}
276.434 +
276.435 +/* FUNCTION | BEGIN XHTML OUTPUT */
276.436 +static void BeginXHTMLOutput(void) {
276.437 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
276.438 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
276.439 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
276.440 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
276.441 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
276.442 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
276.443 +}
276.444 +
276.445 +/* FUNCTION | BEGIN interos BOTTOM TOOLBAR OUTPUT */
276.446 +static void BeginBottomOutput(void) {
276.447 + printf(" <!--=================================================-->\n");
276.448 + printf(" <!-- interos Standard Document Header - Markup -->\n");
276.449 + printf(" <!--=================================================-->\n");
276.450 + printf(" <!-- URIs: https://interos.com/bottom -->\n");
276.451 + printf(" <!-- https://www.interos.com/bottom -->\n");
276.452 + printf(" <!-- Title: interos bottom toolbar -->\n");
276.453 + printf(" <!-- Author: Brent Angeline -->\n");
276.454 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
276.455 + printf(" <!--=================================================-->\n");
276.456 + printf(" <head>\n");
276.457 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
276.458 + printf(" <meta name=\"title\" content=\"interos bottom toolbar\" />\n");
276.459 + printf(" <meta name=\"description\" content=\"bottom toolbar for interos\" />\n");
276.460 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
276.461 + printf(" <meta name=\"copyright\" \n");
276.462 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
276.463 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
276.464 + printf(" <title>interos bottom</title>\n");
276.465 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
276.466 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
276.467 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
276.468 + printf(" media=\"screen, projection\" />\n");
276.469 + printf(" <script type=\"text/javascript\" src=\"/js/bottom.js\"></script>\n");
276.470 + printf(" </head>\n");
276.471 + printf(" <body id=\"body\">\n");
276.472 + printf(" <center>\n");
276.473 +}
276.474 +
276.475 +/* FUNCTION | FINISH XHTML OUTPUT */
276.476 +static void FinishXHTMLOutput(void) {
276.477 + printf(" </center>\n");
276.478 + printf(" </body>\n");
276.479 + printf(" <!--=====================================================================-->\n");
276.480 + printf(" <!-- Copyright and Trademark Statement -->\n");
276.481 + printf(" <!--=====================================================================-->\n");
276.482 + printf(" <!-- -->\n");
276.483 + printf(" <!-- All original textual and graphical site content: -->\n");
276.484 + printf(" <!-- -->\n");
276.485 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
276.486 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
276.487 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
276.488 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
276.489 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
276.490 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
276.491 + printf(" <!-- are the properties of their respective authors. All software -->\n");
276.492 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
276.493 + printf(" <!-- -->\n");
276.494 + printf(" <!--=====================================================================-->\n");
276.495 + printf(" <!-- e-mail: info@interos.com -->\n");
276.496 + printf(" <!--=====================================================================-->\n");
276.497 + printf("</html>");
276.498 +}
276.499 +
276.500 +/***********************************************************************/
276.501 +/* Copyright and Trademark Statement */
276.502 +/***********************************************************************/
276.503 +/* */
276.504 +/* All original textual and graphical site content: */
276.505 +/* */
276.506 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
276.507 +/* reserved. Reproduction in whole or in part without written */
276.508 +/* permission is prohibited. interos and the interos logos are */
276.509 +/* trademarks of Brent Angeline and interos LLC. All other company, */
276.510 +/* product, and service names mentioned herein may be the properties */
276.511 +/* of their respective owners. Comments in the interos.org forums */
276.512 +/* are the properties of their respective authors. All software */
276.513 +/* developed in the forums is open source and belongs to everyone. */
276.514 +/* */
276.515 +/***********************************************************************/
276.516 +/* e-mail: info@interos.com */
276.517 +/***********************************************************************/
277.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
277.2 +++ b/xml/c/browse_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
277.3 @@ -0,0 +1,374 @@
277.4 +/**************************************************/
277.5 +/* interos Standard Document Header - CGI in C */
277.6 +/**************************************************/
277.7 +/* URIs: https://interos.com/browse */
277.8 +/* https://www.interos.com/browse */
277.9 +/* Source: browse.c */
277.10 +/* Description: FastCGI for interos browse */
277.11 +/* Author: Brent Angeline */
277.12 +/* CGI: FastCGI in ISO/ANSI C */
277.13 +/**************************************************/
277.14 +
277.15 +/* PREPROCESSOR DIRECTIVES */
277.16 +#include "fcgi_stdio.h" /* EOF, FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
277.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
277.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
277.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
277.20 +#include <unistd.h> /* F_OK, access() */
277.21 +
277.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
277.23 +static void RedirectToLoginPanel(void);
277.24 +static void BeginXHTMLOutput(void);
277.25 +static void FinishXHTMLOutput(void);
277.26 +
277.27 +/* BEGIN MAIN PROGRAM */
277.28 +int main(void) {
277.29 +
277.30 + /* BEGIN FASTCGI */
277.31 + while (FCGI_Accept() >= 0) {
277.32 +
277.33 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
277.34 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
277.35 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
277.36 + RedirectToLoginPanel();
277.37 +
277.38 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
277.39 + } else {
277.40 +
277.41 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
277.42 + char *cookie;
277.43 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
277.44 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
277.45 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
277.46 + RedirectToLoginPanel();
277.47 + } else {
277.48 + char *variableName;
277.49 + if (!(variableName = malloc(cookieLength + 1))) {
277.50 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
277.51 + RedirectToLoginPanel();
277.52 + } else {
277.53 + char *variableValue;
277.54 + if (!(variableValue = malloc(cookieLength + 1))) {
277.55 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
277.56 + RedirectToLoginPanel();
277.57 +
277.58 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
277.59 + } else {
277.60 +
277.61 + /* PROCESS COOKIE DATA */
277.62 + char *login, *password;
277.63 + INT c, i;
277.64 + login = password = NULL;
277.65 + c = 0;
277.66 + strcpy(cookie, getenv("HTTP_COOKIE"));
277.67 + while ((c < cookieLength) && (cookie[c] != '\0')) {
277.68 + i = 0;
277.69 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
277.70 + variableName[i] = cookie[c];
277.71 + ++c;
277.72 + ++i;
277.73 + }
277.74 + variableName[i] = '\0';
277.75 + ++c;
277.76 + i = 0;
277.77 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
277.78 + variableValue[i] = cookie[c];
277.79 + ++c;
277.80 + ++i;
277.81 + }
277.82 + variableValue[i] = '\0';
277.83 + ++c;
277.84 + while ((c < cookieLength) && (cookie[c] == ' ')) {
277.85 + ++c;
277.86 + }
277.87 + if (!login && !strcmp(variableName, "login")) {
277.88 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
277.89 + strcpy(login, variableValue);
277.90 + }
277.91 + } else if (!password && !strcmp(variableName, "password")) {
277.92 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
277.93 + strcpy(password, variableValue);
277.94 + }
277.95 + }
277.96 + }
277.97 +
277.98 + /* IF LOGIN VALUE IS MISSING... */
277.99 + if (!login) {
277.100 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
277.101 + RedirectToLoginPanel();
277.102 +
277.103 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
277.104 + } else {
277.105 +
277.106 + /* VERIFY LOGIN AND PASSWORD */
277.107 + char *directory;
277.108 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
277.109 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
277.110 + RedirectToLoginPanel();
277.111 + } else {
277.112 + char *systemDirectory;
277.113 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
277.114 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
277.115 + RedirectToLoginPanel();
277.116 + } else {
277.117 + strcpy(directory, DIRECTORY);
277.118 + strcat(directory, login);
277.119 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
277.120 + strcat(systemDirectory, login);
277.121 +
277.122 + /* IF DIRECTORY CAN'T BE ACCESSED... */
277.123 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
277.124 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
277.125 + RedirectToLoginPanel();
277.126 +
277.127 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
277.128 + } else {
277.129 +
277.130 + /* ATTEMPT TO ACCESS PASSWORD FILE */
277.131 + char *passwordFileName;
277.132 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
277.133 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
277.134 + RedirectToLoginPanel();
277.135 + } else {
277.136 + strcpy(passwordFileName, systemDirectory);
277.137 + strcat(passwordFileName, PASSWORD_FILE_NAME);
277.138 +
277.139 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
277.140 + if (access(passwordFileName, F_OK)) {
277.141 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
277.142 + RedirectToLoginPanel();
277.143 +
277.144 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
277.145 + } else {
277.146 +
277.147 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
277.148 + FILE *passwordFile;
277.149 +
277.150 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
277.151 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
277.152 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
277.153 + RedirectToLoginPanel();
277.154 +
277.155 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
277.156 + } else {
277.157 + char *filePassword;
277.158 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
277.159 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
277.160 + RedirectToLoginPanel();
277.161 + } else {
277.162 + char c;
277.163 + i = 0;
277.164 +
277.165 + /* READ PASSWORD FROM PASSWORD FILE */
277.166 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
277.167 + filePassword[i] = c;
277.168 + ++i;
277.169 + }
277.170 + filePassword[i] = '\0';
277.171 + fclose(passwordFile);
277.172 +
277.173 + /* IF PASSWORD FAILS COMPARISON... */
277.174 + if (strcmp(filePassword, password)) {
277.175 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
277.176 + RedirectToLoginPanel();
277.177 +
277.178 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
277.179 + } else {
277.180 +
277.181 + /* LOAD SETTINGS VALUES FROM FILE(S) */
277.182 +
277.183 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
277.184 + char *address, *search;
277.185 + address = search = NULL;
277.186 +
277.187 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
277.188 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
277.189 + char *query;
277.190 + INT queryLength = strlen(getenv("QUERY_STRING"));
277.191 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
277.192 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
277.193 + } else {
277.194 + strcpy(query, getenv("QUERY_STRING"));
277.195 + free(variableName);
277.196 + if (!(variableName = malloc(queryLength + 1))) {
277.197 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
277.198 + } else {
277.199 + free(variableValue);
277.200 + if (!(variableValue = malloc(queryLength + 1))) {
277.201 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
277.202 +
277.203 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
277.204 + } else {
277.205 +
277.206 + /* PROCESS QUERY DATA */
277.207 + INT q = 0;
277.208 + i = 0;
277.209 + while ((q < queryLength) && (query[q] != '\0')) {
277.210 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
277.211 + variableName[i] = query[q];
277.212 + ++q;
277.213 + ++i;
277.214 + }
277.215 + variableName[i] = '\0';
277.216 + ++q;
277.217 + i = 0;
277.218 + while ((query[q] != '&') && (query[q] != '\0')) {
277.219 + variableValue[i] = query[q];
277.220 + ++q;
277.221 + ++i;
277.222 + }
277.223 + variableValue[i] = '\0';
277.224 + if (query[q] != '\0') {
277.225 + ++q;
277.226 + }
277.227 + if (!address && !strcmp(variableName, "address")) {
277.228 + if ((address = malloc(strlen(variableValue) + 1)) != 0) {
277.229 + strcpy(address, variableValue);
277.230 + }
277.231 + } else if (!search && !strcmp(variableName, "search")) {
277.232 + if ((search = malloc(strlen(variableValue) + 1)) != 0) {
277.233 + strcpy(search, variableValue);
277.234 + for (c = 0; c < strlen(search); ++c) {
277.235 + if (search[c] == ' ') {
277.236 + search[c] = '+';
277.237 + }
277.238 + }
277.239 + }
277.240 + }
277.241 + }
277.242 + free(variableValue);
277.243 + variableValue = NULL;
277.244 + }
277.245 + free(variableName);
277.246 + variableName = NULL;
277.247 + }
277.248 + free(query);
277.249 + }
277.250 + }
277.251 +
277.252 + /* IF THIS IS A CONTINUED SESSION... */
277.253 +
277.254 + /* LOAD SESSION FROM FILE */
277.255 +
277.256 + /* OUTPUT GUI COMPONENTS BASED ON VARIABLES */
277.257 + printf("Content-type: text/html\n\n");
277.258 + printf("<!--=======================================================-->\n");
277.259 + printf("<!-- interos.com Standard Document Model Header - Markup -->\n");
277.260 + printf("<!--=======================================================-->\n");
277.261 + printf("<!-- URIs: https://www.interos.com/sys/browser -->\n");
277.262 + printf("<!-- interos.com/sys/browser -->\n");
277.263 + printf("<!-- Title: interos browser -->\n");
277.264 + printf("<!-- Author: Brent Angeline -->\n");
277.265 + printf("<!-- Markup: Dynamic XHTML -->\n");
277.266 + printf("<!--=======================================================-->\n");
277.267 + printf("<html>");
277.268 + printf("<head>");
277.269 + printf("<title>interos > %s > browser</title>", login);
277.270 + printf("</head>");
277.271 + printf("<frameset rows=\"72,*,72\" border=\"0\">");
277.272 + printf("<frame name=\"top\" src=\"top\" scrolling=\"no\" noresize=\"noresize\">");
277.273 + if (address != NULL) {
277.274 + printf("<frame name=\"content\" src=\"http://%s\" scrolling=\"yes\" noresize=\"noresize\">", address);
277.275 + } else {
277.276 + printf("<frame name=\"content\" src=\"http://www.google.com/search?hl=en&q=%s&btnG=Google+Search\" scrolling=\"yes\" noresize=\"noresize\">", search);
277.277 + }
277.278 + printf("<frame name=\"bottom\" src=\"bottom\" scrolling=\"no\" noresize=\"noresize\">");
277.279 + printf("</frameset>");
277.280 + printf("<noframes>");
277.281 + printf("</noframes>");
277.282 + printf("</html>\n");
277.283 + printf("<!--===========================================================================-->\n");
277.284 + printf("<!-- Copyright and Trademark Legal Notice -->\n");
277.285 + printf("<!--===========================================================================-->\n");
277.286 + printf("<!-- -->\n");
277.287 + printf("<!-- All textual and graphical site content: -->\n");
277.288 + printf("<!-- -->\n");
277.289 + printf("<!-- Copyright (C) 2001 - 2010 Brent Angeline / interos.com / interos. -->\n");
277.290 + printf("<!-- Reproduction in whole or part without written permission is prohibited. -->\n");
277.291 + printf("<!-- All rights reserved. interos.com and the interos logos are -->\n");
277.292 + printf("<!-- trademarks of Brent Angeline / interos.com / interos. -->\n");
277.293 + printf("<!-- All other company names, product names and services mentioned herein -->\n");
277.294 + printf("<!-- may be the property of their respective owners. -->\n");
277.295 + printf("<!-- -->\n");
277.296 + printf("<!--===========================================================================-->\n");
277.297 + printf("<!-- e-mail: info@interos.com -->\n");
277.298 + printf("<!--===========================================================================-->");
277.299 +
277.300 + free(address);
277.301 + free(search);
277.302 + }
277.303 + free(filePassword);
277.304 + }
277.305 + }
277.306 + }
277.307 + free(passwordFileName);
277.308 + }
277.309 + }
277.310 + free(systemDirectory);
277.311 + }
277.312 + free(directory);
277.313 + }
277.314 + free(login);
277.315 + }
277.316 + free(password);
277.317 + free(variableValue);
277.318 + }
277.319 + free(variableName);
277.320 + }
277.321 + free(cookie);
277.322 + }
277.323 + }
277.324 + }
277.325 + return 0;
277.326 +}
277.327 +
277.328 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
277.329 +static void RedirectToLoginPanel(void) {
277.330 + printf("Location: login\r\n\r\n");
277.331 +}
277.332 +
277.333 +static void BeginXHTMLOutput(void) {
277.334 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
277.335 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
277.336 +}
277.337 +
277.338 +static void FinishXHTMLOutput(void) {
277.339 + printf(" <!--=====================================================================-->\n");
277.340 + printf(" <!-- Copyright and Trademark Statement -->\n");
277.341 + printf(" <!--=====================================================================-->\n");
277.342 + printf(" <!-- -->\n");
277.343 + printf(" <!-- All original textual and graphical site content: -->\n");
277.344 + printf(" <!-- -->\n");
277.345 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
277.346 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
277.347 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
277.348 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
277.349 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
277.350 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
277.351 + printf(" <!-- are the properties of their respective authors. All software -->\n");
277.352 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
277.353 + printf(" <!-- -->\n");
277.354 + printf(" <!--=====================================================================-->\n");
277.355 + printf(" <!-- e-mail: info@interos.com -->\n");
277.356 + printf(" <!--=====================================================================-->\n");
277.357 + printf("</html>");
277.358 +}
277.359 +
277.360 +/***********************************************************************/
277.361 +/* Copyright and Trademark Statement */
277.362 +/***********************************************************************/
277.363 +/* */
277.364 +/* All original textual and graphical site content: */
277.365 +/* */
277.366 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
277.367 +/* reserved. Reproduction in whole or in part without written */
277.368 +/* permission is prohibited. interos and the interos logos are */
277.369 +/* trademarks of Brent Angeline and interos LLC. All other company, */
277.370 +/* product, and service names mentioned herein may be the properties */
277.371 +/* of their respective owners. Comments in the interos.org forums */
277.372 +/* are the properties of their respective authors. All software */
277.373 +/* developed in the forums is open source and belongs to everyone. */
277.374 +/* */
277.375 +/***********************************************************************/
277.376 +/* e-mail: info@interos.com */
277.377 +/***********************************************************************/
278.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
278.2 +++ b/xml/c/content_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
278.3 @@ -0,0 +1,390 @@
278.4 +/***************************************************/
278.5 +/* interos Standard Document Header - CGI in C */
278.6 +/***************************************************/
278.7 +/* URIs: https://interos.com/content */
278.8 +/* https://www.interos.com/content */
278.9 +/* Source: content.c */
278.10 +/* Description: FastCGI for interos content */
278.11 +/* Author: Brent Angeline */
278.12 +/* CGI: FastCGI in ISO/ANSI C */
278.13 +/***************************************************/
278.14 +
278.15 +/* PREPROCESSOR DIRECTIVES */
278.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
278.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
278.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
278.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
278.20 +#include <unistd.h> /* F_OK, access() */
278.21 +
278.22 +/* FUNCTION PROTOTYPE DECLARATIONS */
278.23 +static void RedirectToLoginPanel(void);
278.24 +static void OutputContent(const char *variableName, char *variableValue);
278.25 +
278.26 +/* BEGIN MAIN PROGRAM */
278.27 +int main(void) {
278.28 +
278.29 + /* BEGIN FASTCGI */
278.30 + while (FCGI_Accept() >= 0) {
278.31 +
278.32 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
278.33 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
278.34 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
278.35 + RedirectToLoginPanel();
278.36 +
278.37 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
278.38 + } else {
278.39 +
278.40 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
278.41 + char *cookie;
278.42 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
278.43 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
278.44 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
278.45 + RedirectToLoginPanel();
278.46 + } else {
278.47 + char *variableName;
278.48 + if (!(variableName = malloc(cookieLength + 1))) {
278.49 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
278.50 + RedirectToLoginPanel();
278.51 + } else {
278.52 + char *variableValue;
278.53 + if (!(variableValue = malloc(cookieLength + 1))) {
278.54 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
278.55 + RedirectToLoginPanel();
278.56 +
278.57 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
278.58 + } else {
278.59 +
278.60 + /* PROCESS COOKIE DATA */
278.61 + char *login, *password;
278.62 + INT c, i;
278.63 + login = password = NULL;
278.64 + c = 0;
278.65 + strcpy(cookie, getenv("HTTP_COOKIE"));
278.66 + while ((c < cookieLength) && (cookie[c] != '\0')) {
278.67 + i = 0;
278.68 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
278.69 + variableName[i] = cookie[c];
278.70 + ++c;
278.71 + ++i;
278.72 + }
278.73 + variableName[i] = '\0';
278.74 + ++c;
278.75 + i = 0;
278.76 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
278.77 + variableValue[i] = cookie[c];
278.78 + ++c;
278.79 + ++i;
278.80 + }
278.81 + variableValue[i] = '\0';
278.82 + ++c;
278.83 + while ((c < cookieLength) && (cookie[c] == ' ')) {
278.84 + ++c;
278.85 + }
278.86 + if (!login && !strcmp(variableName, "login")) {
278.87 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
278.88 + strcpy(login, variableValue);
278.89 + }
278.90 + } else if (!password && !strcmp(variableName, "password")) {
278.91 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
278.92 + strcpy(password, variableValue);
278.93 + }
278.94 + }
278.95 + }
278.96 +
278.97 + /* IF LOGIN VALUE IS MISSING... */
278.98 + if (!login) {
278.99 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
278.100 + RedirectToLoginPanel();
278.101 +
278.102 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
278.103 + } else {
278.104 +
278.105 + /* VERIFY LOGIN AND PASSWORD */
278.106 + char *directory;
278.107 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
278.108 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
278.109 + RedirectToLoginPanel();
278.110 + } else {
278.111 + char *systemDirectory;
278.112 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
278.113 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
278.114 + RedirectToLoginPanel();
278.115 + } else {
278.116 + strcpy(directory, DIRECTORY);
278.117 + strcat(directory, login);
278.118 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
278.119 + strcat(systemDirectory, login);
278.120 +
278.121 + /* IF DIRECTORY CAN'T BE ACCESSED... */
278.122 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
278.123 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
278.124 + RedirectToLoginPanel();
278.125 +
278.126 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
278.127 + } else {
278.128 +
278.129 + /* ATTEMPT TO ACCESS PASSWORD FILE */
278.130 + char *passwordFileName;
278.131 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
278.132 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
278.133 + RedirectToLoginPanel();
278.134 + } else {
278.135 + strcpy(passwordFileName, systemDirectory);
278.136 + strcat(passwordFileName, PASSWORD_FILE_NAME);
278.137 +
278.138 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
278.139 + if (access(passwordFileName, F_OK)) {
278.140 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
278.141 + RedirectToLoginPanel();
278.142 +
278.143 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
278.144 + } else {
278.145 +
278.146 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
278.147 + FILE *passwordFile;
278.148 +
278.149 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
278.150 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
278.151 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
278.152 + RedirectToLoginPanel();
278.153 +
278.154 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
278.155 + } else {
278.156 + char *filePassword;
278.157 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
278.158 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
278.159 + RedirectToLoginPanel();
278.160 + } else {
278.161 + char c;
278.162 + i = 0;
278.163 +
278.164 + /* READ PASSWORD FROM PASSWORD FILE */
278.165 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
278.166 + filePassword[i] = c;
278.167 + ++i;
278.168 + }
278.169 + filePassword[i] = '\0';
278.170 + fclose(passwordFile);
278.171 +
278.172 + /* IF PASSWORD FAILS COMPARISON... */
278.173 + if (strcmp(filePassword, password)) {
278.174 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
278.175 + RedirectToLoginPanel();
278.176 +
278.177 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
278.178 + } else {
278.179 +
278.180 + /* LOAD SETTINGS VALUES FROM FILES */
278.181 +
278.182 + /* LOAD interos CONTENT COMPONENTS FROM FILES */
278.183 +
278.184 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
278.185 + char *new, *open, *text_file, *status;
278.186 + new = open = text_file = status = NULL;
278.187 +
278.188 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
278.189 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
278.190 + char *query;
278.191 + INT queryLength = strlen(getenv("QUERY_STRING"));
278.192 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
278.193 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
278.194 + } else {
278.195 + free(variableName);
278.196 + strcpy(query, getenv("QUERY_STRING"));
278.197 + if (!(variableName = malloc(queryLength + 1))) {
278.198 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
278.199 + } else {
278.200 + free(variableValue);
278.201 + if (!(variableValue = malloc(queryLength + 1))) {
278.202 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
278.203 +
278.204 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
278.205 + } else {
278.206 +
278.207 + /* PROCESS QUERY DATA */
278.208 + INT q = 0;
278.209 + i = 0;
278.210 + while ((q < queryLength) && (query[q] != '\0')) {
278.211 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
278.212 + variableName[i] = query[q];
278.213 + ++q;
278.214 + ++i;
278.215 + }
278.216 + variableName[i] = '\0';
278.217 + ++q;
278.218 + i = 0;
278.219 + while ((query[q] != '&') && (query[q] != '\0')) {
278.220 + variableValue[i] = query[q];
278.221 + ++q;
278.222 + ++i;
278.223 + }
278.224 + variableValue[i] = '\0';
278.225 + if (query[q] != '\0') {
278.226 + ++q;
278.227 + }
278.228 + if (!new && !strcmp(variableName, "new")) {
278.229 + if ((new = malloc(strlen(variableValue) + 1)) != 0) {
278.230 + strcpy(new, variableValue);
278.231 + }
278.232 + } else if (!open && !strcmp(variableName, "open")) {
278.233 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
278.234 + strcpy(open, variableValue);
278.235 + }
278.236 + } else if (!text_file && !strcmp(variableName, "text_file")) {
278.237 + if ((text_file = malloc(strlen(variableValue) + 1)) != 0) {
278.238 + strcpy(text_file, variableValue);
278.239 + }
278.240 + } else if (!status && !strcmp(variableName, "status")) {
278.241 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
278.242 + strcpy(status, variableValue);
278.243 + }
278.244 + }
278.245 + }
278.246 + free(variableValue);
278.247 + variableValue = NULL;
278.248 + }
278.249 + free(variableName);
278.250 + variableName = NULL;
278.251 + }
278.252 + free(query);
278.253 + }
278.254 + }
278.255 +
278.256 + /* OUTPUT XHTML FOR interos CONTENT */
278.257 + if (new) {
278.258 + OutputContent("new", new);
278.259 + } else if (open) {
278.260 + OutputContent("open", open);
278.261 + } else if (text_file) {
278.262 + OutputContent("text_file", text_file);
278.263 + } else if (status) {
278.264 + OutputContent("status", status);
278.265 + } else {
278.266 + OutputContent(NULL, NULL);
278.267 + }
278.268 + free(status);
278.269 + free(text_file);
278.270 + free(open);
278.271 + free(new);
278.272 + }
278.273 + free(filePassword);
278.274 + }
278.275 + }
278.276 + }
278.277 + free(passwordFileName);
278.278 + }
278.279 + }
278.280 + free(systemDirectory);
278.281 + }
278.282 + free(directory);
278.283 + }
278.284 + free(login);
278.285 + }
278.286 + free(password);
278.287 + free(variableValue);
278.288 + }
278.289 + free(variableName);
278.290 + }
278.291 + free(cookie);
278.292 + }
278.293 + }
278.294 + }
278.295 + return 0;
278.296 +}
278.297 +
278.298 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
278.299 +static void RedirectToLoginPanel(void) {
278.300 + printf("Location: login\r\n\r\n");
278.301 +}
278.302 +
278.303 +/* FUNCTION | OUTPUT XHTML FOR interos CONTENT */
278.304 +static void OutputContent(const char *variableName, char *variableValue) {
278.305 + printf("Content-Type: text/html\r\n\r\n");
278.306 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
278.307 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/content.css\"?>\n");
278.308 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
278.309 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
278.310 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
278.311 + printf(" <!--=================================================-->\n");
278.312 + printf(" <!-- interos Standard Document Header - Markup -->\n");
278.313 + printf(" <!--=================================================-->\n");
278.314 + printf(" <!-- URIs: https://interos.com/content -->\n");
278.315 + printf(" <!-- https://www.interos.com/content -->\n");
278.316 + printf(" <!-- Title: interos content -->\n");
278.317 + printf(" <!-- Author: Brent Angeline -->\n");
278.318 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
278.319 + printf(" <!--=================================================-->\n");
278.320 + printf(" <head>\n");
278.321 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
278.322 + printf(" <meta name=\"title\" content=\"interos content\" />\n");
278.323 + printf(" <meta name=\"description\" content=\"middle frame for interos content\" />\n");
278.324 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
278.325 + printf(" <meta name=\"copyright\" \n");
278.326 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
278.327 + printf(" <meta name=\"robots\" content=\"noindex,nofollow,noarchive\" />\n");
278.328 + printf(" <title>interos content</title>\n");
278.329 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
278.330 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
278.331 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/content.css\" />\n");
278.332 + printf(" <script type=\"text/javascript\" src=\"/js/content.js\"></script>\n");
278.333 + printf(" </head>\n");
278.334 + printf(" <body>\n");
278.335 + printf(" <div id=\"content\">\n");
278.336 + if (variableName && variableValue) {
278.337 + if (!strcmp(variableName, "new")) {
278.338 + if (!strcmp(variableValue, "text_file")) {
278.339 + printf(" <applet code=\"text_editor\" \n");
278.340 + printf(" archive=\"/java/text_editor.jar,/java/interos_connect.jar\" \n");
278.341 + printf(" width=\"100%%\" \n");
278.342 + printf(" height=\"100%%\"></applet>\n");
278.343 + }
278.344 + } else if (!strcmp(variableName, "text_file")) {
278.345 + printf(" <applet code=\"text_editor\" \n");
278.346 + printf(" archive=\"/java/text_editor.jar,/java/interos_connect.jar\" \n");
278.347 + printf(" width=\"100%%\" \n");
278.348 + printf(" height=\"100%%\">\n");
278.349 + printf(" <param name=\"text_file\" value=\"%s\" />\n", variableValue);
278.350 + printf(" </applet>\n");
278.351 + }
278.352 + }
278.353 + printf(" </div>\n");
278.354 + printf(" </body>\n");
278.355 + printf(" <!--=====================================================================-->\n");
278.356 + printf(" <!-- Copyright and Trademark Statement -->\n");
278.357 + printf(" <!--=====================================================================-->\n");
278.358 + printf(" <!-- -->\n");
278.359 + printf(" <!-- All original textual and graphical site content: -->\n");
278.360 + printf(" <!-- -->\n");
278.361 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
278.362 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
278.363 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
278.364 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
278.365 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
278.366 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
278.367 + printf(" <!-- are the properties of their respective authors. All software -->\n");
278.368 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
278.369 + printf(" <!-- -->\n");
278.370 + printf(" <!--=====================================================================-->\n");
278.371 + printf(" <!-- e-mail: info@interos.com -->\n");
278.372 + printf(" <!--=====================================================================-->\n");
278.373 + printf("</html>");
278.374 +}
278.375 +
278.376 +/***********************************************************************/
278.377 +/* Copyright and Trademark Statement */
278.378 +/***********************************************************************/
278.379 +/* */
278.380 +/* All original textual and graphical site content: */
278.381 +/* */
278.382 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
278.383 +/* reserved. Reproduction in whole or in part without written */
278.384 +/* permission is prohibited. interos and the interos logos are */
278.385 +/* trademarks of Brent Angeline and interos LLC. All other company, */
278.386 +/* product, and service names mentioned herein may be the properties */
278.387 +/* of their respective owners. Comments in the interos.org forums */
278.388 +/* are the properties of their respective authors. All software */
278.389 +/* developed in the forums is open source and belongs to everyone. */
278.390 +/* */
278.391 +/***********************************************************************/
278.392 +/* e-mail: info@interos.com */
278.393 +/***********************************************************************/
279.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
279.2 +++ b/xml/c/interos.c Sat May 01 16:19:36 2010 -0400
279.3 @@ -0,0 +1,1 @@
279.4 +interos_interos.com_ssl.c
279.5 \ No newline at end of file
280.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
280.2 +++ b/xml/c/interos.h Sat May 01 16:19:36 2010 -0400
280.3 @@ -0,0 +1,1 @@
280.4 +interos_interos.com_ssl.h
280.5 \ No newline at end of file
281.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
281.2 +++ b/xml/c/interos.org.h Sat May 01 16:19:36 2010 -0400
281.3 @@ -0,0 +1,1 @@
281.4 +interos.org_interos.org_ssl.h
281.5 \ No newline at end of file
282.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
282.2 +++ b/xml/c/interos_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
282.3 @@ -0,0 +1,229 @@
282.4 +#include "fcgi_stdio.h"
282.5 +#include "interos.h"
282.6 +#include <stdlib.h>
282.7 +#include <string.h>
282.8 +#include <dirent.h>
282.9 +#include <langinfo.h>
282.10 +#include <sys/stat.h>
282.11 +#include <unistd.h>
282.12 +
282.13 +/* */
282.14 +void outputErrorXML(const char *errorMessage) {
282.15 + printf("Content-Type: text/xml\r\n\r\n");
282.16 + printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
282.17 + printf("<directory>\n");
282.18 + printf(" <errorCode error=\"true\">\n");
282.19 + printf(" <description>%s</description>\n", errorMessage);
282.20 + printf(" </errorCode>\n");
282.21 + printf("</directory>");
282.22 +}
282.23 +
282.24 +POSTDATA *getPostData(){
282.25 + POSTDATA* postdata = (POSTDATA*)(malloc(sizeof(POSTDATA)));
282.26 + postdata->postData = NULL;
282.27 + postdata->length = 0;
282.28 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
282.29 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
282.30 + /** ERROR | POST DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
282.31 + outputErrorXML("No post data was received by the web server.");
282.32 + free(postdata);
282.33 + postdata = NULL;
282.34 +
282.35 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
282.36 + } else {
282.37 +
282.38 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
282.39 + void* post;
282.40 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
282.41 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
282.42 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR POST DATA! > OUTPUT ERROR XML **/
282.43 + outputErrorXML("The length of the post data string received by the web server was indicated to be less than 1 byte.");
282.44 + free(postdata);
282.45 + postdata = NULL;
282.46 + } else {
282.47 + /* PROCESS POST DATA */
282.48 + fread(post, postLength, 1, stdin);
282.49 + postdata->postData = post;
282.50 + postdata->length = postLength;
282.51 + }
282.52 + }
282.53 + return postdata;
282.54 +}
282.55 +
282.56 +char* validateCookie() {
282.57 + char *username = NULL;
282.58 +
282.59 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
282.60 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
282.61 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > OUTPUT ERROR XML **/
282.62 + outputErrorXML("No cookie data was received by the web server.");
282.63 +
282.64 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
282.65 + } else {
282.66 +
282.67 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
282.68 + char *cookie;
282.69 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
282.70 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
282.71 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > OUTPUT ERROR XML **/
282.72 + outputErrorXML("The length of the cookie data string received by the web server was indicated to be less than 1 byte.");
282.73 + } else {
282.74 + char *variableName;
282.75 + if (!(variableName = malloc(cookieLength + 1))) {
282.76 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > OUTPUT ERROR XML **/
282.77 + outputErrorXML("Sufficient memory could not be allocated on the server for cookie variable names.");
282.78 + } else {
282.79 + char *variableValue;
282.80 + if (!(variableValue = malloc(cookieLength + 1))) {
282.81 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > OUTPUT ERROR XML **/
282.82 + outputErrorXML("Sufficient memory could not be allocated on the server for cookie variable values.");
282.83 +
282.84 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
282.85 + } else {
282.86 +
282.87 + /* PROCESS COOKIE DATA */
282.88 + char *login, *password;
282.89 + INT i, c;
282.90 + login = password = NULL;
282.91 + c = 0;
282.92 + strcpy(cookie, getenv("HTTP_COOKIE"));
282.93 + while ((c < cookieLength) && (cookie[c] != '\0')) {
282.94 + i = 0;
282.95 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
282.96 + variableName[i] = cookie[c];
282.97 + ++c;
282.98 + ++i;
282.99 + }
282.100 + variableName[i] = '\0';
282.101 + ++c;
282.102 + i = 0;
282.103 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
282.104 + variableValue[i] = cookie[c];
282.105 + ++c;
282.106 + ++i;
282.107 + }
282.108 + variableValue[i] = '\0';
282.109 + ++c;
282.110 + while ((c < cookieLength) && (cookie[c] == ' ')) {
282.111 + ++c;
282.112 + }
282.113 + if (!login && !strcmp(variableName, "login")) {
282.114 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
282.115 + strcpy(login, variableValue);
282.116 + }
282.117 + } else if (!password && !strcmp(variableName, "password")) {
282.118 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
282.119 + strcpy(password, variableValue);
282.120 + }
282.121 + }
282.122 + }
282.123 +
282.124 + /* IF LOGIN VALUE IS MISSING... */
282.125 + if (!login) {
282.126 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT ERROR XML */
282.127 + outputErrorXML("No login value was received.");
282.128 +
282.129 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
282.130 + } else {
282.131 +
282.132 + /* VERIFY LOGIN AND PASSWORD */
282.133 + char *directory;
282.134 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
282.135 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT ERROR XML **/
282.136 + outputErrorXML("Sufficient memory could not be allocated on the server for the user's home directory name.");
282.137 + } else {
282.138 + char *systemDirectory;
282.139 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
282.140 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT ERROR XML **/
282.141 + outputErrorXML("Sufficient memory could not be allocated on the server for the user's system directory name.");
282.142 + } else {
282.143 + strcpy(directory, DIRECTORY);
282.144 + strcat(directory, login);
282.145 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
282.146 + strcat(systemDirectory, login);
282.147 +
282.148 + /* IF DIRECTORY CAN'T BE ACCESSED... */
282.149 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
282.150 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT ERROR XML **/
282.151 + outputErrorXML("The user's home directory on the server could not be accessed.");
282.152 +
282.153 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
282.154 + } else {
282.155 +
282.156 + /* ATTEMPT TO ACCESS PASSWORD FILE */
282.157 + char *passwordFileName;
282.158 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
282.159 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT ERROR XML **/
282.160 + outputErrorXML("Sufficient memory could not be allocated on the server for the name of the user's password file.");
282.161 + } else {
282.162 + strcpy(passwordFileName, systemDirectory);
282.163 + strcat(passwordFileName, PASSWORD_FILE_NAME);
282.164 +
282.165 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
282.166 + if (access(passwordFileName, F_OK)) {
282.167 + /** ERROR | CANNOT ACCESS FILE > OUTPUT ERROR XML **/
282.168 + outputErrorXML("The user's password file on the server cannot be accessed.");
282.169 +
282.170 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
282.171 + } else {
282.172 +
282.173 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
282.174 + FILE *passwordFile;
282.175 +
282.176 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
282.177 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
282.178 + /** ERROR | CANNOT READ FILE > OUTPUT ERROR XML **/
282.179 + outputErrorXML("The user's password file on the server cannot be opened for reading.");
282.180 +
282.181 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
282.182 + } else {
282.183 + char *filePassword;
282.184 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
282.185 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT ERROR XML **/
282.186 + outputErrorXML("Sufficient memory could not be allocated on the server for reading the user's password.");
282.187 + } else {
282.188 + char c;
282.189 + i = 0;
282.190 +
282.191 + /* READ PASSWORD FROM PASSWORD FILE */
282.192 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
282.193 + filePassword[i] = c;
282.194 + ++i;
282.195 + }
282.196 + filePassword[i] = '\0';
282.197 + fclose(passwordFile);
282.198 +
282.199 + /* IF PASSWORD FAILS COMPARISON... */
282.200 + if (strcmp(filePassword, password)) {
282.201 + /** ERROR | PASSWORD FAILED > OUTPUT ERROR XML **/
282.202 + outputErrorXML("The password provided failed comparison with the password stored on the server.");
282.203 +
282.204 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
282.205 + } else {
282.206 + username = login;
282.207 + }
282.208 + free(filePassword);
282.209 + }
282.210 + }
282.211 + }
282.212 + free(passwordFileName);
282.213 + }
282.214 + }
282.215 + free(systemDirectory);
282.216 + }
282.217 + free(directory);
282.218 + }
282.219 + if(!username && login)
282.220 + free(login);
282.221 +
282.222 + }
282.223 + free(password);
282.224 + free(variableValue);
282.225 + }
282.226 + free(variableName);
282.227 + }
282.228 + free(cookie);
282.229 + }
282.230 + }
282.231 + return username;
282.232 +}
283.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
283.2 +++ b/xml/c/interos_interos.com_ssl.h Sat May 01 16:19:36 2010 -0400
283.3 @@ -0,0 +1,117 @@
283.4 +/*************************************************************/
283.5 +/* interos Standard Document Header - CGI in C Header File */
283.6 +/*************************************************************/
283.7 +/* Source: interos.h */
283.8 +/* Description: FastCGI Header for interos */
283.9 +/* Author: Brent Angeline */
283.10 +/* CGI: FastCGI in ISO/ANSI C */
283.11 +/*************************************************************/
283.12 +
283.13 +/* PREPROCESSOR DIRECTIVES */
283.14 +# ifndef INTEROS_H
283.15 +
283.16 +# define INTEROS_H
283.17 +
283.18 + /* HEADER FILES INCLUDED BY C SOURCE */
283.19 +# ifndef INTEROS_H
283.20 +
283.21 +# include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
283.22 +# include <ctype.h> /* tolower() */
283.23 +# include <stdlib.h> /* free(), getenv(), malloc(), strtoul() */
283.24 +# include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
283.25 +# include <unistd.h> /* F_OK, access() */
283.26 +
283.27 +# endif
283.28 +
283.29 + /* DEFINITION DIRECTIVES */
283.30 +# define INT unsigned long
283.31 +# define STRING_TO_INT strtoul
283.32 +# define DIRECTORY "/srv/https/interos.com/"
283.33 +# define SYSTEM_DIRECTORY "/srv/data/interos/"
283.34 +# define PASSWORD_FILE_NAME "/.htpasswd"
283.35 +# define MAX_PASSWORD_SIZE 16
283.36 +
283.37 + /* NEW USER DEFINITION DIRECTIVES */
283.38 +# define SYSTEM_DIRECTORY_COMMAND "cp -pRP /srv/data/interos/sys/data /srv/data/interos/"
283.39 +# define DIRECTORY_COMMAND "cp -pRP /srv/data/interos/sys/user /srv/https/interos.com/"
283.40 +# define ECHO_COMMAND "echo "
283.41 +# define PASSWORD_OUT " > /srv/data/interos/"
283.42 +
283.43 + /* TYPE DEFINITION */
283.44 + typedef struct {
283.45 + char *name;
283.46 + char *link;
283.47 + char *icon;
283.48 + struct MENU_ITEM *next;
283.49 + } MENU_ITEM;
283.50 +
283.51 + /**
283.52 + Used by getPOSTData for storage of the POST data.
283.53 +
283.54 +
283.55 + length: The number of bytes allocated for postData.
283.56 +
283.57 + postData: Allocated chunk of memory containing the POST data. The interpretation of that data
283.58 + depends on what the CGI program getting the data is expecting.
283.59 + */
283.60 + typedef struct{
283.61 + void *postData;
283.62 + INT length;
283.63 + }POSTDATA;
283.64 +
283.65 + /**
283.66 + Obtains the POST data that was sent by the client connecting to the HTTP(S) server and stores it
283.67 + in POSTDATA struct. The POSTDATA->postData is a chunk of memory copied from the client. If the data
283.68 + is to be interpreted as a string, one should not expect it to be null terminated, which is why length
283.69 + is part of the POSTDATA struct.
283.70 +
283.71 + One more byte of memory is allocated for POSTDATA->postData for conveniance. In the event that the
283.72 + POST data is interpreted as a string, one may set POSTDATA->postData[POSTDATA->length] = '\0' without
283.73 + having to use realloc.
283.74 +
283.75 + @return An allocated struct POSTDATA with allocated postData of size length+1. If there is no POST data,
283.76 + it will return an allocated struct POSTDATA with length 0 and postData NULL. If there was an error
283.77 + getting the post data, it will call outputErrorXML() with the apropriate error and return NULL.
283.78 + */
283.79 + POSTDATA *getPOSTData();
283.80 +
283.81 + /**
283.82 + Obtains cookie data from the HTTP header and validates it with the appropriate login.
283.83 + If the cookie data has the correct username and password, the function will return
283.84 + the username. If validation fails, it will automatically call outputErrorXML with
283.85 + the appropriate error information and return NULL.
283.86 +
283.87 + @return An allocated string containing the username from the cookie data, or NULL
283.88 + if validation failed.
283.89 +
283.90 + */
283.91 + char *validateCookie();
283.92 +
283.93 + /**
283.94 + Prints an error XML.
283.95 +
283.96 + @param errorMessage A string that contains the description of the error.
283.97 + */
283.98 + void outputErrorXML(const char *errorMessage);
283.99 +
283.100 +
283.101 +# endif
283.102 +
283.103 +/***********************************************************************/
283.104 +/* Copyright and Trademark Statement */
283.105 +/***********************************************************************/
283.106 +/* */
283.107 +/* All original textual and graphical site content: */
283.108 +/* */
283.109 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
283.110 +/* reserved. Reproduction in whole or in part without written */
283.111 +/* permission is prohibited. interos and the interos logos are */
283.112 +/* trademarks of Brent Angeline and interos LLC. All other company, */
283.113 +/* product, and service names mentioned herein may be the properties */
283.114 +/* of their respective owners. Comments in the interos.org forums */
283.115 +/* are the properties of their respective authors. All software */
283.116 +/* developed in the forums is open source and belongs to everyone. */
283.117 +/* */
283.118 +/***********************************************************************/
283.119 +/* e-mail: info@interos.com */
283.120 +/***********************************************************************/
284.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
284.2 +++ b/xml/c/login_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
284.3 @@ -0,0 +1,359 @@
284.4 +/*************************************************/
284.5 +/* interos Standard Document Header - CGI in C */
284.6 +/*************************************************/
284.7 +/* URIs: https://interos.com/login */
284.8 +/* https://www.interos.com/login */
284.9 +/* Source: login.c */
284.10 +/* Description: FastCGI for interos login */
284.11 +/* Author: Brent Angeline */
284.12 +/* CGI: FastCGI in ISO/ANSI C */
284.13 +/*************************************************/
284.14 +
284.15 +/* PREPROCESSOR DIRECTIVES */
284.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), fread(), printf() */
284.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, PASSWORD_FILE_NAME, STRING_TO_INT, SYSTEM_DIRECTORY */
284.18 +#include <ctype.h> /* tolower() */
284.19 +#include <stdlib.h> /* free(), getenv(), malloc(), strtoul() */
284.20 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
284.21 +#include <unistd.h> /* F_OK, access() */
284.22 +
284.23 +/* FUNCTION PROTOTYPE DECLARATION */
284.24 +static void OutputLoginPanel(void);
284.25 +
284.26 +/* BEGIN MAIN PROGRAM */
284.27 +int main(void) {
284.28 +
284.29 + /* BEGIN FASTCGI */
284.30 + while (FCGI_Accept() >= 0) {
284.31 +
284.32 + /* IF POST DATA DOESN'T EXIST OR IS TOO LONG... */
284.33 + if (!getenv("CONTENT_LENGTH") || (sizeof(STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10)) > sizeof(INT))) {
284.34 +
284.35 + /* OUTPUT XHTML FOR LOGIN PANEL */
284.36 + OutputLoginPanel();
284.37 +
284.38 + /* OTHERWISE, IF POST DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
284.39 + } else {
284.40 +
284.41 + /* ATTEMPT TO ALLOCATE MEMORY FOR POST VARIABLES */
284.42 + char *post;
284.43 + INT postLength = STRING_TO_INT(getenv("CONTENT_LENGTH"), (char **) NULL, 10);
284.44 + if ((postLength < 1) || !(post = malloc(postLength + 1))) {
284.45 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR POST DATA! > OUTPUT XHTML FOR LOGIN PANEL **/
284.46 + OutputLoginPanel();
284.47 + } else {
284.48 + char *variableName;
284.49 + if (!(variableName = malloc(postLength + 1))) {
284.50 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE NAME > OUTPUT XHTML FOR LOGIN PANEL **/
284.51 + OutputLoginPanel();
284.52 + } else {
284.53 + char *variableValue;
284.54 + if (!(variableValue = malloc(postLength + 1))) {
284.55 + /** ERROR | CANNOT ALLOCATE MEMORY FOR POST VARIABLE VALUE > OUTPUT XHTML FOR LOGIN PANEL **/
284.56 + OutputLoginPanel();
284.57 +
284.58 + /* IF SUFFICIENT MEMORY FOR POST VARIABLES... */
284.59 + } else {
284.60 +
284.61 + /* PROCESS POST DATA */
284.62 + char *login, *password;
284.63 + INT p, i;
284.64 + login = password = NULL;
284.65 + p = 0;
284.66 + fread(post, postLength, 1, stdin);
284.67 + post[postLength] = '\0';
284.68 + while ((p < postLength) && (post[p] != '\0')) {
284.69 + i = 0;
284.70 + while ((p < postLength) && (post[p] != '=') && (post[p] != '\0')) {
284.71 + variableName[i] = post[p];
284.72 + ++p;
284.73 + ++i;
284.74 + }
284.75 + variableName[i] = '\0';
284.76 + ++p;
284.77 + i = 0;
284.78 + while ((p < postLength) && (post[p] != '&') && (post[p] != '\0')) {
284.79 + variableValue[i] = post[p];
284.80 + ++p;
284.81 + ++i;
284.82 + }
284.83 + variableValue[i] = '\0';
284.84 + if (post[p] != '\0') {
284.85 + ++p;
284.86 + }
284.87 + if (!login && !strcmp(variableName, "login")) {
284.88 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
284.89 + strcpy(login, variableValue);
284.90 + for (i = 0; i < strlen(login); ++i) {
284.91 + login[i] = tolower(login[i]);
284.92 + }
284.93 + }
284.94 + } else if (!password && !strcmp(variableName, "password")) {
284.95 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
284.96 + strcpy(password, variableValue);
284.97 + }
284.98 + }
284.99 + }
284.100 +
284.101 + /* IF LOGIN VALUE IS MISSING... */
284.102 + if (!login) {
284.103 + /** ERROR | LOGIN VALUE IS MISSING > OUTPUT XHTML FOR LOGIN PANEL **/
284.104 + OutputLoginPanel();
284.105 +
284.106 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
284.107 + } else {
284.108 +
284.109 + /* VERIFY LOGIN AND PASSWORD */
284.110 + char *directory;
284.111 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
284.112 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > OUTPUT XHTML FOR LOGIN PANEL **/
284.113 + OutputLoginPanel();
284.114 + } else {
284.115 + char *systemDirectory;
284.116 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
284.117 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > OUTPUT XHTML FOR LOGIN PANEL **/
284.118 + OutputLoginPanel();
284.119 + } else {
284.120 + strcpy(directory, DIRECTORY);
284.121 + strcat(directory, login);
284.122 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
284.123 + strcat(systemDirectory, login);
284.124 +
284.125 + /* IF DIRECTORY CAN'T BE ACCESSED... */
284.126 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
284.127 + /** ERROR | CANNOT ACCESS DIRECTORY > OUTPUT XHTML FOR LOGIN PANEL **/
284.128 + OutputLoginPanel();
284.129 +
284.130 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
284.131 + } else {
284.132 +
284.133 + /* ATTEMPT TO ACCESS PASSWORD FILE */
284.134 + char *passwordFileName;
284.135 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
284.136 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > OUTPUT XHTML FOR LOGIN PANEL **/
284.137 + OutputLoginPanel();
284.138 + } else {
284.139 + strcpy(passwordFileName, systemDirectory);
284.140 + strcat(passwordFileName, PASSWORD_FILE_NAME);
284.141 +
284.142 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
284.143 + if (access(passwordFileName, F_OK)) {
284.144 + /** ERROR | CANNOT ACCESS FILE > OUTPUT XHTML FOR LOGIN PANEL **/
284.145 + OutputLoginPanel();
284.146 +
284.147 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
284.148 + } else {
284.149 +
284.150 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
284.151 + FILE *passwordFile;
284.152 +
284.153 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
284.154 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
284.155 + /** ERROR | CANNOT READ FILE > OUTPUT XHTML FOR LOGIN PANEL **/
284.156 + OutputLoginPanel();
284.157 +
284.158 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
284.159 + } else {
284.160 + char *filePassword;
284.161 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
284.162 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > OUTPUT XHTML FOR LOGIN PANEL **/
284.163 + OutputLoginPanel();
284.164 + } else {
284.165 + char c;
284.166 + i = 0;
284.167 +
284.168 + /* READ PASSWORD FROM PASSWORD FILE */
284.169 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
284.170 + filePassword[i] = c;
284.171 + ++i;
284.172 + }
284.173 + filePassword[i] = '\0';
284.174 + fclose(passwordFile);
284.175 +
284.176 + /* IF NO PASSWORD FROM POST VARIABLES... */
284.177 + if (!password) {
284.178 + password = malloc(1);
284.179 + password[0] = '\0';
284.180 + }
284.181 +
284.182 + /* IF PASSWORD FAILS COMPARISON... */
284.183 + if (strcmp(filePassword, password)) {
284.184 + /** ERROR | PASSWORD FAILED > OUTPUT XHTML FOR LOGIN PANEL **/
284.185 + OutputLoginPanel();
284.186 +
284.187 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
284.188 + } else {
284.189 +
284.190 + /* SET COOKIES */
284.191 + printf("Set-Cookie: login=%s; path=/; secure\r\n", login);
284.192 + printf("Set-Cookie: password=%s; path=/; secure\r\n", password);
284.193 +
284.194 + /* REDIRECT LOGGED INTO interos */
284.195 + printf("Location: welcome\r\n\r\n");
284.196 + }
284.197 + free(filePassword);
284.198 + }
284.199 + }
284.200 + }
284.201 + free(passwordFileName);
284.202 + }
284.203 + }
284.204 + free(systemDirectory);
284.205 + }
284.206 + free(directory);
284.207 + }
284.208 + free(login);
284.209 + }
284.210 + free(password);
284.211 + free(variableValue);
284.212 + }
284.213 + free(variableName);
284.214 + }
284.215 + free(post);
284.216 + }
284.217 + }
284.218 + }
284.219 + return 0;
284.220 +}
284.221 +
284.222 +/* FUNCTION | OUTPUT XHTML FOR LOGIN PANEL */
284.223 +static void OutputLoginPanel(void) {
284.224 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
284.225 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
284.226 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/login.css\"?>\n");
284.227 + printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n");
284.228 + printf(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
284.229 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
284.230 + printf(" <!--=================================================-->\n");
284.231 + printf(" <!-- interos Standard Document Header - Markup -->\n");
284.232 + printf(" <!--=================================================-->\n");
284.233 + printf(" <!-- URIs: https://interos.com/login -->\n");
284.234 + printf(" <!-- https://www.interos.com/login -->\n");
284.235 + printf(" <!-- Title: interos login -->\n");
284.236 + printf(" <!-- Author: Brent Angeline -->\n");
284.237 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
284.238 + printf(" <!--=================================================-->\n");
284.239 + printf(" <head>\n");
284.240 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
284.241 + printf(" <meta name=\"title\" content=\"interos login\" />\n");
284.242 + printf(" <meta name=\"description\" content=\"enter into interos\" />\n");
284.243 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
284.244 + printf(" <meta name=\"copyright\" \n");
284.245 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
284.246 + printf(" <meta name=\"robots\" content=\"index, nofollow, noarchive\" />\n");
284.247 + printf(" <title>interos login</title>\n");
284.248 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
284.249 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
284.250 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/login.css\" \n");
284.251 + printf(" media=\"screen, projection\" />\n");
284.252 + printf(" <script type=\"text/javascript\" src=\"/js/login.js\"></script>\n");
284.253 + printf(" </head>\n");
284.254 + printf(" <body id=\"body\">\n");
284.255 + printf(" <center>\n");
284.256 + printf(" <p id=\"navigation\">\n");
284.257 + printf(" <a href=\"/about\">about</a> | \n");
284.258 + printf(" <a href=\"/blog\">blog</a> | \n");
284.259 + printf(" <a href=\"/code\">code</a> | \n");
284.260 + printf(" <a href=\"https://interos.org/\">develop</a> | \n");
284.261 + printf(" <a href=\"/e-mail\">e-mail</a> | \n");
284.262 + printf(" <a href=\"/f.a.q.\">f.a.q.</a> | \n");
284.263 + printf(" <a href=\"/gear\">gear</a> | \n");
284.264 + printf(" <a href=\"/help\">help</a>\n");
284.265 + printf(" </p>\n");
284.266 + printf(" <form id=\"loginForm\" name=\"loginForm\" action=\"/login\" method=\"post\">\n");
284.267 + printf(" <table id=\"mainPanel\">\n");
284.268 + printf(" <thead>\n");
284.269 + printf(" <tr>\n");
284.270 + printf(" <th colspan=\"3\"><center>\n");
284.271 + printf(" <div id=\"title\">\n");
284.272 + printf(" <h1>\n");
284.273 + printf(" <a href=\"/\">interos</a>\n");
284.274 + printf(" </h1>\n");
284.275 + printf(" </div>\n");
284.276 + printf(" <h2>\n");
284.277 + printf(" internet operating system\n");
284.278 + printf(" </h2>\n");
284.279 + printf(" </center></th>\n");
284.280 + printf(" </tr>\n");
284.281 + printf(" </thead>\n");
284.282 + printf(" <tfoot>\n");
284.283 + printf(" <tr>\n");
284.284 + printf(" <td colspan=\"3\"><br /></td>\n");
284.285 + printf(" </tr>\n");
284.286 + printf(" </tfoot>\n");
284.287 + printf(" <tbody>\n");
284.288 + printf(" <tr>\n");
284.289 + printf(" <td><label for=\"login\">login:</label> </td>\n");
284.290 + printf(" <td><input id=\"login\" name=\"login\" \n");
284.291 +/*
284.292 + printf(" value=\"guest\" readonly=\"readonly\" \n");
284.293 +*/
284.294 + printf(" value=\"guest\" \n");
284.295 + printf(" size=\"16\" maxlength=\"16\" \n");
284.296 + printf(" type=\"text\" /></td>\n");
284.297 + printf(" </tr>\n");
284.298 + printf(" <tr>\n");
284.299 + printf(" <td><label for=\"password\">password:</label> </td>\n");
284.300 + printf(" <td><input id=\"password\" name=\"password\" \n");
284.301 + printf(" disabled=\"disabled\" \n");
284.302 + printf(" size=\"16\" maxlength=\"16\" \n");
284.303 + printf(" type=\"password\" /></td>\n");
284.304 + printf(" <td rowspan=\"2\"><div id=\"submitButton\">\n");
284.305 + printf(" <input type=\"submit\" \n");
284.306 + printf(" value=\"login »\" />\n");
284.307 + printf(" </div></td>\n");
284.308 + printf(" </tr>\n");
284.309 + printf(" </tbody>\n");
284.310 + printf(" </table>\n");
284.311 + printf(" </form>\n");
284.312 + printf(" <p id=\"newUser\">\n");
284.313 + printf(" <a href=\"/new_user\"><strong>new users click here</strong><br />\n");
284.314 + printf(" to create your login</a>\n");
284.315 + printf(" </p>\n");
284.316 + printf(" <p>\n");
284.317 + printf(" <br />\n");
284.318 + printf(" </p>\n");
284.319 + printf(" <p id=\"copyrightDates\">\n");
284.320 + printf(" © 2001–2010 interos\n");
284.321 + printf(" </p>\n");
284.322 + printf(" </center>\n");
284.323 + printf(" </body>\n");
284.324 + printf(" <!--=====================================================================-->\n");
284.325 + printf(" <!-- Copyright and Trademark Statement -->\n");
284.326 + printf(" <!--=====================================================================-->\n");
284.327 + printf(" <!-- -->\n");
284.328 + printf(" <!-- All original textual and graphical site content: -->\n");
284.329 + printf(" <!-- -->\n");
284.330 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
284.331 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
284.332 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
284.333 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
284.334 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
284.335 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
284.336 + printf(" <!-- are the properties of their respective authors. All software -->\n");
284.337 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
284.338 + printf(" <!-- -->\n");
284.339 + printf(" <!--=====================================================================-->\n");
284.340 + printf(" <!-- e-mail: info@interos.com -->\n");
284.341 + printf(" <!--=====================================================================-->\n");
284.342 + printf("</html>");
284.343 +}
284.344 +
284.345 +/***********************************************************************/
284.346 +/* Copyright and Trademark Statement */
284.347 +/***********************************************************************/
284.348 +/* */
284.349 +/* All original textual and graphical site content: */
284.350 +/* */
284.351 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
284.352 +/* reserved. Reproduction in whole or in part without written */
284.353 +/* permission is prohibited. interos and the interos logos are */
284.354 +/* trademarks of Brent Angeline and interos LLC. All other company, */
284.355 +/* product, and service names mentioned herein may be the properties */
284.356 +/* of their respective owners. Comments in the interos.org forums */
284.357 +/* are the properties of their respective authors. All software */
284.358 +/* developed in the forums is open source and belongs to everyone. */
284.359 +/* */
284.360 +/***********************************************************************/
284.361 +/* e-mail: info@interos.com */
284.362 +/***********************************************************************/
285.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
285.2 +++ b/xml/c/logout_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
285.3 @@ -0,0 +1,48 @@
285.4 +/**************************************************/
285.5 +/* interos Standard Document Header - CGI in C */
285.6 +/**************************************************/
285.7 +/* URIs: https://interos.com/logout */
285.8 +/* https://www.interos.com/logout */
285.9 +/* Source: logout.c */
285.10 +/* Description: FastCGI for interos logout */
285.11 +/* Author: Brent Angeline */
285.12 +/* CGI: FastCGI in ISO/ANSI C */
285.13 +/**************************************************/
285.14 +
285.15 +/* PREPROCESSOR DIRECTIVE */
285.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), printf() */
285.17 +
285.18 +/* BEGIN MAIN PROGRAM */
285.19 +int main(void) {
285.20 +
285.21 + /* BEGIN FASTCGI */
285.22 + while (FCGI_Accept() >= 0) {
285.23 +
285.24 + /* SET COOKIES */
285.25 + printf("Set-Cookie: login=; path=/; secure\r\n");
285.26 + printf("Set-Cookie: password=; path=/; secure\r\n");
285.27 +
285.28 + /* REDIRECT TO LOGIN PANEL */
285.29 + printf("Location: login\r\n\r\n");
285.30 + }
285.31 + return 0;
285.32 +}
285.33 +
285.34 +/***********************************************************************/
285.35 +/* Copyright and Trademark Statement */
285.36 +/***********************************************************************/
285.37 +/* */
285.38 +/* All original textual and graphical site content: */
285.39 +/* */
285.40 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
285.41 +/* reserved. Reproduction in whole or in part without written */
285.42 +/* permission is prohibited. interos and the interos logos are */
285.43 +/* trademarks of Brent Angeline and interos LLC. All other company, */
285.44 +/* product, and service names mentioned herein may be the properties */
285.45 +/* of their respective owners. Comments in the interos.org forums */
285.46 +/* are the properties of their respective authors. All software */
285.47 +/* developed in the forums is open source and belongs to everyone. */
285.48 +/* */
285.49 +/***********************************************************************/
285.50 +/* e-mail: info@interos.com */
285.51 +/***********************************************************************/
286.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
286.2 +++ b/xml/c/main_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
286.3 @@ -0,0 +1,724 @@
286.4 +/*************************************************/
286.5 +/* interos Standard Document Header - CGI in C */
286.6 +/*************************************************/
286.7 +/* URIs: https://interos.com/ */
286.8 +/* https://interos.com/main */
286.9 +/* https://www.interos.com/ */
286.10 +/* https://www.interos.com/main */
286.11 +/* Source: main.c */
286.12 +/* Description: FastCGI for interos main */
286.13 +/* Author: Brent Angeline */
286.14 +/* CGI: FastCGI in ISO/ANSI C */
286.15 +/*************************************************/
286.16 +
286.17 +/* PREPROCESSOR DIRECTIVES */
286.18 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
286.19 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
286.20 +#include <stdlib.h> /* free(), getenv(), malloc() */
286.21 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
286.22 +#include <unistd.h> /* F_OK, access() */
286.23 +
286.24 +#ifndef INTEROS_H
286.25 +
286.26 + /* TYPE DEFINITION */
286.27 + typedef struct {
286.28 + char *name;
286.29 + char *link;
286.30 + char *icon;
286.31 + struct MENU_ITEM *next;
286.32 + } MENU_ITEM;
286.33 +
286.34 +#endif
286.35 +
286.36 +/* FUNCTION PROTOTYPE DECLARATIONS */
286.37 +static void RedirectToLoginPanel(void);
286.38 +static void OutputGUI(const char *variableName, char *variableValue);
286.39 +static void OutputNewMenu(void);
286.40 +static void OutputOpenMenu(char *open);
286.41 +static void OutputNextMenu(char *next);
286.42 +static void OutputSettingsMenu(char *settings);
286.43 +static void BeginXHTMLOutput(void);
286.44 +static void FinishXHTMLOutput(void);
286.45 +
286.46 +/* BEGIN MAIN PROGRAM */
286.47 +int main(void) {
286.48 +
286.49 + /* BEGIN FASTCGI */
286.50 + while (FCGI_Accept() >= 0) {
286.51 +
286.52 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
286.53 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
286.54 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
286.55 + RedirectToLoginPanel();
286.56 +
286.57 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
286.58 + } else {
286.59 +
286.60 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
286.61 + char *cookie;
286.62 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
286.63 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
286.64 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
286.65 + RedirectToLoginPanel();
286.66 + } else {
286.67 + char *variableName;
286.68 + if (!(variableName = malloc(cookieLength + 1))) {
286.69 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
286.70 + RedirectToLoginPanel();
286.71 + } else {
286.72 + char *variableValue;
286.73 + if (!(variableValue = malloc(cookieLength + 1))) {
286.74 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
286.75 + RedirectToLoginPanel();
286.76 +
286.77 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
286.78 + } else {
286.79 +
286.80 + /* PROCESS COOKIE DATA */
286.81 + char *login, *password;
286.82 + INT c, i;
286.83 + login = password = NULL;
286.84 + c = 0;
286.85 + strcpy(cookie, getenv("HTTP_COOKIE"));
286.86 + while ((c < cookieLength) && (cookie[c] != '\0')) {
286.87 + i = 0;
286.88 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
286.89 + variableName[i] = cookie[c];
286.90 + ++c;
286.91 + ++i;
286.92 + }
286.93 + variableName[i] = '\0';
286.94 + ++c;
286.95 + i = 0;
286.96 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
286.97 + variableValue[i] = cookie[c];
286.98 + ++c;
286.99 + ++i;
286.100 + }
286.101 + variableValue[i] = '\0';
286.102 + ++c;
286.103 + while ((c < cookieLength) && (cookie[c] == ' ')) {
286.104 + ++c;
286.105 + }
286.106 + if (!login && !strcmp(variableName, "login")) {
286.107 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
286.108 + strcpy(login, variableValue);
286.109 + }
286.110 + } else if (!password && !strcmp(variableName, "password")) {
286.111 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
286.112 + strcpy(password, variableValue);
286.113 + }
286.114 + }
286.115 + }
286.116 +
286.117 + /* IF LOGIN VALUE IS MISSING... */
286.118 + if (!login) {
286.119 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
286.120 + RedirectToLoginPanel();
286.121 +
286.122 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
286.123 + } else {
286.124 +
286.125 + /* VERIFY LOGIN AND PASSWORD */
286.126 + char *directory;
286.127 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
286.128 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
286.129 + RedirectToLoginPanel();
286.130 + } else {
286.131 + char *systemDirectory;
286.132 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
286.133 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
286.134 + RedirectToLoginPanel();
286.135 + } else {
286.136 + strcpy(directory, DIRECTORY);
286.137 + strcat(directory, login);
286.138 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
286.139 + strcat(systemDirectory, login);
286.140 +
286.141 + /* IF DIRECTORY CAN'T BE ACCESSED... */
286.142 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
286.143 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
286.144 + RedirectToLoginPanel();
286.145 +
286.146 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
286.147 + } else {
286.148 +
286.149 + /* ATTEMPT TO ACCESS PASSWORD FILE */
286.150 + char *passwordFileName;
286.151 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 1))) {
286.152 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
286.153 + RedirectToLoginPanel();
286.154 + } else {
286.155 + strcpy(passwordFileName, systemDirectory);
286.156 + strcat(passwordFileName, PASSWORD_FILE_NAME);
286.157 +
286.158 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
286.159 + if (access(passwordFileName, F_OK)) {
286.160 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
286.161 + RedirectToLoginPanel();
286.162 +
286.163 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
286.164 + } else {
286.165 +
286.166 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
286.167 + FILE *passwordFile;
286.168 +
286.169 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
286.170 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
286.171 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
286.172 + RedirectToLoginPanel();
286.173 +
286.174 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
286.175 + } else {
286.176 + char *filePassword;
286.177 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
286.178 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
286.179 + RedirectToLoginPanel();
286.180 + } else {
286.181 + char c;
286.182 + i = 0;
286.183 +
286.184 + /* READ PASSWORD FROM PASSWORD FILE */
286.185 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
286.186 + filePassword[i] = c;
286.187 + ++i;
286.188 + }
286.189 + filePassword[i] = '\0';
286.190 + fclose(passwordFile);
286.191 +
286.192 + /* IF PASSWORD FAILS COMPARISON... */
286.193 + if (strcmp(filePassword, password)) {
286.194 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
286.195 + RedirectToLoginPanel();
286.196 +
286.197 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
286.198 + } else {
286.199 +
286.200 + /* LOAD SETTINGS VALUES FROM FILE(S) */
286.201 +
286.202 + /* LOAD MENU ITEMS FROM FILES */
286.203 +
286.204 + /* READ NEW MENU FILE */
286.205 +
286.206 + /* READ OPEN MENU FILE */
286.207 +
286.208 + /* READ NEXT MENU FILE */
286.209 +
286.210 + /* READ SETTINGS MENU FILE */
286.211 +
286.212 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
286.213 + char *menu, *new, *open, *next, *settings, *text_file, *status;
286.214 + menu = new = open = next = settings = text_file = status = NULL;
286.215 +
286.216 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
286.217 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
286.218 + char *query;
286.219 + INT queryLength = strlen(getenv("QUERY_STRING"));
286.220 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
286.221 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
286.222 + } else {
286.223 + free(variableName);
286.224 + strcpy(query, getenv("QUERY_STRING"));
286.225 + if (!(variableName = malloc(queryLength + 1))) {
286.226 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
286.227 + } else {
286.228 + free(variableValue);
286.229 + if (!(variableValue = malloc(queryLength + 1))) {
286.230 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
286.231 +
286.232 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
286.233 + } else {
286.234 +
286.235 + /* PROCESS QUERY DATA */
286.236 + INT q = 0;
286.237 + i = 0;
286.238 + while ((q < queryLength) && (query[q] != '\0')) {
286.239 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
286.240 + variableName[i] = query[q];
286.241 + ++q;
286.242 + ++i;
286.243 + }
286.244 + variableName[i] = '\0';
286.245 + ++q;
286.246 + i = 0;
286.247 + while ((query[q] != '&') && (query[q] != '\0')) {
286.248 + variableValue[i] = query[q];
286.249 + ++q;
286.250 + ++i;
286.251 + }
286.252 + variableValue[i] = '\0';
286.253 + if (query[q] != '\0') {
286.254 + ++q;
286.255 + }
286.256 + if (!menu && !strcmp(variableName, "menu")) {
286.257 + if ((menu = malloc(strlen(variableValue) + 1)) != 0) {
286.258 + strcpy(menu, variableValue);
286.259 + }
286.260 + } else if (!new && !strcmp(variableName, "new")) {
286.261 + if ((new = malloc(strlen(variableValue) + 1)) != 0) {
286.262 + strcpy(new, variableValue);
286.263 + }
286.264 + } else if (!open && !strcmp(variableName, "open")) {
286.265 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
286.266 + strcpy(open, variableValue);
286.267 + }
286.268 + } else if (!next && !strcmp(variableName, "next")) {
286.269 + if ((next = malloc(strlen(variableValue) + 1)) != 0) {
286.270 + strcpy(next, variableValue);
286.271 + }
286.272 + } else if (!settings && !strcmp(variableName, "settings")) {
286.273 + if ((settings = malloc(strlen(variableValue) + 1)) != 0) {
286.274 + strcpy(settings, variableValue);
286.275 + }
286.276 + } else if (!text_file && !strcmp(variableName, "text_file")) {
286.277 + if ((text_file = malloc(strlen(variableValue) + 1)) != 0) {
286.278 + strcpy(text_file, variableValue);
286.279 + }
286.280 + } else if (!status && !strcmp(variableName, "says")) {
286.281 + if ((status = malloc(strlen(variableValue) + 1)) != 0) {
286.282 + strcpy(status, variableValue);
286.283 + }
286.284 + }
286.285 + }
286.286 + free(variableValue);
286.287 + variableValue = NULL;
286.288 + }
286.289 + free(variableName);
286.290 + variableName = NULL;
286.291 + }
286.292 + free(query);
286.293 + }
286.294 + }
286.295 +
286.296 + /* IF THIS IS A CONTINUED SESSION... */
286.297 +
286.298 + /* LOAD SESSION FROM FILE */
286.299 +
286.300 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
286.301 + if (settings) {
286.302 + OutputSettingsMenu(settings);
286.303 + } else if (new) {
286.304 + if (!strcmp(new, "text_file")) {
286.305 + OutputGUI("new", new);
286.306 + } else {
286.307 + OutputNewMenu();
286.308 + }
286.309 + } else if (open) {
286.310 + OutputOpenMenu(open);
286.311 + } else if (next) {
286.312 + if (!strcmp(next, "save_as")) {
286.313 +
286.314 + } else if (!strcmp(next, "save")) {
286.315 +
286.316 + } else if (!strcmp(next, "close")) {
286.317 +
286.318 + } else if (!strcmp(next, "bookmark")) {
286.319 +
286.320 + } else if (!strcmp(next, "logout")) {
286.321 +
286.322 + /* SET COOKIES */
286.323 + printf("Set-Cookie: login=; path=/; secure\r\n");
286.324 + printf("Set-Cookie: password=; path=/; secure\r\n");
286.325 +
286.326 + /* REDIRECT TO LOGIN PANEL */
286.327 + printf("Location: login\r\n\r\n");
286.328 + } else if (status) {
286.329 + OutputGUI("status", status);
286.330 + } else {
286.331 + OutputGUI(NULL, NULL);
286.332 + }
286.333 + } else if (menu) {
286.334 + if (!strcmp(menu, "settings")) {
286.335 + OutputSettingsMenu(settings);
286.336 + } else if (!strcmp(menu, "new")) {
286.337 + OutputNewMenu();
286.338 + } else if (!strcmp(menu, "open")) {
286.339 + OutputOpenMenu(open);
286.340 + } else if (!strcmp(menu, "next")) {
286.341 + OutputNextMenu(next);
286.342 + } else if (status) {
286.343 + OutputGUI("status", status);
286.344 + } else {
286.345 + OutputGUI(NULL, NULL);
286.346 + }
286.347 + } else if (text_file) {
286.348 + OutputGUI("text_file", text_file);
286.349 + } else {
286.350 + if (status) {
286.351 + OutputGUI("status", status);
286.352 + } else {
286.353 + OutputGUI(NULL, NULL);
286.354 + }
286.355 + }
286.356 + free(status);
286.357 + free(text_file);
286.358 + free(settings);
286.359 + free(next);
286.360 + free(open);
286.361 + free(new);
286.362 + free(menu);
286.363 + }
286.364 + free(filePassword);
286.365 + }
286.366 + }
286.367 + }
286.368 + free(passwordFileName);
286.369 + }
286.370 + }
286.371 + free(systemDirectory);
286.372 + }
286.373 + free(directory);
286.374 + }
286.375 + free(login);
286.376 + }
286.377 + free(password);
286.378 + free(variableValue);
286.379 + }
286.380 + free(variableName);
286.381 + }
286.382 + free(cookie);
286.383 + }
286.384 + }
286.385 + }
286.386 + return 0;
286.387 +}
286.388 +
286.389 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
286.390 +static void RedirectToLoginPanel(void) {
286.391 + printf("Location: login\r\n\r\n");
286.392 +}
286.393 +
286.394 +/* FUNCTION | OUTPUT XHTML FOR interos GRAPHICAL USER INTERFACE */
286.395 +static void OutputGUI(const char *variableName, char *variableValue) {
286.396 + BeginXHTMLOutput();
286.397 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
286.398 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
286.399 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
286.400 + printf(" <!--========================================================-->\n");
286.401 + printf(" <!-- interos Standard Document Header - Markup -->\n");
286.402 + printf(" <!--========================================================-->\n");
286.403 + printf(" <!-- URIs: https://interos.com/ -->\n");
286.404 + printf(" <!-- https://interos.com/main -->\n");
286.405 + printf(" <!-- https://www.interos.com/ -->\n");
286.406 + printf(" <!-- https://www.interos.com/main -->\n");
286.407 + printf(" <!-- Title: interos -->\n");
286.408 + printf(" <!-- Author: Brent Angeline -->\n");
286.409 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
286.410 + printf(" <!--========================================================-->\n");
286.411 + printf(" <head>\n");
286.412 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
286.413 + printf(" <meta name=\"title\" content=\"interos\" />\n");
286.414 + printf(" <meta name=\"description\" content=\"internet operating system\" />\n");
286.415 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
286.416 + printf(" <meta name=\"copyright\" \n");
286.417 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
286.418 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
286.419 + printf(" <title>interos</title>\n");
286.420 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
286.421 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
286.422 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
286.423 + printf(" media=\"screen, projection\" />\n");
286.424 + printf(" <script type=\"text/javascript\" src=\"/js/interos.js\"></script>\n");
286.425 + printf(" </head>\n");
286.426 + printf(" <frameset rows=\"72,*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
286.427 + printf(" <frame name=\"top\" src=\"/top\" \n");
286.428 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.429 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.430 + if (variableName && variableValue) {
286.431 + printf(" <frame name=\"content\" src=\"/content?%s=%s\" \n", variableName, variableValue);
286.432 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.433 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.434 + } else {
286.435 + printf(" <frame name=\"content\" src=\"/content\" \n");
286.436 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.437 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.438 + }
286.439 + printf(" <frame name=\"bottom\" src=\"/bottom\" \n");
286.440 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.441 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.442 + printf(" <noframes>\n");
286.443 + printf(" <body id=\"body\">\n");
286.444 + printf(" <h3>\n");
286.445 + printf(" menu\n");
286.446 + printf(" </h3>\n");
286.447 + printf(" <p>\n");
286.448 + printf(" <a id=\"newLink\" href=\"/main?menu=new\">new</a>\n");
286.449 + printf(" </p>\n");
286.450 + printf(" <p>\n");
286.451 + printf(" <a id=\"openLink\" href=\"/main?menu=open\">open</a>\n");
286.452 + printf(" </p>\n");
286.453 + printf(" <p>\n");
286.454 + printf(" <a id=\"nextLink\" href=\"/main?menu=next\">next</a>\n");
286.455 + printf(" </p>\n");
286.456 + printf(" <p>\n");
286.457 + printf(" <a id=\"settingsLink\" href=\"/main?menu=settings\">settings</a>");
286.458 + printf(" </p>\n");
286.459 + printf(" </body>\n");
286.460 + printf(" </noframes>\n");
286.461 + printf(" </frameset>\n");
286.462 + FinishXHTMLOutput();
286.463 +}
286.464 +
286.465 +/* FUNCTION | OUTPUT XHTML FOR NEW MENU */
286.466 +static void OutputNewMenu(void) {
286.467 + BeginXHTMLOutput();
286.468 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
286.469 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
286.470 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
286.471 + printf(" <!--========================================================-->\n");
286.472 + printf(" <!-- interos Standard Document Header - Markup -->\n");
286.473 + printf(" <!--========================================================-->\n");
286.474 + printf(" <!-- URIs: https://interos.com/main?menu=new -->\n");
286.475 + printf(" <!-- https://interos.com/interos?menu=new -->\n");
286.476 + printf(" <!-- https://www.interos.com/main?menu=new -->\n");
286.477 + printf(" <!-- https://www.interos.com/interos?menu=new -->\n");
286.478 + printf(" <!-- Title: interos new -->\n");
286.479 + printf(" <!-- Author: Brent Angeline -->\n");
286.480 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
286.481 + printf(" <!--========================================================-->\n");
286.482 + printf(" <head>\n");
286.483 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
286.484 + printf(" <meta name=\"title\" content=\"interos new\" />\n");
286.485 + printf(" <meta name=\"description\" content=\"new menu for interos\" />\n");
286.486 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
286.487 + printf(" <meta name=\"copyright\" \n");
286.488 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
286.489 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
286.490 + printf(" <title>interos new</title>\n");
286.491 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
286.492 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
286.493 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
286.494 + printf(" media=\"screen, projection\" />\n");
286.495 + printf(" <script type=\"text/javascript\" src=\"/js/interos_new.js\"></script>\n");
286.496 + printf(" </head>\n");
286.497 + printf(" <frameset rows=\"*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
286.498 + printf(" <frame name=\"menu\" src=\"/menu?name=new\" \n");
286.499 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.500 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.501 + printf(" <frame name=\"button\" src=\"/bottom?button=new\" \n");
286.502 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.503 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.504 + printf(" <noframes>\n");
286.505 + printf(" <body id=\"body\">\n");
286.506 + printf(" <div id=\"newEntries\">\n");
286.507 + printf(" <p>\n");
286.508 + printf(" <a href=\"/main?new=text_file\">text file</a>\n");
286.509 + printf(" </p>\n");
286.510 + printf(" </div>\n");
286.511 + printf(" <div id=\"newLink\"><a href=\"/main\">new</a></div>\n");
286.512 + printf(" </body>\n");
286.513 + printf(" </noframes>\n");
286.514 + printf(" </frameset>\n");
286.515 + FinishXHTMLOutput();
286.516 +}
286.517 +
286.518 +/* FUNCTION | OUTPUT XHTML FOR OPEN MENU */
286.519 +static void OutputOpenMenu(char *open) {
286.520 + BeginXHTMLOutput();
286.521 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
286.522 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
286.523 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
286.524 + printf(" <!--========================================================-->\n");
286.525 + printf(" <!-- interos Standard Document Header - Markup -->\n");
286.526 + printf(" <!--========================================================-->\n");
286.527 + printf(" <!-- URIs: https://interos.com/main?menu=open -->\n");
286.528 + printf(" <!-- https://interos.com/interos?menu=open -->\n");
286.529 + printf(" <!-- https://www.interos.com/main?menu=open -->\n");
286.530 + printf(" <!-- https://www.interos.com/interos?menu=open -->\n");
286.531 + printf(" <!-- Title: interos open -->\n");
286.532 + printf(" <!-- Author: Brent Angeline -->\n");
286.533 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
286.534 + printf(" <!--========================================================-->\n");
286.535 + printf(" <head>\n");
286.536 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
286.537 + printf(" <meta name=\"title\" content=\"interos open\" />\n");
286.538 + printf(" <meta name=\"description\" content=\"open menu for interos\" />\n");
286.539 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
286.540 + printf(" <meta name=\"copyright\" \n");
286.541 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
286.542 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
286.543 + printf(" <title>interos open</title>\n");
286.544 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
286.545 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
286.546 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
286.547 + printf(" media=\"screen, projection\" />\n");
286.548 + printf(" <script type=\"text/javascript\" src=\"/js/interos_open.js\"></script>\n");
286.549 + printf(" </head>\n");
286.550 + printf(" <frameset rows=\"72,*\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
286.551 + printf(" <frame name=\"button\" src=\"/top?button=open\" \n");
286.552 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.553 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.554 + if (open) {
286.555 + if (!strcmp(open, "text_file")) {
286.556 + printf(" <frame name=\"menu\" src=\"/menu?open=text_file\" \n");
286.557 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.558 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.559 + } else {
286.560 + printf(" <frame name=\"menu\" src=\"/menu?name=open\" \n");
286.561 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.562 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.563 + }
286.564 + } else {
286.565 + printf(" <frame name=\"menu\" src=\"/menu?name=open\" \n");
286.566 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.567 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.568 + }
286.569 + printf(" <noframes>\n");
286.570 + printf(" <body id=\"body\">\n");
286.571 + printf(" <div id=\"openLink\"><a href=\"/main\">open</a></div>\n");
286.572 + printf(" <div id=\"openEntries\">\n");
286.573 + printf(" <p><a href=\"/main?open=text_file\">text file</a></p>\n");
286.574 + printf(" </div>\n");
286.575 + printf(" </body>\n");
286.576 + printf(" </noframes>\n");
286.577 + printf(" </frameset>\n");
286.578 + FinishXHTMLOutput();
286.579 +}
286.580 +
286.581 +/* FUNCTION | OUTPUT XHTML FOR NEXT MENU */
286.582 +static void OutputNextMenu(char *next) {
286.583 + BeginXHTMLOutput();
286.584 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
286.585 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
286.586 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
286.587 + printf(" <!--========================================================-->\n");
286.588 + printf(" <!-- interos Standard Document Header - Markup -->\n");
286.589 + printf(" <!--========================================================-->\n");
286.590 + printf(" <!-- URIs: https://interos.com/main?menu=next -->\n");
286.591 + printf(" <!-- https://interos.com/interos?menu=next -->\n");
286.592 + printf(" <!-- https://www.interos.com/main?menu=next -->\n");
286.593 + printf(" <!-- https://www.interos.com/interos?menu=next -->\n");
286.594 + printf(" <!-- Title: interos next -->\n");
286.595 + printf(" <!-- Author: Brent Angeline -->\n");
286.596 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
286.597 + printf(" <!--========================================================-->\n");
286.598 + printf(" <head>\n");
286.599 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
286.600 + printf(" <meta name=\"title\" content=\"interos next\" />\n");
286.601 + printf(" <meta name=\"description\" content=\"next menu for interos\" />\n");
286.602 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
286.603 + printf(" <meta name=\"copyright\" \n");
286.604 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
286.605 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
286.606 + printf(" <title>interos next</title>\n");
286.607 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
286.608 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
286.609 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
286.610 + printf(" media=\"screen, projection\" />\n");
286.611 + printf(" <script type=\"text/javascript\" src=\"/js/interos_next.js\"></script>\n");
286.612 + printf(" </head>\n");
286.613 + printf(" <frameset rows=\"72,*\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
286.614 + printf(" <frame name=\"button\" src=\"/top?button=next\" \n");
286.615 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.616 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.617 + printf(" <frame name=\"menu\" src=\"/menu?name=next\" \n");
286.618 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.619 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.620 + printf(" <noframes>\n");
286.621 + printf(" <body id=\"body\">\n");
286.622 + printf(" <div id=\"nextLink\"><a href=\"/main\">next</a></div>\n");
286.623 + printf(" <div id=\"nextEntries\">\n");
286.624 + printf(" <p><a href=\"/logout\">logout</a></p>\n");
286.625 + printf(" </div>\n");
286.626 + printf(" </body>\n");
286.627 + printf(" </noframes>\n");
286.628 + printf(" </frameset>\n");
286.629 + FinishXHTMLOutput();
286.630 +}
286.631 +
286.632 +/* FUNCTION | OUTPUT XHTML FOR SETTINGS MENU */
286.633 +void OutputSettingsMenu(char *settings) {
286.634 + BeginXHTMLOutput();
286.635 + printf("<?xml-stylesheet type=\"text/css\" href=\"/style/main.css\"?>\n");
286.636 + printf("<!DOCTYPE html SYSTEM \"http://interos.org/dtd/xhtml1-borderless-frameset.dtd\">\n");
286.637 + printf("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-US\" lang=\"en-US\">\n");
286.638 + printf(" <!--==========================================================-->\n");
286.639 + printf(" <!-- interos Standard Document Header - Markup -->\n");
286.640 + printf(" <!--==========================================================-->\n");
286.641 + printf(" <!-- URIs: https://interos.com/main?menu=settings -->\n");
286.642 + printf(" <!-- https://interos.com/interos?menu=settings -->\n");
286.643 + printf(" <!-- https://www.interos.com/menu?menu=settings -->\n");
286.644 + printf(" <!-- https://www.interos.com/interos?menu=settings -->\n");
286.645 + printf(" <!-- Title: interos settings -->\n");
286.646 + printf(" <!-- Author: Brent Angeline -->\n");
286.647 + printf(" <!-- Markup: WDG-Validated XHTML 1.0 Borderless Frameset -->\n");
286.648 + printf(" <!--==========================================================-->\n");
286.649 + printf(" <head>\n");
286.650 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
286.651 + printf(" <meta name=\"title\" content=\"interos - settings\" />\n");
286.652 + printf(" <meta name=\"description\" content=\"interos settings menu\" />\n");
286.653 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
286.654 + printf(" <meta name=\"copyright\" \n");
286.655 + printf(" content=\"Copyright © 2001-2010 Brent Angeline and interos LLC\" />\n");
286.656 + printf(" <meta name=\"robots\" content=\"noindex, nofollow, noarchive\" />\n");
286.657 + printf(" <title>interos settings</title>\n");
286.658 + printf(" <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n");
286.659 + printf(" <link rel=\"icon\" type=\"image/gif\" href=\"/images/favicon.gif\" />\n");
286.660 + printf(" <link rel=\"stylesheet\" type=\"text/css\" href=\"/style/main.css\" \n");
286.661 + printf(" media=\"screen, projection\" />\n");
286.662 + printf(" <script type=\"text/javascript\" src=\"/js/interos_settings.js\"></script>\n");
286.663 + printf(" </head>\n");
286.664 + printf(" <frameset rows=\"*,72\" border=\"0\" frameborder=\"0\" framespacing=\"0\">\n");
286.665 + printf(" <frame name=\"menu\" src=\"/menu?name=settings\" \n");
286.666 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.667 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.668 + printf(" <frame name=\"button\" src=\"/bottom?button=settings\" \n");
286.669 + printf(" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" \n");
286.670 + printf(" noresize=\"noresize\" scrolling=\"auto\" />\n");
286.671 + printf(" <noframes>\n");
286.672 + printf(" <body id=\"body\">\n");
286.673 + printf(" <div id=\"settingsEntries\">\n");
286.674 + printf(" <p><a href=\"/main?settings=button_size\">button size</a></p>\n");
286.675 + printf(" </div>\n");
286.676 + printf(" <div id=\"settingsLink\"><a href=\"/main\">settings</a></div>\n");
286.677 + printf(" </body>\n");
286.678 + printf(" </noframes>\n");
286.679 + printf(" </frameset>\n");
286.680 + FinishXHTMLOutput();
286.681 +}
286.682 +
286.683 +static void BeginXHTMLOutput(void) {
286.684 + printf("Content-Type: text/html; charset=utf-8\r\n\r\n");
286.685 + printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
286.686 +}
286.687 +
286.688 +static void FinishXHTMLOutput(void) {
286.689 + printf(" <!--=====================================================================-->\n");
286.690 + printf(" <!-- Copyright and Trademark Statement -->\n");
286.691 + printf(" <!--=====================================================================-->\n");
286.692 + printf(" <!-- -->\n");
286.693 + printf(" <!-- All original textual and graphical site content: -->\n");
286.694 + printf(" <!-- -->\n");
286.695 + printf(" <!-- Copyright 2001-2010 Brent Angeline and interos LLC. All rights -->\n");
286.696 + printf(" <!-- reserved. Reproduction in whole or in part without written -->\n");
286.697 + printf(" <!-- permission is prohibited. interos and the interos logos are -->\n");
286.698 + printf(" <!-- trademarks of Brent Angeline and interos LLC. All other company, -->\n");
286.699 + printf(" <!-- product, and service names mentioned herein may be the properties -->\n");
286.700 + printf(" <!-- of their respective owners. Comments in the interos.org forums -->\n");
286.701 + printf(" <!-- are the properties of their respective authors. All software -->\n");
286.702 + printf(" <!-- developed in the forums is open source and belongs to everyone. -->\n");
286.703 + printf(" <!-- -->\n");
286.704 + printf(" <!--=====================================================================-->\n");
286.705 + printf(" <!-- e-mail: info@interos.com -->\n");
286.706 + printf(" <!--=====================================================================-->\n");
286.707 + printf("</html>");
286.708 +}
286.709 +
286.710 +/***********************************************************************/
286.711 +/* Copyright and Trademark Statement */
286.712 +/***********************************************************************/
286.713 +/* */
286.714 +/* All original textual and graphical site content: */
286.715 +/* */
286.716 +/* Copyright 2001-2010 Brent Angeline and interos LLC. All rights */
286.717 +/* reserved. Reproduction in whole or in part without written */
286.718 +/* permission is prohibited. interos and the interos logos are */
286.719 +/* trademarks of Brent Angeline and interos LLC. All other company, */
286.720 +/* product, and service names mentioned herein may be the properties */
286.721 +/* of their respective owners. Comments in the interos.org forums */
286.722 +/* are the properties of their respective authors. All software */
286.723 +/* developed in the forums is open source and belongs to everyone. */
286.724 +/* */
286.725 +/***********************************************************************/
286.726 +/* e-mail: info@interos.com */
286.727 +/***********************************************************************/
287.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
287.2 +++ b/xml/c/menu_interos.com_ssl.c Sat May 01 16:19:36 2010 -0400
287.3 @@ -0,0 +1,812 @@
287.4 +/*************************************************/
287.5 +/* interos Standard Document Header - CGI in C */
287.6 +/*************************************************/
287.7 +/* URIs: https://interos.com/menu */
287.8 +/* https://www.interos.com/menu */
287.9 +/* Source: menu.c */
287.10 +/* Description: FastCGI for interos menu */
287.11 +/* Author: Brent Angeline */
287.12 +/* CGI: FastCGI in ISO/ANSI C */
287.13 +/*************************************************/
287.14 +
287.15 +/* PREPROCESSOR DIRECTIVES */
287.16 +#include "fcgi_stdio.h" /* FCGI_Accept(), fclose(), fgetc(), fopen(), printf() */
287.17 +#include "interos.h" /* DIRECTORY, INT, MAX_PASSWORD_SIZE, MENU_ITEM, PASSWORD_FILE_NAME, SYSTEM_DIRECTORY */
287.18 +#include <stdlib.h> /* free(), getenv(), malloc() */
287.19 +#include <string.h> /* strcat(), strcmp(), strcpy(), strlen() */
287.20 +#include <unistd.h> /* F_OK, access() */
287.21 +
287.22 +#ifndef INTEROS_H
287.23 +
287.24 + /* TYPE DEFINITION */
287.25 + typedef struct {
287.26 + char *name;
287.27 + char *link;
287.28 + char *icon;
287.29 + struct MENU_ITEM *next;
287.30 + } MENU_ITEM;
287.31 +
287.32 +#endif
287.33 +
287.34 +/* FUNCTION PROTOTYPE DECLARATIONS */
287.35 +static void RedirectToLoginPanel(void);
287.36 +static void OutputNewMenu(void);
287.37 +static void OutputOpenMenu(char *open);
287.38 +static void OutputNextMenu(char *next);
287.39 +static void OutputSettingsMenu(char *settings);
287.40 +static void BeginXHTMLOutput(void);
287.41 +static void FinishXHTMLOutput(void);
287.42 +
287.43 +/* BEGIN MAIN PROGRAM */
287.44 +int main(void) {
287.45 +
287.46 + /* BEGIN FASTCGI */
287.47 + while (FCGI_Accept() >= 0) {
287.48 +
287.49 + /* IF COOKIE DATA DOESN'T EXIST OR IS TOO LONG... */
287.50 + if (!getenv("HTTP_COOKIE") || (sizeof(strlen(getenv("HTTP_COOKIE"))) > sizeof(INT))) {
287.51 + /** ERROR | COOKIE DATA DOES NOT EXIST OR IS TOO LONG > REDIRECT TO LOGIN PANEL **/
287.52 + RedirectToLoginPanel();
287.53 +
287.54 + /* OTHERWISE, IF COOKIE DATA DOES EXIST AND IS OF ACCEPTABLE LENGTH... */
287.55 + } else {
287.56 +
287.57 + /* ATTEMPT TO ALLOCATE MEMORY FOR COOKIE VARIABLES */
287.58 + char *cookie;
287.59 + INT cookieLength = strlen(getenv("HTTP_COOKIE"));
287.60 + if ((cookieLength < 1) || !(cookie = malloc(cookieLength + 1))) {
287.61 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR COOKIE DATA! > REDIRECT TO LOGIN PANEL **/
287.62 + RedirectToLoginPanel();
287.63 + } else {
287.64 + char *variableName;
287.65 + if (!(variableName = malloc(cookieLength + 1))) {
287.66 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE NAME > REDIRECT TO LOGIN PANEL **/
287.67 + RedirectToLoginPanel();
287.68 + } else {
287.69 + char *variableValue;
287.70 + if (!(variableValue = malloc(cookieLength + 1))) {
287.71 + /** ERROR | CANNOT ALLOCATE MEMORY FOR COOKIE VARIABLE VALUE > REDIRECT TO LOGIN PANEL **/
287.72 + RedirectToLoginPanel();
287.73 +
287.74 + /* IF SUFFICIENT MEMORY FOR COOKIE VARIABLES... */
287.75 + } else {
287.76 +
287.77 + /* PROCESS COOKIE DATA */
287.78 + char *login, *password;
287.79 + INT c, i;
287.80 + login = password = NULL;
287.81 + c = 0;
287.82 + strcpy(cookie, getenv("HTTP_COOKIE"));
287.83 + while ((c < cookieLength) && (cookie[c] != '\0')) {
287.84 + i = 0;
287.85 + while ((c < cookieLength) && (cookie[c] != '=') && (cookie[c] != '\0')) {
287.86 + variableName[i] = cookie[c];
287.87 + ++c;
287.88 + ++i;
287.89 + }
287.90 + variableName[i] = '\0';
287.91 + ++c;
287.92 + i = 0;
287.93 + while ((c < cookieLength) && (cookie[c] != ';') && (cookie[c] != '\0')) {
287.94 + variableValue[i] = cookie[c];
287.95 + ++c;
287.96 + ++i;
287.97 + }
287.98 + variableValue[i] = '\0';
287.99 + ++c;
287.100 + while ((c < cookieLength) && (cookie[c] == ' ')) {
287.101 + ++c;
287.102 + }
287.103 + if (!login && !strcmp(variableName, "login")) {
287.104 + if ((login = malloc(strlen(variableValue) + 1)) != 0) {
287.105 + strcpy(login, variableValue);
287.106 + }
287.107 + } else if (!password && !strcmp(variableName, "password")) {
287.108 + if ((password = malloc(strlen(variableValue) + 1)) != 0) {
287.109 + strcpy(password, variableValue);
287.110 + }
287.111 + }
287.112 + }
287.113 +
287.114 + /* IF LOGIN VALUE IS MISSING... */
287.115 + if (!login) {
287.116 + /** ERROR | LOGIN VALUE IS MISSING > REDIRECT TO LOGIN PANEL **/
287.117 + RedirectToLoginPanel();
287.118 +
287.119 + /* OTHERWISE, IF LOGIN VALUE EXISTS... */
287.120 + } else {
287.121 +
287.122 + /* VERIFY LOGIN AND PASSWORD */
287.123 + char *directory;
287.124 + if (!(directory = malloc(strlen(login) + strlen(DIRECTORY) + 1))) {
287.125 + /** ERROR | CANNOT ALLOCATE MEMORY FOR DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
287.126 + RedirectToLoginPanel();
287.127 + } else {
287.128 + char *systemDirectory;
287.129 + if (!(systemDirectory = malloc(strlen(login) + strlen(SYSTEM_DIRECTORY) + 1))) {
287.130 + /** ERROR | CANNOT ALLOCATE MEMORY FOR SYSTEM DIRECTORY NAME > REDIRECT TO LOGIN PANEL **/
287.131 + RedirectToLoginPanel();
287.132 + } else {
287.133 + strcpy(directory, DIRECTORY);
287.134 + strcat(directory, login);
287.135 + strcpy(systemDirectory, SYSTEM_DIRECTORY);
287.136 + strcat(systemDirectory, login);
287.137 +
287.138 + /* IF DIRECTORY CAN'T BE ACCESSED... */
287.139 + if (access(directory, F_OK) || access(systemDirectory, F_OK)) {
287.140 + /** ERROR | CANNOT ACCESS DIRECTORY > REDIRECT TO LOGIN PANEL **/
287.141 + RedirectToLoginPanel();
287.142 +
287.143 + /* OTHERWISE, IF DIRECTORY CAN BE ACCESSED... */
287.144 + } else {
287.145 +
287.146 + /* ATTEMPT TO ACCESS PASSWORD FILE */
287.147 + char *passwordFileName;
287.148 + if (!(passwordFileName = malloc(strlen(systemDirectory) + strlen(PASSWORD_FILE_NAME) + 11))) {
287.149 + /** ERROR | CANNOT ALLOCATE MEMORY FOR FILE NAME > REDIRECT TO LOGIN PANEL **/
287.150 + RedirectToLoginPanel();
287.151 + } else {
287.152 + strcpy(passwordFileName, systemDirectory);
287.153 + strcat(passwordFileName, PASSWORD_FILE_NAME);
287.154 +
287.155 + /* IF PASSWORD FILE CAN'T BE ACCESSED... */
287.156 + if (access(passwordFileName, F_OK)) {
287.157 + /** ERROR | CANNOT ACCESS FILE > REDIRECT TO LOGIN PANEL **/
287.158 + RedirectToLoginPanel();
287.159 +
287.160 + /* OTHERWISE, IF PASSWORD FILE CAN BE ACCESSED... */
287.161 + } else {
287.162 +
287.163 + /* ATTEMPT TO OPEN PASSWORD FILE FOR READING */
287.164 + FILE *passwordFile;
287.165 +
287.166 + /* IF PASSWORD FILE CAN'T BE OPENED FOR READING... */
287.167 + if (!(passwordFile = fopen(passwordFileName, "r"))) {
287.168 + /** ERROR | CANNOT READ FILE > REDIRECT TO LOGIN PANEL **/
287.169 + RedirectToLoginPanel();
287.170 +
287.171 + /* OTHERWISE, IF PASSWORD FILE CAN BE OPENED FOR READING... */
287.172 + } else {
287.173 + char *filePassword;
287.174 + if (!(filePassword = malloc(MAX_PASSWORD_SIZE + 1))) {
287.175 + /** ERROR | CANNOT ALLOCATE MEMORY FOR PASSWORD FROM FILE > REDIRECT TO LOGIN PANEL **/
287.176 + RedirectToLoginPanel();
287.177 + } else {
287.178 + char c;
287.179 + i = 0;
287.180 +
287.181 + /* READ PASSWORD FROM PASSWORD FILE */
287.182 + while (((c = fgetc(passwordFile)) != '\n') && (i < MAX_PASSWORD_SIZE)) {
287.183 + filePassword[i] = c;
287.184 + ++i;
287.185 + }
287.186 + filePassword[i] = '\0';
287.187 + fclose(passwordFile);
287.188 +
287.189 + /* IF PASSWORD FAILS COMPARISON... */
287.190 + if (strcmp(filePassword, password)) {
287.191 + /** ERROR | PASSWORD FAILED > REDIRECT TO LOGIN PANEL **/
287.192 + RedirectToLoginPanel();
287.193 +
287.194 + /* OTHERWISE, IF PASSWORD PASSES COMPARISON... */
287.195 + } else {
287.196 +
287.197 + /* LOAD SETTINGS VALUES FROM FILES */
287.198 +
287.199 + /* LOAD COMPONENTS FROM FILES */
287.200 +
287.201 + /* DECLARE AND INITIALIZE QUERY VARIABLES */
287.202 + char *name, *open;
287.203 + name = open = NULL;
287.204 +
287.205 + /* IF QUERY DATA EXISTS AND IS OF ACCEPTABLE LENGTH... */
287.206 + if (getenv("QUERY_STRING") && (sizeof(strlen(getenv("QUERY_STRING"))) <= sizeof(INT))) {
287.207 + char *query;
287.208 + INT queryLength = strlen(getenv("QUERY_STRING"));
287.209 + if ((queryLength < 1) || !(query = malloc(queryLength + 1))) {
287.210 + /** ERROR | CRUCIAL MEMORY ALLOCATION ERROR FOR QUERY DATA! > CONTINUE WITHOUT QUERY **/
287.211 + } else {
287.212 + strcpy(query, getenv("QUERY_STRING"));
287.213 + free(variableName);
287.214 + if (!(variableName = malloc(queryLength + 1))) {
287.215 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE NAME > CONTINUE WITHOUT QUERY **/
287.216 + } else {
287.217 + free(variableValue);
287.218 + if (!(variableValue = malloc(queryLength + 1))) {
287.219 + /** ERROR | CANNOT ALLOCATE MEMORY FOR VARIABLE VALUE > CONTINUE WITHOUT QUERY **/
287.220 +
287.221 + /* IF SUFFICIENT MEMORY FOR QUERY VARIABLES... */
287.222 + } else {
287.223 +
287.224 + /* PROCESS QUERY DATA */
287.225 + INT q = 0;
287.226 + i = 0;
287.227 + while ((q < queryLength) && (query[q] != '\0')) {
287.228 + while ((q < queryLength) && (query[q] != '=') && (query[q] != '\0')) {
287.229 + variableName[i] = query[q];
287.230 + ++q;
287.231 + ++i;
287.232 + }
287.233 + variableName[i] = '\0';
287.234 + ++q;
287.235 + i = 0;
287.236 + while ((query[q] != '&') && (query[q] != '\0')) {
287.237 + variableValue[i] = query[q];
287.238 + ++q;
287.239 + ++i;
287.240 + }
287.241 + variableValue[i] = '\0';
287.242 + if (query[q] != '\0') {
287.243 + ++q;
287.244 + }
287.245 + if (!name && !strcmp(variableName, "name")) {
287.246 + if ((name = malloc(strlen(variableValue) + 1)) != 0) {
287.247 + strcpy(name, variableValue);
287.248 + }
287.249 + } else if (!open && !strcmp(variableName, "open")) {
287.250 + if ((open = malloc(strlen(variableValue) + 1)) != 0) {
287.251 + strcpy(open, variableValue);
287.252 + }
287.253 + }
287.254 + }
287.255 + free(variableValue);
287.256 + variableValue = NULL;
287.257 + }
287.258 + free(variableName);
287.259 + variableName = NULL;
287.260 + }
287.261 + free(query);
287.262 + }
287.263 + }
287.264 +
287.265 + /* OUTPUT GUI COMPONENT(S) BASED ON VARIABLES */
287.266 + if (name) {
287.267 + if (!strcmp(name, "settings")) {
287.268 + OutputSettingsMenu(NULL);
287.269 + } else if (!strcmp(name, "new")) {
287.270 + OutputNewMenu();
287.271 + } else if (!strcmp(name, "open")) {
287.272 + OutputOpenMenu(NULL);
287.273 + } else if (!strcmp(name, "next")) {
287.274 + OutputNextMenu(NULL);
287.275 + } else {
287.276 + RedirectToLoginPanel();
287.277 + }
287.278 + } else if (open) {
287.279 + if (!strcmp(open, "text_file")) {
287.280 + OutputOpenMenu(open);
287.281 + } else {
287.282 + OutputOpenMenu(NULL);
287.283 + }
287.284 + } else {
287.285 + RedirectToLoginPanel();
287.286 + }
287.287 + free(name);
287.288 + free(open);
287.289 + }
287.290 + free(filePassword);
287.291 + }
287.292 + }
287.293 + }
287.294 + free(passwordFileName);
287.295 + }
287.296 + }
287.297 + free(systemDirectory);
287.298 + }
287.299 + free(directory);
287.300 + }
287.301 + free(login);
287.302 + }
287.303 + free(password);
287.304 + free(variableValue);
287.305 + }
287.306 + free(variableName);
287.307 + }
287.308 + free(cookie);
287.309 + }
287.310 + }
287.311 + }
287.312 + return 0;
287.313 +}
287.314 +
287.315 +/* FUNCTION | REDIRECT TO LOGIN PANEL */
287.316 +static void RedirectToLoginPanel(void) {
287.317 + printf("Location: login\r\n\r\n");
287.318 +}
287.319 +
287.320 +static void OutputNewMenu(void) {
287.321 + BeginXHTMLOutput();
287.322 + printf(" class=\"newMenu\">\n");
287.323 + printf(" <!--==================================================-->\n");
287.324 + printf(" <!-- interos Standard Document Header - Markup -->\n");
287.325 + printf(" <!--==================================================-->\n");
287.326 + printf(" <!-- URIs: https://interos.com/menu?name=new -->\n");
287.327 + printf(" <!-- https://www.interos.com/menu?name=new -->\n");
287.328 + printf(" <!-- Title: interos new menu -->\n");
287.329 + printf(" <!-- Author: Brent Angeline -->\n");
287.330 + printf(" <!-- Markup: W3C-Validated XHTML 1.0 Transitional -->\n");
287.331 + printf(" <!--==================================================-->\n");
287.332 + printf(" <head>\n");
287.333 + printf(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");
287.334 + printf(" <meta name=\"title\" content=\"interos new menu\" />\n");
287.335 + printf(" <meta name=\"description\" content=\"new menu for interos\" />\n");
287.336 + printf(" <meta name=\"author\" content=\"Brent Angeline\" />\n");
287.337 + printf(" <meta name=\"copyright