home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2007 January / maximum-cd-2007-01.iso / main.dxr / Internal_5_miscHandlers.ls < prev    next >
Encoding:
Text File  |  2006-07-19  |  8.7 KB  |  395 lines

  1. global debug, isProjector
  2.  
  3. on cgiSafe theString
  4.   repeat with i = 1 to the number of chars in theString
  5.     if "$&/.:'~`!*(){;}[]^%#?\|=+" & QUOTE & RETURN contains char i of theString then
  6.       delete char i of theString
  7.       i = i - 1
  8.       next repeat
  9.     end if
  10.     if " " contains char i of theString then
  11.       put "_" into char i of theString
  12.     end if
  13.   end repeat
  14.   return theString
  15. end
  16.  
  17. on isCgiSafe theString, can_contain
  18.   repeat with i = 1 to the number of chars in theString
  19.     if " $&/.:'~`!*(){;}[]^%#?\|=+" & QUOTE & RETURN contains char i of theString then
  20.       if can_contain <> VOID then
  21.         if can_contain contains char i of theString then
  22.         else
  23.           return 0
  24.         end if
  25.         next repeat
  26.       end if
  27.       return 0
  28.     end if
  29.   end repeat
  30.   return 1
  31. end
  32.  
  33. on stripspaces string
  34.   repeat with i = 1 to the number of chars in string
  35.     if " " contains char i of string then
  36.       delete char i of string
  37.       i = i - 1
  38.     end if
  39.   end repeat
  40.   return string
  41. end
  42.  
  43. on lower str
  44.   x = the number of chars in str
  45.   repeat with i = 1 to x
  46.     z = charToNum(char i of str)
  47.     if (z < 91) and (z > 64) then
  48.       put numToChar(z + 32) into char i of str
  49.     end if
  50.   end repeat
  51.   return str
  52. end
  53.  
  54. on upper str
  55.   x = the number of chars in str
  56.   repeat with i = 1 to x
  57.     z = charToNum(char i of str)
  58.     if (z > 96) and (z < 123) then
  59.       put numToChar(z - 32) into char i of str
  60.     end if
  61.   end repeat
  62.   return str
  63. end
  64.  
  65. on testDiskRW testPath
  66.   global myFile
  67.   failed = 0
  68.   if objectp(myFile) then
  69.     myFile = 0
  70.   end if
  71.   myFile = new(xtra("fileio"))
  72.   createFile(myFile, testPath & "testy.txt")
  73.   openfile(myFile, testPath & "testy.txt", 0)
  74.   writeString(myFile, "abc test string 123")
  75.   closeFile(myFile)
  76.   myFile = 0
  77.   if objectp(myFile) then
  78.     myFile = 0
  79.   end if
  80.   myFile = new(xtra("fileio"))
  81.   if the machineType = 256 then
  82.     setFilterMask(myFile, "All files,*.*,Text files,*.txt")
  83.   else
  84.     setFilterMask(myFile, "TEXT")
  85.   end if
  86.   openfile(myFile, testPath & "testy.txt", 1)
  87.   if status(myFile) = 0 then
  88.     filecontents = readFile(myFile)
  89.   else
  90.     failed = 1
  91.   end if
  92.   closeFile(myFile)
  93.   myFile = 0
  94.   if filecontents <> "abc test string 123" then
  95.     failed = 1
  96.   end if
  97.   if objectp(myFile) then
  98.     myFile = 0
  99.   end if
  100.   myFile = new(xtra("fileio"))
  101.   openfile(myFile, testPath & "testy.txt", 0)
  102.   delete(myFile)
  103.   closeFile(myFile)
  104.   myFile = 0
  105.   if failed = 1 then
  106.     return "fail"
  107.   else
  108.     return "ok"
  109.   end if
  110. end
  111.  
  112. on fieldToFile fileName, fieldname
  113.   dput("fieldToFile : " & fileName & " <- " & fieldname)
  114.   myFile = new(xtra("fileio"))
  115.   if the machineType = 256 then
  116.     setFilterMask(myFile, "All files,*.*,Text files,*.txt")
  117.   else
  118.     setFilterMask(myFile, "TEXT")
  119.   end if
  120.   if not voidp(fileName) and not (fileName = EMPTY) then
  121.     createFile(myFile, fileName)
  122.     openfile(myFile, fileName, 2)
  123.     if status(myFile) = 0 then
  124.       repeat with i = 1 to the number of lines in field fieldname
  125.         writeString(myFile, line i of field fieldname & RETURN)
  126.       end repeat
  127.     end if
  128.     closeFile(myFile)
  129.   end if
  130.   myFile = 0
  131. end
  132.  
  133. on fileToField fileName, fieldname
  134.   dput("fileToField : " & fileName & " -> " & fieldname)
  135.   myFile = new(xtra("fileio"))
  136.   if the machineType = 256 then
  137.     setFilterMask(myFile, "All files,*.*,Text files,*.txt")
  138.   else
  139.     setFilterMask(myFile, "TEXT")
  140.   end if
  141.   if not voidp(fileName) and not (fileName = EMPTY) then
  142.     openfile(myFile, fileName, 1)
  143.     if status(myFile) = 0 then
  144.       filetext = readFile(myFile)
  145.       filetext = lf2cr(filetext)
  146.       put filetext into field fieldname
  147.     end if
  148.     closeFile(myFile)
  149.   end if
  150.   myFile = 0
  151. end
  152.  
  153. on lf2cr str
  154.   if not offset(numToChar(10), str) then
  155.     return str
  156.   end if
  157.   str2 = EMPTY
  158.   repeat with i = 1 to the number of chars in str
  159.     if char i of str = numToChar(10) then
  160.       put RETURN after str2
  161.       next repeat
  162.     end if
  163.     put char i of str after str2
  164.   end repeat
  165.   return str2
  166. end
  167.  
  168. on dput arg
  169.   put arg
  170. end
  171.  
  172. on displayString outString
  173.   if debug then
  174.     put outString
  175.   end if
  176. end
  177.  
  178. on Hang tix
  179.   x = the timer
  180.   repeat while the timer < (x + tix)
  181.     nothing()
  182.   end repeat
  183. end
  184.  
  185. on postError string, critical
  186.   dput("ERROR: " & string)
  187.   z = displayError(string & RETURN & "[The Program Must Exit Now]")
  188.   if critical and isProjector then
  189.     return 
  190.   end if
  191.   return 1
  192. end
  193.  
  194. on detectQuicktime
  195.   if not (the quickTimePresent) then
  196.     decision = displayYesNo("In order to use this CD-ROM, you must have Quicktime Installed.  Please click 'Yes' to do so and then re-launch the CD-ROM.")
  197.     if decision then
  198.       if the platform contains "Windows" then
  199.         fd = "\"
  200.       else
  201.         fd = ":"
  202.       end if
  203.       open(the pathname & "Installers" & fd & "QT.exe")
  204.       quit()
  205.     else
  206.     end if
  207.   end if
  208. end
  209.  
  210. on displayError Msg
  211.   alertObj = new(xtra("MUI"))
  212.   alertInitList = [#buttons: #Ok, #title: "Error", #message: Msg, #movable: 1]
  213.   if objectp(alertObj) then
  214.     return alert(alertObj, alertInitList)
  215.   else
  216.     return 0
  217.   end if
  218. end
  219.  
  220. on displayYesNo Msg
  221.   alertObj = new(xtra("MUI"))
  222.   alertInitList = [#buttons: #YesNo, #title: "Please choose Yes or No.", #message: Msg, #movable: 1]
  223.   if objectp(alertObj) then
  224.     return alert(alertObj, alertInitList)
  225.   else
  226.     return 0
  227.   end if
  228. end
  229.  
  230. on solicitURL defaultval
  231.   MUIObj = new(xtra("Mui"))
  232.   if objectp(MUIObj) then
  233.     tell the stage
  234.       result = GetUrl(MUIObj, defaultval, 1)
  235.     end tell
  236.     dput(result)
  237.     if result <> defaultval then
  238.       return result
  239.     end if
  240.   end if
  241.   return defaultval
  242. end
  243.  
  244. on displayMessage title, Msg
  245.   alertObj = new(xtra("MUI"))
  246.   alertInitList = [#buttons: #Ok, #title: title, #message: Msg, #movable: 1]
  247.   if objectp(alertObj) then
  248.     result = alert(alertObj, alertInitList)
  249.   end if
  250.   return result
  251. end
  252.  
  253. on fileSaveAs me, fileString, prompt
  254.   put "fileSaveAs(" & fileString & ", " & prompt & ")"
  255.   aMuiObj = new(xtra("MUI"))
  256.   result = FileSave(aMuiObj, fileString, prompt)
  257.   put "returned: " & result
  258.   if result <> fileString then
  259.     return result
  260.   else
  261.     return 0
  262.   end if
  263. end
  264.  
  265. on toggle num
  266.   if num = 0 then
  267.     num = 1
  268.   else
  269.     if num = 1 then
  270.       num = 0
  271.     end if
  272.   end if
  273.   return num
  274. end
  275.  
  276. on listContains theList, theItem
  277.   listC = count(theList)
  278.   repeat with i = 1 to listC
  279.     if getAt(theList, i) = theItem then
  280.       return i
  281.     end if
  282.   end repeat
  283.   return 0
  284. end
  285.  
  286. on cListContains theList, theItem
  287.   listC = count(theList)
  288.   repeat with i = 1 to listC
  289.     if getAt(theList, i) contains theItem then
  290.       return i
  291.     end if
  292.   end repeat
  293.   return 0
  294. end
  295.  
  296. on urlListContains theList, theItem
  297.   listC = count(theList)
  298.   repeat with i = 1 to listC
  299.     if getname(stripExtension(getAt(theList, i))) = theItem then
  300.       return i
  301.     end if
  302.   end repeat
  303.   return 0
  304. end
  305.  
  306. on fullUrlListContains theList, theItem
  307.   listC = count(theList)
  308.   repeat with i = 1 to listC
  309.     if getAt(theList, i) = theItem then
  310.       return i
  311.     end if
  312.   end repeat
  313.   return 0
  314. end
  315.  
  316. on timeDifference time1, time2
  317.   return 0
  318. end
  319.  
  320. on getname url
  321.   Pos = 0
  322.   repeat with i = 1 to the number of chars in url
  323.     if char i of url = "/" then
  324.       Pos = i
  325.     end if
  326.   end repeat
  327.   if Pos then
  328.     return char Pos + 1 to the number of chars in url of url
  329.   end if
  330. end
  331.  
  332. on stripExtension str
  333.   if str contains "." then
  334.     numchars = the number of chars in str
  335.     repeat with i = numchars down to i
  336.       if char i of str = "." then
  337.         pivot = i
  338.         exit repeat
  339.       end if
  340.     end repeat
  341.     return char 1 to pivot - 1 of str
  342.   else
  343.     return str
  344.   end if
  345. end
  346.  
  347. on openWin windowName
  348.   StageRect = (the stage).rect
  349.   windowRect = window(windowName).sourceRect
  350.   MiawW = getAt(windowRect, 3) - getAt(windowRect, 1)
  351.   MiawH = getAt(windowRect, 4) - getAt(windowRect, 2)
  352.   centerScreenH = ((getAt(StageRect, 3) - getAt(StageRect, 1)) / 2) + getAt(StageRect, 1)
  353.   centerScreenV = ((getAt(StageRect, 4) - getAt(StageRect, 2)) / 2) + getAt(StageRect, 2)
  354.   left = centerScreenH - (MiawW / 2)
  355.   top = centerScreenV - (MiawH / 2)
  356.   right = left + MiawW
  357.   bottom = top + MiawH
  358.   window(windowName).rect = rect(left, top, right, bottom)
  359.   window(windowName).windowtype = 4
  360.   open(window(windowName))
  361. end
  362.  
  363. on waitWindow
  364.   openWin("Progress")
  365. end
  366.  
  367. on QuickSort list, lB, rB
  368.   global passCtr
  369.   lo = lB
  370.   Up = rB
  371.   repeat while Up > lo
  372.     i = lo
  373.     j = Up
  374.     temp = getAt(list, lo)
  375.     repeat while i < j
  376.       sortKey = getAt(list, j)
  377.       repeat while sortKey > temp
  378.         j = j - 1
  379.         sortKey = getAt(list, j)
  380.       end repeat
  381.       setAt(list, i, getAt(list, j))
  382.       sortKey = getAt(list, j)
  383.       repeat while (i < j) and (sortKey <= temp)
  384.         i = i + 1
  385.         sortKey = getAt(list, i)
  386.       end repeat
  387.       setAt(list, j, getAt(list, i))
  388.     end repeat
  389.     setAt(list, i, temp)
  390.     QuickSort(list, lo, i - 1)
  391.     lo = i + 1
  392.     passCtr = passCtr + 1
  393.   end repeat
  394. end
  395.