"Lips that speak knowledge are a rare jewel."
- Proverbs 20:15
<%
//--------------------------------------------------------------------
// Microsoft ADO
//
// (c) 1996 Microsoft Corporation. All Rights Reserved.
//
//
//
// ADO constants include file for JavaScript
//
//--------------------------------------------------------------------
//---- CursorTypeEnum Values ----
var adOpenForwardOnly = 0;
var adOpenKeyset = 1;
var adOpenDynamic = 2;
var adOpenStatic = 3;
//---- CursorOptionEnum Values ----
var adHoldRecords = 0x00000100;
var adMovePrevious = 0x00000200;
var adAddNew = 0x01000400;
var adDelete = 0x01000800;
var adUpdate = 0x01008000;
var adBookmark = 0x00002000;
var adApproxPosition = 0x00004000;
var adUpdateBatch = 0x00010000;
var adResync = 0x00020000;
var adNotify = 0x00040000;
//---- LockTypeEnum Values ----
var adLockReadOnly = 1;
var adLockPessimistic = 2;
var adLockOptimistic = 3;
var adLockBatchOptimistic = 4;
//---- ExecuteOptionEnum Values ----
var adRunAsync = 0x00000010;
//---- ObjectStateEnum Values ----
var adStateClosed = 0x00000000;
var adStateOpen = 0x00000001;
var adStateConnecting = 0x00000002;
var adStateExecuting = 0x00000004;
//---- CursorLocationEnum Values ----
var adUseServer = 2;
var adUseClient = 3;
//---- DataTypeEnum Values ----
var adEmpty = 0;
var adTinyInt = 16;
var adSmallInt = 2;
var adInteger = 3;
var adBigInt = 20;
var adUnsignedTinyInt = 17;
var adUnsignedSmallInt = 18;
var adUnsignedInt = 19;
var adUnsignedBigInt = 21;
var adSingle = 4;
var adDouble = 5;
var adCurrency = 6;
var adDecimal = 14;
var adNumeric = 131;
var adBoolean = 11;
var adError = 10;
var adUserDefined = 132;
var adVariant = 12;
var adIDispatch = 9;
var adIUnknown = 13;
var adGUID = 72;
var adDate = 7;
var adDBDate = 133;
var adDBTime = 134;
var adDBTimeStamp = 135;
var adBSTR = 8;
var adChar = 129;
var adVarChar = 200;
var adLongVarChar = 201;
var adWChar = 130;
var adVarWChar = 202;
var adLongVarWChar = 203;
var adBinary = 128;
var adVarBinary = 204;
var adLongVarBinary = 205;
//---- FieldAttributeEnum Values ----
var adFldMayDefer = 0x00000002;
var adFldUpdatable = 0x00000004;
var adFldUnknownUpdatable = 0x00000008;
var adFldFixed = 0x00000010;
var adFldIsNullable = 0x00000020;
var adFldMayBeNull = 0x00000040;
var adFldLong = 0x00000080;
var adFldRowID = 0x00000100;
var adFldRowVersion = 0x00000200;
var adFldCacheDeferred = 0x00001000;
//---- EditModeEnum Values ----
var adEditNone = 0x0000;
var adEditInProgress = 0x0001;
var adEditAdd = 0x0002;
var adEditDelete = 0x0004;
//---- RecordStatusEnum Values ----
var adRecOK = 0x0000000;
var adRecNew = 0x0000001;
var adRecModified = 0x0000002;
var adRecDeleted = 0x0000004;
var adRecUnmodified = 0x0000008;
var adRecInvalid = 0x0000010;
var adRecMultipleChanges = 0x0000040;
var adRecPendingChanges = 0x0000080;
var adRecCanceled = 0x0000100;
var adRecCantRelease = 0x0000400;
var adRecConcurrencyViolation = 0x0000800;
var adRecIntegrityViolation = 0x0001000;
var adRecMaxChangesExceeded = 0x0002000;
var adRecObjectOpen = 0x0004000;
var adRecOutOfMemory = 0x0008000;
var adRecPermissionDenied = 0x0010000;
var adRecSchemaViolation = 0x0020000;
var adRecDBDeleted = 0x0040000;
//---- GetRowsOptionEnum Values ----
var adGetRowsRest = -1;
//---- PositionEnum Values ----
var adPosUnknown = -1;
var adPosBOF = -2;
var adPosEOF = -3;
//---- enum Values ----
var adBookmarkCurrent = 0;
var adBookmarkFirst = 1;
var adBookmarkLast = 2;
//---- MarshalOptionsEnum Values ----
var adMarshalAll = 0;
var adMarshalModifiedOnly = 1;
//---- AffectEnum Values ----
var adAffectCurrent = 1;
var adAffectGroup = 2;
var adAffectAll = 3;
//---- FilterGroupEnum Values ----
var adFilterNone = 0;
var adFilterPendingRecords = 1;
var adFilterAffectedRecords = 2;
var adFilterFetchedRecords = 3;
var adFilterPredicate = 4;
//---- SearchDirection Values ----
var adSearchForward = 0;
var adSearchBackward = 1;
//---- ConnectPromptEnum Values ----
var adPromptAlways = 1;
var adPromptComplete = 2;
var adPromptCompleteRequired = 3;
var adPromptNever = 4;
//---- ConnectModeEnum Values ----
var adModeUnknown = 0;
var adModeRead = 1;
var adModeWrite = 2;
var adModeReadWrite = 3;
var adModeShareDenyRead = 4;
var adModeShareDenyWrite = 8;
var adModeShareExclusive = 0xc;
var adModeShareDenyNone = 0x10;
//---- IsolationLevelEnum Values ----
var adXactUnspecified = 0xffffffff;
var adXactChaos = 0x00000010;
var adXactReadUncommitted = 0x00000100;
var adXactBrowse = 0x00000100;
var adXactCursorStability = 0x00001000;
var adXactReadCommitted = 0x00001000;
var adXactRepeatableRead = 0x00010000;
var adXactSerializable = 0x00100000;
var adXactIsolated = 0x00100000;
//---- XactAttributeEnum Values ----
var adXactCommitRetaining = 0x00020000;
var adXactAbortRetaining = 0x00040000;
//---- PropertyAttributesEnum Values ----
var adPropNotSupported = 0x0000;
var adPropRequired = 0x0001;
var adPropOptional = 0x0002;
var adPropRead = 0x0200;
var adPropWrite = 0x0400;
//---- ErrorValueEnum Values ----
var adErrInvalidArgument = 0xbb9;
var adErrNoCurrentRecord = 0xbcd;
var adErrIllegalOperation = 0xc93;
var adErrInTransaction = 0xcae;
var adErrFeatureNotAvailable = 0xcb3;
var adErrItemNotFound = 0xcc1;
var adErrObjectInCollection = 0xd27;
var adErrObjectNotSet = 0xd5c;
var adErrDataConversion = 0xd5d;
var adErrObjectClosed = 0xe78;
var adErrObjectOpen = 0xe79;
var adErrProviderNotFound = 0xe7a;
var adErrBoundToCommand = 0xe7b;
var adErrInvalidParamInfo = 0xe7c;
var adErrInvalidConnection = 0xe7d;
var adErrStillExecuting = 0xe7f;
var adErrStillConnecting = 0xe81;
//---- ParameterAttributesEnum Values ----
var adParamSigned = 0x0010;
var adParamNullable = 0x0040;
var adParamLong = 0x0080;
//---- ParameterDirectionEnum Values ----
var adParamUnknown = 0x0000;
var adParamInput = 0x0001;
var adParamOutput = 0x0002;
var adParamInputOutput = 0x0003;
var adParamReturnValue = 0x0004;
//---- CommandTypeEnum Values ----
var adCmdUnknown = 0x0008;
var adCmdText = 0x0001;
var adCmdTable = 0x0002;
var adCmdStoredProc = 0x0004;
//---- SchemaEnum Values ----
var adSchemaProviderSpecific = -1;
var adSchemaAsserts = 0;
var adSchemaCatalogs = 1;
var adSchemaCharacterSets = 2;
var adSchemaCollations = 3;
var adSchemaColumns = 4;
var adSchemaCheckConstraints = 5;
var adSchemaConstraintColumnUsage = 6;
var adSchemaConstraintTableUsage = 7;
var adSchemaKeyColumnUsage = 8;
var adSchemaReferentialContraints = 9;
var adSchemaTableConstraints = 10;
var adSchemaColumnsDomainUsage = 11;
var adSchemaIndexes = 12;
var adSchemaColumnPrivileges = 13;
var adSchemaTablePrivileges = 14;
var adSchemaUsagePrivileges = 15;
var adSchemaProcedures = 16;
var adSchemaSchemata = 17;
var adSchemaSQLLanguages = 18;
var adSchemaStatistics = 19;
var adSchemaTables = 20;
var adSchemaTranslations = 21;
var adSchemaProviderTypes = 22;
var adSchemaViews = 23;
var adSchemaViewColumnUsage = 24;
var adSchemaViewTableUsage = 25;
var adSchemaProcedureParameters = 26;
var adSchemaForeignKeys = 27;
var adSchemaPrimaryKeys = 28;
var adSchemaProcedureColumns = 29;
%>
<%
if (database==null){
var database = Server.CreateObject("ADODB.Connection");
database.Open ("Provider=SQLOLEDB;Password=xZKS27n8;User ID=dbo210148120;Initial Catalog=db210148120;Data Source=mssql03.1and1.com");
}
%>
<%
function get_company_id(){
return 1;
}
function get_state_by_abbv(state_code){
var state = database.execute("select * from states where state_code = '"+state_code+"'");
if(!state.EOF)
return(state("state_name").value);
else
return("Unknown");
}
function get_file_content(file_path){
file_full_path = Server.MapPath(file_path);
var fso = new ActiveXObject("Scripting.FileSystemObject");
return(fso.GetFile(file_full_path).OpenAsTextStream(1).ReadAll());
}
function send_email_message_by_subscriber_id(subject, subscriber_id, message_content, content_type){
send_email_message(subject, get_user_name(subscriber_id), get_user_email(subscriber_id), message_content, content_type, subscriber_id);
}
function send_email_message(subject, send_to_name, send_to_address, message_content, content_type, subscriber_id){
if(content_type==null)content_type="html";
if(send_to_address==null || send_to_address<="") return;
//load the template based on the type:
switch(content_type){
case "html":
template_content = get_file_content("/templates/email_template.asp");
break;
}
//replace the template with the new message
full_message_body = template_content.replace("messagebody", message_content);
full_message_body = full_message_body.replace("subscribername", send_to_name);
//send the message
email_object=Server.CreateObject("SMTPsvg.Mailer");
email_object.ContentType = "text/html";
email_object.Subject= subject;
email_object.AddRecipient(send_to_name, send_to_address);
//for debug purposes right now, send a copy to me always
email_object.AddRecipient(send_to_name, "webmaster@paradoxdigital.com");
email_object.FromAddress="support@milemarkersales.com";
email_object.FromName="MileMarker Application";
email_object.BodyText=full_message_body;
email_object.RemoteHost = "127.0.0.1";
email_object.SendMail();
//make a log note about it all
database.execute("insert into subscriber_notification_log (notification_type, sent_to, text_of_alert) VALUES ('"+clean(subject)+"', '"+send_to_address+"', '"+clean(full_message_body)+"')");
}
function show_info_dot(filename, image_size, caption){
if(caption==null)
caption="Click here for more info.";
%>/images/info.gif<% } else { %>/images/info_tiny.gif<% } %>" border=0 align=center title="<%=caption%>">
<%
}
function get_user_name(user_id){
var user_name = database.execute("select user_full_name from users where id = "+user_id);
return(user_name(0).value);
}
function this_year(){
return(new Date().getFullYear());
}
function milliseconds_to_time(milliseconds){
a_week = (1000*60*60*24*7);
a_day = (1000*60*60*24);
a_hour = (1000*60*60);
a_minute = (1000*60);
a_second = (1000);
weeks = Math.floor(milliseconds/a_week);
milliseconds -= weeks*a_week;
days = Math.floor(milliseconds/a_day);
milliseconds -= days*a_day;
hours = Math.floor(milliseconds/a_hour);
milliseconds -= hours*a_hour;
minutes = Math.floor(milliseconds/a_minute);
milliseconds -= minutes*a_minute;
seconds = Math.floor(milliseconds/a_second);
milliseconds -= seconds*a_second;
if (weeks>0){%><%=weeks%> Weeks, <%}
if (days>0){%><%=days%> Days, <%}
if (hours>0){%><%=hours%> Hours, <%}
if (minutes>0){%><%=minutes%> Minutes, <%}
if (seconds>-1 && hours <=0){%>and <%=seconds%> Seconds <%}
}
function color_to_num(color_string){
if (color_string=="green") return(0);
if (color_string=="purple") return(1);
if (color_string=="yellow") return(2);
if (color_string=="red") return(3);
return (0);
}
function clean_event_description(description){
description = String(description);
while (description.indexOf("\n")>=0){
description = description.slice(0, description.indexOf("\n")) + " " + description.slice(description.indexOf("\n")+1, description.length);
}
while (description.indexOf("&green")>=0){
description = description.slice(0, description.indexOf("&green")) + "" + description.slice(description.indexOf("&green")+6, description.length);
}
while (description.indexOf("&yellow")>=0){
description = description.slice(0, description.indexOf("&yellow")) + "" + description.slice(description.indexOf("&yellow")+7, description.length);
}
while (description.indexOf("&red")>=0){
description = description.slice(0, description.indexOf("&red")) + "" + description.slice(description.indexOf("&red")+4, description.length);
}
while (description.indexOf(" ")>=0){
description = description.slice(0, description.indexOf(" ")) + " " + description.slice(description.indexOf(" ")+4, description.length);
}
return (description);
}
function clean(string1) {
var char1, output="";
string1 = String(string1);
for(q=0;q")
output+=">";
else
output+=char1;
}
return output;
}
function return_clean(string1) {
var char1, output="";
for(q=0;string1 !=null && q";
else
output+=char1;
}
return output;
}
%>
<%
function int_to_month(month_int){
var x = new Array("January", "February", "March", "April", "May", "June", "July", "August","September", "October", "November", "December");
return(x[month_int-1]);
}
function DayToText(date_in){
var x = new Array("Sunday", "Monday", "Tuesday");
var x = x.concat("Wednesday","Thursday", "Friday");
var x = x.concat("Saturday");
d = new Date(date_in);
day = d.getDay();
value = new String(x[day]);
return(value);
}
function IntToDay(date_in){
var x = new Array("Sunday", "Monday", "Tuesday");
var x = x.concat("Wednesday","Thursday", "Friday");
var x = x.concat("Saturday");
value = new String(x[date_in]);
return(value);
}
%>
<%
function formatCurrency(data1){
data1 = new String(data1);
if(data1.indexOf(".")>=0){
data1_array = data1.split(".");
if(data1_array[1].length<2)
return(data1_array[0]+"."+data1_array[1]+"0");
else
return(data1_array[0]+"."+data1_array[1]);
} else {
return(data1+".00");
}
}
%>
<%
function validDate(dt)
{
var d1 = Date.parse(dt);
if ( ""+d1 == "NaN")
return false;
return true;
}
function get_user_email(user_id){
if(user_id==null)user_id=Session("subscriber_id");
var user_info = database.execute("select email_address from subscribers where id = "+user_id);
return(user_info(0).value);
}
function DateStr(now)
{
var nows= now.getMonth()+1+"/"+now.getDate()+"/"+now.getFullYear();
return(nows);
}
function now()
{
var now = new Date();
var nows= now.getMonth()+1+"/"+now.getDate()+"/"+now.getFullYear()+" " +
now.getHours()+":"+now.getMinutes()+":"+now.getSeconds();
return(nows);
}
function today()
{
var now = new Date();
var nows= now.getMonth()+1+"/"+now.getDate()+"/"+now.getFullYear();
return(nows);
}
function first_day_of_week(today)
{
today = today ? today : new Date();
var ret =new Date(Number(today)-(86400000*(today.getDay())));
return ret;
}
function last_day_of_week(fd)
{
fd = (fd) ? first_day_of_week(fd): first_day_of_week(null);
var ret =new Date(Number(fd) + (86400000* 7) );
return ret;
}
%>
<%
function date_defaulter(form_name, start_field_name, end_field_name){
today = new Date();
%>| <%
segment_name = "Month to Date";
this_segment_start = today.getMonth()+1+"/1/"+today.getFullYear();
this_segment_end = today.getMonth()+1+"/"+today.getDate()+"/"+today.getFullYear();
%><%=segment_name%> | <%
segment_name = "Week to Date";
this_segment_start =new Date(Number(today)-(86400000*(today.getDay())));
this_segment_start = this_segment_start.getMonth()+1+"/"+this_segment_start.getDate()+"/"+this_segment_start.getFullYear();
this_segment_end = today.getMonth()+1+"/"+today.getDate()+"/"+today.getFullYear();
%><%=segment_name%> | <%
segment_name = "Year to Date";
this_segment_start = "1/1/"+today.getFullYear();
this_segment_end = today.getMonth()+1+"/"+today.getDate()+"/"+today.getFullYear();
%><%=segment_name%> | <%
segment_name = "Quarter to Date";
if(today.getMonth()+1 >=1 && today.getMonth()+1 < 4 )
this_segment_start = "1/1/"+today.getFullYear();
if(today.getMonth()+1 >=4 && today.getMonth()+1 < 7 )
this_segment_start = "4/1/"+today.getFullYear();
if(today.getMonth()+1 >=7 && today.getMonth()+1 < 10 )
this_segment_start = "7/1/"+today.getFullYear();
if(today.getMonth()+1 >=10 && today.getMonth()+1 <= 12 )
this_segment_start = "10/1/"+today.getFullYear();
this_segment_end = today.getMonth()+1+"/"+today.getDate()+"/"+today.getFullYear();
%><%=segment_name%> | <%
segment_name = "Last Year";
this_segment_start = "1/1/"+(today.getFullYear()-1);
this_segment_end = "12/31/"+(today.getFullYear()-1);
%><%=segment_name%> | <%
segment_name = "Last Week";
this_segment_start = new Date(Number(today)-(86400000*(today.getDay()))-(86400000*7));
this_segment_start = this_segment_start.getMonth()+1+"/"+this_segment_start.getDate()+"/"+this_segment_start.getFullYear();
date_temp = new Date(this_segment_start);
this_segment_end = new Date(Number(date_temp)+(86400000*7));
this_segment_end = this_segment_end.getMonth()+1+"/"+this_segment_end.getDate()+"/"+this_segment_end.getFullYear();
%><%=segment_name%> | <%
segment_name = "Last Month";
if(today.getMonth()==0)
this_segment_start = "12/1/"+(today.getFullYear()-1);
else
this_segment_start = today.getMonth()+"/1/"+today.getFullYear();
this_segment_end = new Date(this_segment_start);
if(today.getMonth()==0)
this_segment_end = "12/31/"+(this_segment_end.getFullYear());
else {
this_segment_end = this_segment_end.getMonth()+2+"/"+this_segment_end.getDate()+"/"+this_segment_end.getFullYear();
this_segment_end = new Date(this_segment_end);
this_segment_end = new Date(Number(this_segment_end) - 86400000);
this_segment_end = this_segment_end.getMonth()+1+"/"+this_segment_end.getDate()+"/"+this_segment_end.getFullYear();
}
%><%=segment_name%> | <%
}
%>
<%
var SecurityPolicy = {
ignoredFields: ['OVRAW', 'OVKEY'], //these are fields from the "ovation" search engine that often contain HTML & escape chars
lockoutDays: 30,
alertEmailFrom: "errors@rarejewelmagazine.org",
alertEmailSubject: "RareJewel Attack",
alertEmailTo: "webmaster@paradoxdigital.com"
};
var Security = {
check: function(level){
if(this.isUploadPage()) return;
this.ipAddr = String(Request.ServerVariables("REMOTE_ADDR"));
this.siteName = String(Request.ServerVariables("SERVER_NAME"));
this.assureNotLockedOut();
if(!level) this.level = "lockout"; else this.level = level;
this.url = String(Request.ServerVariables("URL"));
this.formData = String(Request.Form);
this.queryString = String(Request.QueryString);
if(this.url.indexOf("/admin_tools/")>=0) this.level = "warning"; //admin_tools section is more secure, warn first
this.checkFields(Request.Form);
this.checkFields(Request.QueryString);
},
isIgnoredField: function(fieldName){
fieldName = String(fieldName).toUpperCase();
for(i=0;i]*?javascript:|src\\W*?=|[a-zA-Z0-9]*?;","ig");
var sqlInjectionRegex = new RegExp("@@|SELECT.*?FROM|sp_|HAVING","ig");
var offenseType = "unknown";
var attackFound = false;
if(scriptInjectionRegex.test(fieldValue)){
attackFound = true;
offenseType = "XSS Attack on field ["+fieldName+"]";
} else if (sqlInjectionRegex.test(fieldValue)){
attackFound = true;
offenseType = "SQL Injection Attack on field ["+fieldName+"]";
}
if(attackFound){
this.logAttack(offenseType);
this.sendWarning(offenseType, fieldName, fieldValue, (attackFound && this.level=="lockout"));
}
if(attackFound && this.level=="lockout") this.lockoutIPAddress(offenseType);
},
sendWarning: function(offenseType, offenseField, offenseValue, wasLockedOut){
},
now: function(){
var curDate = new Date();
var dateString= curDate.getMonth()+1+"/"+curDate.getDate()+"/"+curDate.getFullYear()+" " +curDate.toLocaleTimeString();
return(dateString);
},
lockoutIPAddress: function (offenseType){
this.terminateResponse();
},
logAttack: function(offenseType){
},
terminateResponse: function(){
%>Attack detected, access denied.<%
Session.Abandon();
Response.End();
}
}
%>
<% Security.check(); %>
<% article_categories = database.execute("select distinct(category) from articles where category > '' and show = 1 and company_id = "+get_company_id()); %>
<% while (!article_categories.EOF){ %>
<%=article_categories(0)%>
<% article_groupings = database.execute("select distinct(grouping) from articles where grouping <> 'None' and category = '"+article_categories(0)+"' and show = 1 and company_id = "+get_company_id()+" order by grouping desc"); %>
<% ungrouped_articles = database.execute("select * from articles where grouping = 'None' and category = '"+article_categories(0)+"' and show = 1 and company_id = "+get_company_id()+" order by added_date desc"); %>