<%Option Explicit 'Version 2.5 data 03.01.2003 'Version 2.5 data 08.05.2003 Add the counter of articles 'Version 2.5 data 11.03.2005 Searching method modified 'Version 2.5 data 11.03.2005 changes Copyringt 2002 - 2007 Response.Buffer=True Dim bUser Dim bAdmin Dim bAgent Dim bAuthor Dim sAction Dim sRemoteAddress Dim sCookie Dim sThisASP Dim sTimeStamp Dim sServerName Dim sScriptName Dim sUserName Dim sPassWord Dim sLanguage Dim sCategory Dim sUsersGroup Dim sUserID Dim sFullName Dim sLink1 Dim sLink2 Dim sTitle Dim sDescription Dim sContent Dim sPublicationDate Dim sEmail Dim sStatus Dim sID Dim sNewsString Dim sUsersString Dim sPageCount Dim sPageCurrent Dim sPreviousPage Dim sPage Dim sNextPage Dim sHeight Dim sWidth Dim sSQL Dim NewsCN Dim NewsRS Dim UsersCN Dim UsersRS Dim sCurrentPage Dim sCurrentUserName Dim sCurrentUserID Dim sCurrentFullName Dim sRecordsShown Dim sStyle Dim sDataPath Dim sCalendar Dim sImgLoc Dim sSearchString Dim sType Dim sDateFrom Dim sDateTo Dim I Dim sNewsCopyright Dim sMailerCopyright Const sCookieName ="BELGIANSHOP" Const sMailerTitle ="BelgianShop" sMailerCopyright ="Copyright © BelgianShop, 2001 - " & Year(Now) Const sNewsMailAddress = "info@e-malt.com" Const sNewsTitle = "BelgianShop news " sNewsCopyright = sMailerCopyright Const ColorTonB ="#000080" Const ColorTonL ="#fffff0" Const ColorTon0 ="#00007d" '#00007d Const ColorTon1 ="#4040c0" Const ColorTon2 ="#4040b0" Const sPageSize = 10 Const sPageSizeAdmin = 100 Const sPageSizeBrief = 50 Const ImagesDirectory = "/News/Images/" Const StyleFileName = "/News/BShopNews.css" Const UsersDataBaseName = "/BShopBase/BShopUsers.mdb" Const NewsDataBaseName = "/BShopBase/BShopNews.mdb" 'include ADO CursorTypeEnum Values Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 'include ADO LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 'include ADO CommandTypeEnum Values Const adCmdUnknown = &H0008 Const adCmdText = &H0001 Const adCmdTable = &H0002 Const adCmdStoredProc = &H0004 Const adCmdFile = &H0100 Const adCmdTableDirect = &H0200 'include ADO ObjectStateEnum Values Const adStateClosed = &H00000000 Const adStateOpen = &H00000001 Const adStateConnecting = &H00000002 Const adStateExecuting = &H00000004 Const adStateFetching = &H00000008 'include ADO RecordStatusEnum Values Const adRecOK = &H0000000 Const adRecNew = &H0000001 Const adRecModified = &H0000002 Const adRecDeleted = &H0000004 Const adRecUnmodified = &H0000008 Const adRecInvalid = &H0000010 Const adRecMultipleChanges = &H0000040 Const adRecPendingChanges = &H0000080 Const adRecCanceled = &H0000100 Const adRecCantRelease = &H0000400 Const adRecConcurrencyViolation = &H0000800 Const adRecIntegrityViolation = &H0001000 Const adRecMaxChangesExceeded = &H0002000 Const adRecObjectOpen = &H0004000 Const adRecOutOfMemory = &H0008000 Const adRecPermissionDenied = &H0010000 Const adRecSchemaViolation = &H0020000 Const adRecDBDeleted = &H0040000 '____________________________________________________ OpenUsersDataBase Sub OpenUsersDataBase(TheSQL,PageSize) Dim ConStr, Path Path = Server.MapPath(UsersDataBaseName) ConStr = "PROVIDER=MSDASQL;" ConStr = ConStr & "DBQ=" & Path & ";" ConStr = ConStr & "Driver={Microsoft Access Driver (*.mdb)};" ConStr = ConStr & "UID=Admin;PWD=;" Set UsersCN = Server.CreateObject("ADODB.Connection") UsersCN.Open ConStr Set UsersRS = Server.CreateObject("ADODB.Recordset") UsersRS.PageSize = PageSize UsersRS.CacheSize = PageSize UsersRS.Open TheSQL, UsersCN, adOpenKeyset, adLockPessimistic, adCmdText End Sub '____________________________________________________ CloseConfigDataBase Sub CloseUsersDataBase UsersRS.Close UsersCN.Close Set UsersRS=Nothing Set UsersCN=Nothing End Sub '____________________________________________________ OpenNewsDataBase Sub OpenNewsDataBase(TheSQL,PageSize) Dim ConStr, Path Path = Server.MapPath( NewsDataBaseName) ConStr = "PROVIDER=MSDASQL;" ConStr = ConStr & "DBQ=" & Path & ";" ConStr = ConStr & "Driver={Microsoft Access Driver (*.mdb)};" ConStr = ConStr & "UID=Admin;PWD=;" Set NewsCN = Server.CreateObject("ADODB.Connection") NewsCN.Open ConStr Set NewsRS = Server.CreateObject("ADODB.Recordset") NewsRS.PageSize = PageSize NewsRS.CacheSize = PageSize NewsRS.Open TheSQL, NewsCN, adOpenKeyset, adLockOptimistic, adCmdText End Sub '____________________________________________________ CloseConfigDataBase Sub CloseNewsDataBase NewsRS.Close NewsCN.Close Set NewsRS=Nothing Set NewsCN=Nothing End Sub '___________________________________________________________________ GetParam Function GetParam(ParameterName) Dim Tmp Tmp=Request.Form(ParameterName) If Trim(Tmp)="" Then Tmp= Request.QueryString(ParameterName) GetParam=Trim(Tmp) End Function '___________________________________________________________________ DateFormat Function DateFormat(FullDateAndTime,Format) Dim DD, MM, YY, YYYY, HH, NN, SS, MNames, D0, R, MN If IsDate(FullDateAndTime) Then D0=CDate(FullDateAndTime) Else DateFormat=FullDateAndTime Exit Function End If DD = Right("0" & Day(D0),2) MM = Right("0" & Month(D0),2) YYYY = Year(D0) YY = Right(YYYY,2) HH = Right("0" & Hour(D0),2) NN = Right("0" & Minute(D0),2) SS = Right("0" & Second(D0),2) MNames=Split("January,February,March,April,May,June,July,August,September,October,November,December",",") MN = MNames(Month(D0)-1) R = Replace(Format,"MN:3",Left(MN,3)) R = Replace(R,"MN",MN) R = Replace(R,"MM",MM) R = Replace(R,"DD",DD) R = Replace(R,"YYYY",YYYY) R = Replace(R,"YY",YY) R = Replace(R,"HH",HH) R = Replace(R,"NN",NN) R = Replace(R,"SS",SS) DateFormat=R End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 IsMydate ' ' Function: IsMydate ' Destination: To check date format in accordance with format: DD.MM.YYYY ' Parameter: StringAsMyDateFormat ' Return: True or False ' Function IsMyDate(StringAsMyDateFormat) Dim DD,MM,YYYY,A,Tmp,N,R If Trim(StringAsMyDateFormat)="" Then IsMydate=False Exit Function End If Tmp=Replace(StringAsMyDateFormat," "," ") Tmp=Replace(Tmp,"\",";") Tmp=Replace(Tmp,"-",";") Tmp=Replace(Tmp,"|",";") Tmp=Replace(Tmp,",",";") Tmp=Replace(Tmp,".",";") Tmp=Replace(Tmp,"/",";") A=Split(Tmp,";") N=UBound(A) If N<>2 Then IsMydate=False Exit Function End If For N=LBound(A) To UBound(A) If IsNumeric(A(N))=False Then IsMydate=False Exit Function End If Next R = True DD = CInt(A(0)) MM = CInt(A(1)) YYYY = CInt(A(2)) If DD<1 OR DD>31 Then R=False If MM<1 OR MM>12 Then R=False If YYYY<1000 OR YYYY>9000 Then R=False If R=True Then IsMydate=True Else IsMydate=False End If End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 MyDate2Date ' ' Function: MyDate2Date ' Goal: Conver the date from local format: dd.mm.yyyy ' into Access format MM/DD/YYYY ' Parameter: StringAsMyDateFormat ( date in format dd.mm.yyyy) ' Return: date ' Function MyDate2Date(StringAsMyDateFormat) Dim DD,MM,YYYY,A,Tmp,N,R Tmp=Replace(StringAsMyDateFormat," "," ") Tmp=Replace(Tmp,"\",";") Tmp=Replace(Tmp,"-",";") Tmp=Replace(Tmp,"|",";") Tmp=Replace(Tmp,",",";") Tmp=Replace(Tmp,".",";") Tmp=Replace(Tmp,"/",";") A=Split(Tmp,";") N=UBound(A) If N<>2 Then MyDate2Date=False Exit Function End If For N=LBound(A) To UBound(A) If IsNumeric(A(N))=False Then MyDate2Date = False Exit Function End If Next R=True DD=CInt(A(0)):MM=CInt(A(1)):YYYY=CInt(A(2)) If DD<1 OR DD>31 Then R=False If MM<1 OR MM>12 Then R=False If YYYY<1000 OR YYYY>9000 Then R=False If R=True Then MyDate2Date=DateSerial(YYYY,MM,DD) Else MyDate2Date=False End If End Function '____________________________________________________GetText Function GetTextFile(FileName) Dim loc Dim objFSO Dim txtFIL loc = Server.MapPath(FileName) Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set txtFIL = objFSO.OpenTextFile( loc, 1, False ) GetTextFile = txtFIL.ReadAll() txtFIL.Close Set objFSO = Nothing Set txtFIL = Nothing End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧Apletize 'Remove all significaly characters from string Function Apletize(TheString,TheLenght) Dim Rez Rez=Replace(TheString,"'","^") Rez=Replace(Rez,CHR(13) & CHR(10),"\n") Rez=Replace(Rez,"%","\%") Rez=Replace(Rez,"""","\""") Apletize=Left(Rez,TheLenght) End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧AfterWord Function AfterWord(N,TheString) Dim Index Index=0 For I=1 To Len(TheString) If Mid(TheString,I,1)=" " Then Index=Index+1 If Index=N Then AfterWord=I Exit Function End If Next AfterWord=I End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 Function MultipleLIKE(RefList,RefFieldName) Dim Ar, R, I If Trim(RefList) = "" Then MultipleLike = R Exit Function End If If InStr(1, RefList, "All") > 0 Then R = "(" & RefFieldName & "<>'x')" MultipleCountries = R Exit Function End If If InStr(1, RefList, ",") > 0 Then Ar = Split(RefList, ",") R = "(" For I = LBound(Ar) To UBound(Ar) R = R & "(" & RefFieldName & " LIKE '%" & Trim(Ar(I)) & "%')" If I < UBound(Ar) Then R = R & " OR " Next R = R & ")" Else R = "(" & RefFieldName & " LIKE '%" & RefList & "%')" End If MultipleLike = R End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧SendStructure Sub SendStructure SendHeader "Database structure" sSQL = "SELECT * FROM Documents" Set NewsCN = Server.CreateObject("ADODB.Connection") NewsCN.Open sNewsString Set NewsRS = Server.CreateObject("ADODB.Recordset") NewsRS.Open sSQL, NewsCN, adOpenStatic, adLockReadOnly, adCmdText Send "" Send "" For i = 0 To NewsRS.Fields.Count - 1 Send "" Next Send "
Field Nr.NameTypeDefinedSizePrecisionNumericScale
" & i Send "" & NewsRS.Fields(i).Name Send "" & NewsRS.Fields(i).Type Send "" & NewsRS.Fields(i).DefinedSize Send "" & NewsRS.Fields(i).Precision Send "" & NewsRS.Fields(i).NumericScale Send "
" NewsRS.Close Set NewsRS = Nothing NewsCN.Close Set NewsCN = Nothing SendFooter End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 NewKey Function NewKey Dim Counter Dim TempString Randomize() TempString="" For Counter = 1 To 50 TempString = TempString & Chr(65+Int((26 * Rnd))) Next NewKey = Left(TempString, 40) End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 ExpireAfterMinute Function ExpireAfterMinute(ExpiredMinutes) Dim dd,mm,yy,hh,nn,ss,MName,DName,Wday Dim CurrentTime,ExpireTime CurrentTime=Now ExpireTime=DateAdd("n",ExpiredMinutes,CurrentTime) dd=Day(ExpireTime) mm=Month(ExpireTime) yy=Year(ExpireTime) hh=Hour(ExpireTime) nn=Minute(ExpireTime) ss=Second(ExpireTime) Select Case mm Case 1 MName = "Jan" Case 2 MName = "Feb" Case 3 MName = "Mar" Case 4 MName = "Apr" Case 5 MName = "May" Case 6 MName = "Jun" Case 7 MName = "Jul" Case 8 MName = "Aug" Case 9 MName = "Sep" Case 10 MName = "Oct" Case 11 MName = "Nov" Case 12 MName = "Dec" End Select Wday=Weekday(ExpireTime) Select Case Wday Case 1 DName="Sunday" Case 2 DName="Monday" Case 3 DName="Tuesday" Case 4 DName="Wednesday" Case 5 DName="Thursday" Case 6 DName="Friday" Case 7 DName="Saturday" End Select ExpireAfterMinute=DName & ", "& dd & "-" & MName & "-" & yy & " " & hh & ":" & nn & ":" & ss & " GMT" 'Friday, 31-Dec-2002 23:59:59 GMT End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧Links Function Links(Url1,Url2) Dim Res If Trim(Url1)<>"" Then Res="" & Url1 & " " If Trim(Url2)<>"" Then Res=Res & "" & Url2 & " " Links=Res End Function Function MailTo(MailAddress) MailTo="" & MailAddress & "" End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧IsEmail Function IsEmail(byVal mailaddress) Dim tmp, x, y, bErr, tmp2, objReg Dim objMatch, z, i bErr = False tmp = Trim( mailaddress ) tmp = CStr( mailaddress ) ' minimum 6 characters... if Len(tmp) < 6 then IsEmail = False Exit Function end if ' need an @ but only 1 is allowed If instr(tmp, "@") then x = instr(tmp, "@") y = instr(x + 1, tmp, "@") On Error Resume Next y = CLng(y) If Err Then bErr = True Else bErr = False On Error GoTo 0 If bErr Then IsEmail = False Exit Function End If if y <> 0 then IsEmail = False Exit Function end if Else IsEmail = False Exit Function End If ' needs to have at least 2 characters (letters) after the . (dot) z = InStr( tmp, "." ) tmp2 = Right( tmp, Len(tmp) - z ) Set objReg = New RegExp With objReg .Global = True .IgnoreCase = True .Pattern = "[A-Z][A-Z]" Set objMatch = .Execute(tmp2) End With If objMatch.Count = 0 then IsEmail = False Exit Function End If Set objMatch = Nothing Set objReg = Nothing ' check for illegal characters For i = 1 to Len(tmp) tmp2 = Mid( tmp, i, 1 ) Select Case tmp2 Case "(", ")", ";", ":", ",", "/", "'", chr(34), _ "~", "`", "!", "#", "$", "%", "^", "&", "*", _ "+", "=", "[", "]", "{", "}", "|", "\", "?", _ " ", "<", ">" IsEmail = False Exit Function Case Else End Select Next ' if an address makes it through, it's an email address IsEmail = True End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧delDelimiter Function DelImportantChars(str) Dim Rez Rez=str & " " Rez=Replace(Rez,vbCrLf,"
") Rez=Replace(Rez,vbLf," ") Rez=Replace(Rez,vbCr," ") DelImportantChars=Rez End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧delDelimiter Function DelBreaks(str) Dim Rez Rez=str & " " Rez=Replace(Rez,vbCrLf," ") Rez=Replace(Rez,vbLf," ") Rez=Replace(Rez,vbCr," ") Rez=Replace(Rez," "," ") Rez=Replace(Rez," "," ") Rez=Replace(Rez," "," ") DelBreaks=Rez End Function '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 MsgError Sub MsgError(Title, Text) SendHeader Title Send "
" Send "" Send Text Send "
" SendFooter End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 MsgInfo Sub MsgInfo(Title,Text) SendHeader Title Send "
" Send "" Send Text Send "" Send "
" SendFooter End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 FormLogIn Sub LogInForm(RefMessage) SendHeader "Log In" Send "
" Send "
" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "
UserName
PassWord
" Send "" Send "" Send "
" Send RefMessage Send "
" Send "
" Send "
" SendFooter End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧LogIn() Sub LogIn(RefUserName,RefPassWord) Dim SetKeyRez OpenUsersDataBase "SELECT * FROM Users WHERE UserName='" & RefUserName & "' AND PassWord='" & RefPassWord & "';",10 If UsersRS.EOF=True AND UsersRS.BOF=True Then MsgError "Access denied", "Access denied!
User with specified name and/or password not found." Exit Sub End If If UCase(UsersRS.Fields("Status").Value)<>"ACTIVATED" Then MsgError "Access denied", "Access denied!
User not have status ""Activated""." Exit Sub End If If UsersRS.Fields("IsAdmin").Value<>True Then MsgError "Admin denied", "Amin denied!
Specified user is not an administrator." Exit Sub End If SetKeyRez = NewKey UsersRS.Fields("SKey").Value = SetKeyRez UsersRS.Fields("LoginTimeStamp").Value = Now UsersRS.Update Send "" MsgInfo "LogIn Ok","LogIn Ok! Please select any commands from menu!" End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧LogIn() Sub LogOut(RefKey) Dim SetKeyRez OpenUsersDataBase "SELECT * FROM Users WHERE SKey='" & RefKey & "';",10 If UsersRS.EOF=True AND UsersRS.BOF=True Then MsgError "Uknown key", "User with identification key not found.
Please make log in!" Exit Sub End If SetKeyRez = NewKey UsersRS.Fields("SKey").Value = SetKeyRez UsersRS.Update CloseUsersDataBase MsgInfo "Log out Ok","Log out Ok!
Registration data was deleted from database.
Thanks!" End Sub '____________________________________________________SendHeader Sub SendHeader(TitleMessage) Dim Sp If GetParam("Menu")="Left" Then Sp = "colspan='2'" Send "" Send "" & sNewsTitle & " - " & TitleMessage & "" Send sStyle Send "" & vbCrLf Send "" Send vbCrLf Send "
" Send "
" Send "" Send "" If GetParam("Menu")="Left" Then Send "" End If Send "" Send "" Send " " Send "
" Send "" Send "" Send "" Send "" sEND "
" Send "

" & sNewsTitle & " - " & TitleMessage & "

" Send "" & _ "Go back! " & _ "" & _ "News start menu!" Send "
" Send "
" & LeftMenu & "" Send "
" Send vbCrLf End Sub '------------------------------------------------------------LeftMenu Function LeftMenu Dim R R = "
" R = R & "" & vbNewLine R = R & "
" & vbNewLine R = R & "" & vbNewLine R = R & "BelgianShop.com enter to shop" & vbNewLine R = R & "" & vbNewLine R = R & "BelgianShop news" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Abbey" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Trappists" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Lambic and Fruit" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: White" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Pils" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Special" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Season" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: New Beers" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Beers: Glases" & vbNewLine R = R & "" & vbNewLine R = R & "Stephan Beaumont Pack" & vbNewLine R = R & "" & vbNewLine R = R & "Beer Gifts" & vbNewLine R = R & "" & vbNewLine R = R & "Belgian Chocolate" & vbNewLine R = R & "" & vbNewLine R = R & "Gift certificate" & vbNewLine R = R & "" & vbNewLine R = R & "To subscribe to our free WeekLetter" & vbNewLine R = R & "" & vbNewLine R = R & "To unsubscribe from our submission" & vbNewLine R = R & "
" & vbNewLine LeftMenu = R End Function '____________________________________________________Send Sub Send(OutString) Response.Write OutString & vbCrLf End Sub Sub JSWrite (OutJSString) Response.Write "document.write(""" & OutJSString & """);" & vbCrLf End Sub '____________________________________________________SendFooter Sub SendFooter Dim Sp If GetParam("Menu")="Left" Then Sp = "colspan='2'" Send vbCrLf Send "
" Send "
" Send "" Send " " Send " " Send " " Send "
" Send "

" & sNewsCopyright Send "

" Send "
" Send "
" Send "" Send "" End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 CkPermissions Function CkPermissions(RefCokie,Rights) Dim CurrentTime, LoginTime, IsUser, IsAdmin, IsAuthor OpenUsersDataBase "SELECT * FROM Users WHERE SKey='" & RefCokie & "';", 1 If UsersRS.EOF = True And UsersRS.BOF = True Then CkPermissions = False Exit Function Else LoginTime = UsersRS.Fields("LoginTimeStamp").Value sCurrentUserName = UsersRS.Fields("UserName").Value sCurrentUserID = UsersRS.Fields("ID").Value sCurrentFullName = UsersRS.Fields("FullName").Value IsUser = UsersRS.Fields("IsUser").Value IsAuthor = UsersRS.Fields("IsAuthor").Value IsAdmin = UsersRS.Fields("IsAdmin").Value CloseUsersDataBase End If If IsAdmin=True AND Rights="Admin" Then CkPermissions = True Exit Function ElseIf IsAuthor=True AND Rights="Author" Then CkPermissions = True Exit Function ElseIf IsUser=True AND Rights="User" Then CkPermissions = True Exit Function End If CurrentTime = Now If DateDiff("n",CurrentTime,LoginTime)>1 Then CkPermissions=False Exit Function End If CkPermissions=False End Function '____________________________________________________DocumentVerify Function DocumentVerify Dim Res Res="" If Trim(sCategory)="" Then Res=Res & "
  • It is necessary to type a name of a category," & _ " where to place the ready document. We recommend to click the name" & _ """Category"" and receive the list already of known categories!
  • " End If If Len(sContent)<2 Then Res=Res & "
  • ""Document complete content !""." & _ " Describe this field in more details, please!
  • " End If If IsMyDate(sPublicationDate)<> True Then Res=Res & "
  • ""Publication date !""." & _ " The date format error please use format ""DD.MM.YYYY""!
  • " End If If (Trim(sEmail) <> "") And (Not iSEmail(sEmail)) Then Res=Res & "
  • Not valid a e-mail address. Enter other, please!
  • " End If If (Trim(sLink1) <> "") And LCase(Left(sLink1,5))<>"http:" Then Res=Res & "
  • It is necessary that the ""links"" began by the letters ""http:"" Retype it, please!
  • " End If If (Trim(sLink2) <> "") And LCase(Left(sLink2,5))<>"http:" Then Res=Res & "
  • It is necessary that the ""links"" began by the letters ""http:"" Retype it, please!
  • " End If If Res<>"" Then DocumentVerify="" & _ "

    Detected ERRORS

    "& _ ""& _ "
    "& _ "
      " & Res & "
    "& _ "
    " Else DocumentVerify=True End If End Function '____________________________________________________ PublishEvent 'Recived data from publisher check and add to database if ok. Sub DocumentSave(RefDocumentID,SaveAsNew) Dim CheckData CheckData=DocumentVerify If CheckData<>True Then MsgError "Errors", CheckData Exit Sub End If If SaveAsNew = True Then sSQL = "SELECT * FROM Documents ORDER BY ID DESC;" Else sSQL = "SELECT * FROM Documents WHERE ID=" & RefDocumentID & " ORDER BY ID;" End If OpenNewsDataBase sSQL,1 If SaveAsNew = True Then NewsRS.AddNew End If NewsRS.Fields("Status").Value ="Public" NewsRS.Fields("AuthorName").Value =sUserName & " " NewsRS.Fields("Description").Value =sDescription & " " NewsRS.Fields("Content").Value =sContent & " " NewsRS.Fields("Title").Value =sTitle & " " NewsRS.Fields("Link1").Value =sLink1 & " " NewsRS.Fields("Link2").Value =sLink2 & " " NewsRS.Fields("Language").Value =sLanguage & " " NewsRS.Fields("Email").Value =sEmail & " " NewsRS.Fields("Category").Value =sCategory & " " NewsRS.Fields("TimeStamp").Value =MyDate2Date(sPublicationDate) NewsRS.Update If SaveAsNew = True Then NewsRS.Requery RefDocumentID =NewsRS.Fields("ID") End If CloseNewsDataBase If SaveAsNew = True Then MsgInfo "Publish article","Article was published under ID " & RefDocumentID Else MsgInfo "Update article","Article under ID " & RefDocumentID & " was updated!" End If End Sub '____________________________________________________ DocumentStatusSet Sub DocumentStatusSet(RefID, RefStatus) If IsNumeric(RefID)=False Then MsgInfo "Error ID", "Wrong ID, please verify article ID." Exit Sub End If sSQL = "SELECT * FROM Documents WHERE ID=" & RefID & ";" OpenNewsDataBase sSQL, 1 If NewsRS.BOF And NewsRS.EOF Then MsgInfo "Record not found", "Record under code " & sID & " not found." Exit Sub End If NewsRS.Fields("Status").Value = RefStatus NewsRS.Update CloseNewsDataBase MsgInfo "Set status","Status for article under ID " & RefID & " set as " & RefStatus End Sub '覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧ClearDeleted Sub DocumentDelete(RefID) sSQL = "DELETE * FROM Documents WHERE ID="& RefID &";" OpenNewsDataBase sSQL, 1 MsgInfo "Delete article","Article under ID " & RefID & " was deleted from database!" End Sub '____________________________________________________SelectorCategory Function SelectorCategory(SelectedItem) Dim R, S, C, Cnt sSQL = "SELECT Count(*) AS Cnt, Category FROM Documents GROUP BY Category;" OpenNewsDataBase sSQL,100 If NewsRS.EOF=True AND NewsRS.BOF=True Then SelectorCategories="Empty Category fields" Exit Function End If R ="" R = R & "" SelectorCategory = R & vbNewLine CloseNewsDataBase End Function '____________________________________________________DocumentEditor Sub DocumentEditor(RefID,OpenBlankEditor) If OpenBlankEditor <> True Then sSQL = "SELECT * FROM Documents WHERE ID=" & sID & ";" OpenNewsDataBase sSQL, 1 If NewsRS.BOF And NewsRS.EOF Then MsgError "Record not found", "Record under code " & sID & " not found." Exit Sub End If sDescription =NewsRS.Fields("Description") sContent =NewsRS.Fields("Content") sTitle =NewsRS.Fields("Title") sLink1 =NewsRS.Fields("Link1") sLink2 =NewsRS.Fields("Link2") sLanguage =NewsRS.Fields("Language") sEmail =NewsRS.Fields("Email") sTimeStamp =NewsRS.Fields("Timestamp") sCategory =NewsRS.Fields("Category") CloseNewsDataBase End If SendHeader "Editor, article: " & sTitle Send "
    " Send "" Send "" Send "" Send " " Send "
    " Send "
    " Send "
    " Send "
    " Send " " Send " " Send " " Send " " Send " " Send " " Send "
    Category !
    " Send " " & SelectorCategory(sCategory) & "
    Language!
    Pub. date !
    " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send " " Send "
    " Send " Document title (will be displayed by navigator) !" Send "
    " Send " " Send "
    " Send " Brief document description (head lines, 15-20 words about the document)!" Send "
    " Send " " Send "
    " Send " Document complete content!" Send "
    " Send " " Send "
    " Send " Author's e-mail!" Send "
    " Send " " Send "
    " Send " Link(s), URL to other documents (not required)." Send "
    " Send " " Send "
    " Send " " Send "
    " Send " " If OpenBlankEditor = False Then Send " " Send " " Send " " Else Send " " Send " " End If Send "
    " Send "
    " Send "
    " Send "
    " Send "
    " Send "
    " SendFooter End Sub Sub SendPublisherSimple SendHeader "News publisher (simple form)" Send "
    " Send "" Send "" Send "" Send "" Send "
    " Send "
    " Send " " Send " " Send " " Send " " Send " " Send " " Send "
    " Send " Category !
    " Send "
    Language!
    Pub. date !
    " Send "" Send " " Send " " Send " " Send " " Send " " Send "
    " Send " Document complete content!" Send "
    " Send " " Send "
    " Send "
    " Send "
    " Send " " Send " " Send " " Send "
    " Send "
    " Send "
    " Send "
    " SendFooter End Sub '____________________________________________________ Sub SendStart Dim Tmp SendHeader "Start page" Tmp="

     

    " Tmp=Tmp & "[ View available news ]
    " Tmp=Tmp & "[ View available news in brief ] " Send Tmp SendFooter End Sub '____________________________________________________ Start Sub SendStartAdvance Dim Tmp SendHeader "Advance search news" Send "

    " Send "Category:" Set NewsRS = Nothing NewsCN.Close Set NewsCN = Nothing Send " and Language: " Send "" Send "" Send "

    " Tmp="

    " Tmp=Tmp & "[ View available news ] " Tmp=Tmp & "[ View available news in brief ] " Tmp=Tmp & "

    " Send Tmp SendFooter End Sub '____________________________________________________ SendAllNews Sub SendAllNews(Cat,Lng) Dim TotalArticles Dim CurrentColor Dim CurrentCorner Dim Index3 Dim d1, d2, d3 Dim q1 Dim str1 Dim Pg OpenNewsDataBase "SELECT Count(*) AS Cnt FROM Documents WHERE Status LIKE 'Pub%';",1 TotalArticles = NewsRS.Fields("Cnt").Value CloseNewsDataBase SetLocale("fr") SendHeader "All available news (" & TotalArticles & " articles)" If sDateFrom<>"" AND Not IsDate (sDateFrom) Then Send "
    " Send "" Send "
    " Send "From Date format is incorrect!" Send "
    " Send "
    " Exit Sub End If If sDateTo<>"" AND Not IsDate (sDateTo) Then Send "
    " Send "" Send "
    " Send "To Date format is incorrect!" Send "
    " Send "
    " Exit Sub End If If sDateFrom<>"" AND IsDate(sDateFrom) Then d1 = Day (sDateFrom) d2 = Month (sDateFrom) d3 = Year (sDateFrom) sDateFrom = d2 & "/" & d1 & "/" & d3 & " 00:00:00" End If If sDateTo<>"" AND IsDate(sDateTo) Then d1 = Day (sDateTo) d2 = Month (sDateTo) d3 = Year (sDateTo) sDateTo = d2 & "/" & d1 & "/" & d3 & " 23:59:59" End If str1 = ") " sSQL = "SELECT * FROM Documents WHERE (Status='Public' " If sSearchString<>"" Then str1 = "" q1 = Split (sSearchString, " ") sSQL = sSQL & ") AND (" For i = lBound(q1) to uBound(q1) If i<>uBound(q1) Then sSQL = sSQL & " Title LIKE '%" & q1(i) & "%' OR " End if Next For i = lBound(q1) to uBound(q1) If i<>uBound(q1) Then sSQL = sSQL & " (Content LIKE '%" & q1(i) & "%') AND " Else sSQL = sSQL & " (Content LIKE '%" & q1(i) & "%') " End if Next sSQL = sSQL & ") " End If If (sDateFrom<>"" OR sDateTo<>"") AND sSearchString="" Then str1 = "" sSQL = sSQL & ") " End If sSQL = sSQL & str1 If Trim(Cat)<>"" Then sSQL = sSQL & "AND Category='" & Cat & "' " If Trim(Lng)<>"" Then sSQL = sSQL & "AND Language='" & Lng & "' " If sDateFrom<>"" AND sDateTo="" Then sSQL = sSQL & " AND TimeStamp>=#" & sDateFrom & "#" ElseIf sDateFrom="" AND sDateTo<>"" Then sSQL = sSQL & " AND TimeStamp<=#" & sDateTo & "#" ElseIf sDateFrom<>"" AND sDateTo<>"" Then sSQL = sSQL & " AND TimeStamp>=#" & sDateFrom &"# AND TimeStamp<=#" & DateTo & "#" End if sSQL=sSQL & " Order By Timestamp DESC" Send "
    " Send "" Send "
    " Send "Searching through the news:
    " Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "
    Keyword:Date From:Date To: 
    " Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "
    " Send "

    " Send "
    " sSQL=sSQL & ";" OpenNewsDataBase sSql, sPageSize sPageCount = NewsRS.PageCount If iSNumeric(sPage) Then sPageCurrent = CInt(sPage) If sPageCurrent > sPageCount Then sPageCurrent = sPageCount If sPageCurrent < 1 Then sPageCurrent = 1 If sPageCount = 0 Then Send "
    " Send "" Send "
    " Send "No documents found!" Send "
    " Send "
    " Else NewsRS.AbsolutePage = sPageCurrent Send "
    " CurrentColor=ColorTon2 Send "" Send "" Send "" Send "" sRecordsShown = 0 Do While sRecordsShown < sPageSize And Not NewsRS.EOF sID =NewsRS.Fields("ID") sTitle =NewsRS.Fields("Title") sContent =Left(NewsRS.Fields("Content"),200) sTimeStamp =NewsRS.Fields("TimeStamp") If CurrentColor=ColorTon1 Then CurrentColor=ColorTon2 CurrentCorner="left_top_corner2.gif" Else CurrentColor=ColorTon1 CurrentCorner="left_top_corner1.gif" End If Send "" Send "" Send "" Send "" sRecordsShown = sRecordsShown + 1 NewsRS.MoveNext Loop CloseNewsDataBase Send "
    " Send "Click on news in order to get the full article" Send "
    " Send "Page " & sPageCurrent & "
    " Send "
      
    " Send "#" Send "    " Send "" If AfterWord(2,sContent)=Len(sContent) Then Send "" & sTitle & "
    " & sContent & " . . .
    " Else Send "" & sTitle & "
    " & Left(sContent,AfterWord(2,sContent)) & "
    " Send Right(sContent,Len(sContent)-AfterWord(2,sContent)+1) & " . . . " End If Send "
    " & DateFormat(sTimestamp,"DD MN, YYYY") Send "
    " Send "
    " Send "
     
      
    " Send "Page " & sPageCurrent & "" Send "Pages " For I=1 To sPageCount Pg=" " & I & " " Send Pg Next End If Send "
    " SendFooter End Sub '____________________________________________________SendAllAsScript Sub SendAllAsScript(Cat,Lng,Wid,Het) Dim Tmp sSQL = "SELECT * FROM Documents " sSQL = "SELECT * FROM Documents WHERE Status='Public' " If Trim(Cat)<>"" Then sSQL = sSQL & "AND Category='" & Cat & "' " If Trim(Lng)<>"" Then sSQL = sSQL & "AND Language='" & Lng & "' " sSQL=sSQL & "Order By Timestamp DESC" Set NewsCN = Server.CreateObject("ADODB.Connection") NewsCN.Open sNewsString Set NewsRS = Server.CreateObject("ADODB.Recordset") NewsRS.PageSize = sPageSize NewsRS.CacheSize = sPageSize NewsRS.Open sSQL, NewsCN, adOpenStatic, adLockReadOnly, adCmdText sPageCount = NewsRS.PageCount If iSNumeric(sPage) Then sPageCurrent = CInt(sPage) If sPageCurrent > sPageCount Then sPageCurrent = sPageCount If sPageCurrent < 1 Then sPageCurrent = 1 If sPageCount = 0 Then Send "" Else NewsRS.AbsolutePage = sPageCurrent sRecordsShown = 0 If Wid<>"" AND Het<>"" Then JSWrite "" Else JSWrite "" End If JSWrite "" JSWrite "" JSWrite "" JSWrite "" JSWrite "" JSWrite "" JSWrite "" JSWrite "" JSWrite "" Do While sRecordsShown < sPageSize And Not NewsRS.EOF sID =NewsRS.Fields("ID") sContent =Apletize(NewsRS.Fields("Content"),1000) sTimeStamp =NewsRS.Fields("TimeStamp") Tmp="" JSWrite " " & Tmp sRecordsShown = sRecordsShown + 1 NewsRS.MoveNext Loop JSWrite "" NewsRS.Close Set NewsRS = Nothing NewsCN.Close Set NewsCN = Nothing End If End Sub '____________________________________________________ List Admin Sub SendAllNewsBrief(Cat,Lng) Dim CurrentColor Dim CurrentCorner SendHeader "All available news in brief" sSQL = "SELECT * FROM Documents WHERE Status='Public' " If Trim(Cat)<>"" Then sSQL = sSQL & "AND Category='" & Cat & "' " If Trim(Lng)<>"" Then sSQL = sSQL & "AND Language='" & Lng & "' " sSQL=sSQL & "Order By Timestamp DESC" OpenNewsDataBase sSQL, sPageSizeBrief sPageCount = NewsRS.PageCount If iSNumeric(sPage) Then sPageCurrent = CInt(sPage) If sPageCurrent > sPageCount Then sPageCurrent = sPageCount If sPageCurrent < 1 Then sPageCurrent = 1 If sPageCount = 0 Then Send "
    " Send "" Send "
    " Send "No documents found!" Send "
    " Send "
    " Else NewsRS.AbsolutePage = sPageCurrent Send "
    " CurrentColor=ColorTon2 Send "" Send "" sRecordsShown = 0 Do While sRecordsShown < sPageSizeBrief And Not NewsRS.EOF sID =NewsRS.Fields("ID") sContent =NewsRS.Fields("Content") sTimeStamp =NewsRS.Fields("TimeStamp") sLanguage =NewsRS.Fields("Language") If CurrentColor=ColorTon1 Then CurrentColor=ColorTon2 CurrentCorner="left_top_corner2.gif" Else CurrentColor=ColorTon1 CurrentCorner="left_top_corner1.gif" End If Send "" Send "" Send "" sRecordsShown = sRecordsShown + 1 NewsRS.MoveNext Loop If sPageCount>1 Then Send "" End If Send "
    " Send "Click on news in order to get the full article" Send "
    " Send "" Send "" Send "
    #" Send DateFormat(sTimestamp,"DD MN, YYYY") & "
    " & Left(DelBreaks(sContent) & Space(40),90) & " . . .
    " Send "
    " Send "
    " Send "Selected page " & sPageCurrent & ", from " & sPageCount & ". " Send "Other pages " For I=1 To sPageCount Send " " & I & " " Next Send "
    " End If Send "" Send "
    " CloseNewsDataBase SendFooter End Sub '_____________________________________________________ Sub SendAdmin Dim CurrentColor Dim sNote SendHeader "News database for administrators" If Request.QueryString("Page") = "" Then sPageCurrent = 1 Else sPageCurrent = CInt(Request.QueryString("Page")) End If If Trim(sStatus)<>"" Then sSQL = "SELECT * FROM Documents WHERE Status='" & sStatus & "' Order By Timestamp DESC" If sStatus="Public" Then sNote=", Status=Public, List all ""Archived""" Else sNote=", Status=Archive, List all ""Public""" End If Else sSQL = "SELECT * FROM Documents Order By Timestamp DESC" sNote=", Status=""Public"" and Status=""Archive"", " sNote=sNote & "List of all ""Public"", " sNote=sNote & "and ""Arhived""" End If OpenNewsDataBase sSQL, sPageSizeAdmin sPageCount = NewsRS.PageCount If sPageCurrent > sPageCount Then sPageCurrent = sPageCount If sPageCurrent < 1 Then sPageCurrent = 1 If sPageCount = 0 Then Send "
    " Send "" Send "
    " Send "No documents found!" Send "
    " Send "
    " Else NewsRS.AbsolutePage = sPageCurrent Send "
    " Send "" Send "
    " Send "" Send "
    " Send "

    News for admin, page " & sPageCurrent & " of " & sPageCount Send sNote & "

    " Send "
    " Send "" sRecordsShown = 0 CurrentColor=ColorTon1 Do While sRecordsShown < sPageSizeAdmin And Not NewsRS.EOF sID =NewsRS.Fields("ID") sStatus =NewsRS.Fields("Status") sDescription =NewsRS.Fields("Description") sContent =NewsRS.Fields("Content") sTitle =NewsRS.Fields("Title") sLink1 =NewsRS.Fields("Link1") sLink2 =NewsRS.Fields("Link2") sEmail =NewsRS.Fields("Email") sUserName =NewsRS.Fields("AuthorName") sTimeStamp =NewsRS.Fields("TimeStamp") sCategory =NewsRS.Fields("Category") If CurrentColor=ColorTon1 Then CurrentColor=ColorTon2 Else CurrentColor=ColorTon1 End If Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" Send "" sRecordsShown = sRecordsShown + 1 NewsRS.MoveNext Loop Send "
     Title " & sTitle & "
     Head line" & sDescription & "
     Content " & Left(sContent,80) & " . . .
     Published " & DateFormat(sTimestamp,"DD MN, YYYY") & "
     Author " & sUserName & "
     Links " & Links(sLink1,sLink2) & "
     E-mail " & MailTo(sEmail) & "
     Status " & sStatus & "
     Category " & sCategory & "
     ID " & sID & "" Send "[View document] " Send "[Edit document] " Send "[Set Status=Arhived] " Send "[Set Status=Public] " Send "[Delete] " Send "

    " Send "" Send "
    " Send "Pages " For I=1 To sPageCount Send " " & I & " " Next Send "
    " Send "
    " End If Send "" Send "
    " CloseNewsDataBase SendFooter End Sub '____________________________________________________ Send Event Sub SendDocument(RefDocumentID) If sID="" Then MsgError "Error ID", "Please select the article ID" Exit Sub End If sSQL = "SELECT * FROM Documents WHERE ID=" & sID & ";" OpenNewsDataBase sSQL, 1 If NewsRS.BOF And NewsRS.EOF Then MsgInfo "Record not found", "Record under code " & RefDocumentID & " not found." Exit Sub End If sDescription =DelImportantChars(NewsRS.Fields("Description")) sContent =DelImportantChars(NewsRS.Fields("Content")) sTitle =DelImportantChars(NewsRS.Fields("Title")) sLink1 =DelImportantChars(NewsRS.Fields("Link1")) sLink2 =DelImportantChars(NewsRS.Fields("Link2")) sLanguage =DelImportantChars(NewsRS.Fields("Language")) sEmail =DelImportantChars(NewsRS.Fields("Email")) sTimeStamp =DelImportantChars(NewsRS.Fields("TimeStamp")) sUserName =DelImportantChars(NewsRS.Fields("AuthorName")) CloseNewsDataBase SendHeader "Article: " & sTitle Send "" Send "" Send " " Send "
    " Send "
    " Send "
    " Send "" Send "" Send "" Send "" Send "" Send "
    " Send "A" Send "" Send "
    " Send "
    " Send " " If Trim(sTitle)<>"" Then Send " " Send " " Send " " End If If Trim(sDescription)<>"" Then Send " " Send " " Send " " End If Send " " Send " " Send " " If Trim(sLink1)<>"" OR Trim(sLink2)<>"" Then Send " " Send " " Send " " End If Send "" Send "
    " Send "

    " Send sTitle Send "

    " Send "
    " Send "
    " Send "      " Send sDescription Send "

    " Send "
    " Send "

    " Send "      " Send sContent Send "

    " Send "
    " Send "

    " Send Links(sLink1, sLink2) Send "

    " Send "
     
    " Send "
    " Send "
    " Send "  " & DateFormat(sTimeStamp,"DD MN, YYYY") & "

    " Send "
    " Send "
    " Send "
    " Send "
    " SendFooter End Sub '____________________________________________________ Get Variable Sub GetVariables sStyle = GetTextFile(StyleFileName) sRemoteAddress = Request.ServerVariables("REMOTE_ADDR") sServerName = Request.ServerVariables("SERVER_NAME") sScriptName = Request.ServerVariables("SCRIPT_NAME") sThisASP = "http://" & sServerName & sScriptName sImgLoc = "http://" & sServerName & ImagesDirectory sCookie = Request.Cookies(sCookieName) sUserName = GetParam("UserName") sPassWord = GetParam("PassWord") sLanguage = GetParam("Language") sCategory = GetParam("Category") If Left(sCategory,5) ="Other" Then sCategory = GetParam("CategoryOther") End If sLink1 = GetParam("Link1") sLink2 = GetParam("Link2") sTitle = GetParam("Title") sDescription = GetParam("Description") sContent = GetParam("Content") sPublicationDate = GetParam("PublicationDate") sEmail = GetParam("Email") sStatus = GetParam("Status") sWidth = GetParam("Width") sHeight = GetParam("Height") sID = GetParam("ID") sAction = GetParam("Action") sSearchString = GetParam("SearchString") sDateTo = GetParam("DateTo") sDateFrom = GetParam("DateFrom") sType = GetParam("sType") sUsersGroup = GetParam("UsersGroup") sUserID = GetParam("UserID") sUserName = GetParam("UserName") sFullName = GetParam("FullName") sPassWord = GetParam("PassWord") sPage = GetParam("Page") End Sub '____________________________________________________ Execute Action Sub ExecuteAction Dim Permissions sAction=UCase(sAction) Select Case sAction Case "" SendAllNews sCategory, sLanguage Case "START" SendStart Case "LOGIN" LogIn sUserName, sPassWord Case "LOGOUT" LogOut sCookie Case "ADVANCE" SendStartAdvance Case "LOGINFORM" LogInForm "" Case "VIEW" SendDocument sID Case "LISTALL" SendAllNews sCategory, sLanguage Case "VIEWSEARCHNEWS" SendAllNews sCategory, sLanguage Case "LISTBRIEF" SendAllNewsBrief sCategory, sLanguage Case "JAVASCRIPT" SendAllAsScript sCategory, sLanguage, sWidth, sHeight Case Else Permissions=CkPermissions(sCookie,"Admin") If Permissions=False Then LoginForm "" Select Case sAction Case "SET" DocumentStatusSet sID, sStatus Case "ADMIN" SendAdmin Case "GETPUBLISHER" SendPublisher "" Case "EDIT" DocumentEditor sID, False Case "NEWDOCUMENT" DocumentEditor sID, True Case "NEWSIMPLE" SendPublisherSimple Case "DEL" DocumentDelete sID Case "PUBLISH" DocumentSave sID, True Case "UPDATE" DocumentSave sID, False Case "CLEAR" ClearDeleted Case "STRUCTURE" SendStructure Case Else MsgError "Unknown action","Unknown action!" End Select End Select End Sub '____________________________________________________Main program GetVariables ExecuteAction '____________________________________________________End Main program %>