#   properties.tcl
#   Returns properties of web servers 
#   and web pages

source getFromWeb.tcl
source fileLib.tcl
source parse.tcl

# CREATE WIDGETS
label     .lURL -text "URL:"
entry     .eURL -width 60
label     .lProperties -text "Properties"
text      .tProperties -width 60 -height 10 
           -yscroll ".sProperties set"
scrollbar .sProperties -command 
  ".tProperties yview"
button    .bStart -text "Get Properties" 
           -command getProperties

# PACK AND DISPLAY WIDGETS
pack .lURL -anchor w
pack .eURL -anchor w
pack .bStart -anchor w
pack .lProperties -anchor w
pack .tProperties -side left
pack .sProperties -side right -fill y

proc getProperties { } {
  set webPage [.eURL get]
  set token [getFromWeb $webPage download.temp]

  .tProperties insert end 
    "*** Properties for:$webPage ***\n"

  # DISPLAY CONTENT DATA 
  # RETURNED FROM PAGE ANALYSTS
  set GIFqty  [parse download.temp 
               <img 40 .gif temp1]
  set JPGqty  [parse download.temp 
               <img 40 .jpg temp2]
  set LINKqty [parse download.temp 
               <A 140 /A> temp3]

  # PARSE AND STRIP TAGS FROM DOCUMENT TITLE
  parse download.temp <TITLE> 80 </TITLE> temp4
  set Title [readEntireFile temp4]
  regsub -nocase "<TITLE>" $Title {} Title
  regsub -nocase  "</TITLE>" $Title {} Title 

  # DISPLAY TITLE, IMAGE, AND LINK METRICS
  .tProperties insert end "Title: \t $Title \n"
  .tProperties insert end  "Images \t 
     gif:$GIFqty \t jpg:$JPGqty \n"
  .tProperties insert end  "Links: \t 
     $LINKqty \n"

  # GET AND DISPLAY META DATA 
  # RETURNED FROM SERVER
  upvar $token state
  regsub -all {\}} $state(meta) 
    "\}\n" state(meta)
  .tProperties insert end "$state(meta) \n"
}