Sign in to follow this  
Followers 0
Ascend4nt

File + Process Imports and Exports - DLL, EXE etc

17 posts in this topic

#1 ·  Posted (edited)

File + Process Imports/Exports Information UDFs

Posted ImagePosted Image

Forwarder String Support, C++ Name Undecorating Added!!

(Extreme case of string forwarding from wsock32.dll example in this post)

This UDF gets Function Imports and Exports for any Windows PE file (.DLL, .EXE), both 32-bit and 64-bit (unlike most programs out there), and from either a 32-bit or 64-bit Process.

I created this due to my frustration with other programs either working only *some* of the time, or having a common inability to read PE32+ (x64) file format tables properly.

There's just two functions in the main UDF - _FileGetWinPEImports or _FileGetWinPEExports. The bundled TestImportExportsList program lets you explore files on your system.

*Newly included are: _ProcessGetWinPEImports, _ProcessGetWinPEExports and TestProcessImportExportsList program (requires my Process Functions UDF).

NOTE: *Compressed* executable files will only give the Import information for the 'decompressor'. The only way to get the compressed executable's Import information is to decompress the executable.

Anyway, enjoy my hard work. Either read on for more information about some of the features, or see below for the License agreement and Download link.

Information on 'Virtual Offset of Thunk':

These address offsets you see are offsets from the base of the .DLL or .EXE file (uncompressed only!), where the actual function location of an 'Import' gets placed. All calls to these functions load addresses from these Thunk locations in order to correctly place a call to the right DLL function. (This is totally different than the old Import fixup location lists of earlier pre-NT systems). Technically, you could overwrite these Thunks with addresses to your own functions, but this is a dangerous thing to do. Its a neat tool to have though.

Forwarder functions? An explanation:

The whole 'DLLNAME.Functionname' string might be confusing to you, but here's an explanation of why an address can not and should not be returned. To better understand all this, grab a copy of DLL Export Viewer, (which doesn't report Relative/Function addresses correctly for Forwarded functions) and then follow along: *update: as of v1.50, DLL Export Viewer now reports forwarder string info (I was the one that reported the bug heh)

Okay, open up DLL Export Viewer and look at (for this example) KERNEL32.DLL - lets pick 'HeapFree', a known Forwarded function. DLL Export Viewer reports the following (on XP SP3):Relative Address: 0x0000910c, 'Loaded' address: 0x7c80910c. *Neither* is the case, though - 0x0000910c is in fact just the virtual address of the forwarder string!

Now, with my Exports function, you'll find that 'HeapFree' is reported (correctly) as a Forwarder string. What you'll see then is 'NTDLL.RtlFreeHeap'. What does that mean? It means that:

  • HeapFree is not a part of KERNEL32.DLL (and hasn't been for a while),
  • When that function is called or the address retrieved via 'GetProcAddress', the function 'RtlFreeHeap' in NTDLL.DLL is the function that's actually called (or returned as an address). Hopefully the 'DLLNAME.FunctionName' structure of a Forwarder string is starting to make sense now?
  • The address you get when you do 'GetProcAddress' does *not* correspond to what you see in DLL Export Viewer - in fact, 'HeapFree's reported address lies entirely OUTSIDE of kernel32.dll's memory space - pointing instead inside of NTDLL.DLL, at (guess what?): RtlFreeHeap.
So, on XP SP3, looking up 'HeapFree' with GetProcAddress, you get: 0x7C90FF2D. Doesn't match what was reported with DLL Export Viewer AT ALL. However - go back, and now look at NTDLL.DLL with DLL Export Viewer, and at function 'RtlFreeHeap' (following the logic of the Forwarder Function string). What is reported for RtlFreeHeap? Relative Address: 0x0000ff2d, 'Loaded' address: 0x7c90ff2d. See now how it lines up with what was reported via GetProcAddress for 'HeapFree' in KERNEL32.DLL?

So, there you have it in a nutshell - Forwarder functions are functions 'rerouted' to another DLL. The DLL's that are being rerouted to are either:

  • A.) Pre-loaded by the system (Important DLL's like NTDLL.DLL, KERNEL32.DLL, USER32.DLL, GDI32.DLL, etc - are all permanently loaded)
  • B.) Loaded upon a program's execution if the function is in its 'Imports' list, or
  • C.) Loaded upon a call to GetProcAddress. To see how this works clearly, list the modules that are loaded (my Process Functions UDF GUI can do this for you), then call GetProcAddress for 'GetServiceW' from WSOCK32.DLL, and then re-list the modules again. You'll see a new module loaded up - MSWSOCK.DLL (the location of the forwarder function). Wa-la, forwarder is set up.
Ascend4nt's AutoIT Code License agreement:

While I provide this source code freely, if you do use the code in your projects, all I ask is that:

  • If you provide source, keep the header as I have put it, OR, if you expand it, then at least acknowledge me as the original author, and any other authors I credit
  • If the program is released, acknowledge me in your credits (it doesn't have to state which functions came from me, though again if the source is provided - see #1)
  • The source on it's own (as opposed to part of a project) can not be posted unless a link to the page(s) where the code were retrieved from is provided and a message stating that the latest updates will be available on the page(s) linked to.
  • Pieces of the code can however be discussed on the threads where Ascend4nt has posted the code without worrying about further linking.

Download the ZIPs from my Site

UPDATES:

7-21-2010:

Added:

  • C++ Function Name Undecorating/Unmangling option. For an example of what this causes function name results to be, check out something like 'msvcrt.dll'. It will report alot more than just a function name! If you choose to do the Undecorating yourself, just call the included function _WinAPI_UndecorateName().

    Example: "??3@YAXPAX@Z" becomes "void __cdecl operator delete(void *)" unmanged/undecorated

  • New _ProcessGetWinPEImportExports module (with Test program) as a separate download - requires use of my Process Functions UDF. The biggest benefits, besides looking into loaded DLL's that might not be on the disk? Addresses reported are real, and Imported function addresses are reported (as pulled from Thunk locations).
7-12-2010:

Fixed:

  • Oops, Big-time logic errors in mapping Export function names to addresses and using ordinals to look them up from pointer tables. Now everything points to where it should!
  • Ordinal #'s are now correctly calculated with the 'Base' # part of the EXPORT DIRECTORY TABLE.
Added:
  • 'Forwarder' string lookup & reporting! Not even DLL Export Viewer does this! Basically, certain function 'pointers' aren't really code offsets, but offsets to Forwarder strings. My function looks those strings up and puts them in the list instead of a phoney address.
7-11-2010:

Fixed:

  • Executables linked with Borland's TLINK32.exe do not set the 'ImportLookupTableRVA' element correctly. This was easy to work around, as the 'Thunks' list also contains pointers to the same information (until an executable/DLL is loaded by the O/S, at least)
Added:
  • Imports: Extra column: Virtual Offset of Thunk ( [3] ). When an .EXE or .DLL is loaded, this is the Offset from the base of the .EXE or .DLL which will hold the actual function address. This could be used for redirection of calls (dangerous though!).

    ...

    An important note on this: Compressed executables are a completely different beast, and in fact the whole Import section is for the Decompressor itself, which disappears once the executable is loaded! The only way to get the actual Imports for Compressed Executables is to Decompress them first.

Edited by Ascend4nt
1 person likes this

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Nicely done.

To ease your frustration though, you should check out DLL Export Viewer from NirSoft.

Edited by wraithdu

Share this post


Link to post
Share on other sites

Thanks. I've been using DLL Export Viewer actually - But it doesn't report on Imports, and I'd rather not have to rely on using another program just for Exports.

Share this post


Link to post
Share on other sites

Fascinating work.

This is really going to come in handy.


[Not using this account any more. Using "iShafayet" instead]

Share this post


Link to post
Share on other sites

This is a very useful UDF.


Determined -- Devoted -- Delivered Make your mind up -- to seriously apply yourself -- accomplishing the desired results. **** A soft answer turneth away wrath: but grievous words stir up anger. Proverbs 15:1 KJB  *** Learning to write scripts...WMP Resumer [font="'Arial Black';"]|[/font] InstaPro Launcher [font="'Arial Black';"]| [/font]XampLabel Styles [font="'Arial Black';"]|[/font] XampPause - "HotKeySet" [font="'Arial Black';"]|[/font] XampCounter [font="'Arial Black';"]|[/font] XampSpellCheck *** Forum References Remembered... 5 Tips better coder by: Omar AlBadri (AKA - Volly) | AutoIT3/SciTE - USB by: MadSc13ntist | XSkin.au3 GUI by: Valuater AutoIT MVP | Helpful Collection Autoit Scripts: Maintained By: Volly | Windows Help 101 By: beerman & others *** My Website: Frankie-Cooper.com

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Thanks everyone for the compliments.

I've updated the UDF after reading about Borland's TLINK32 issue. All files should report the right Import information now, though I still have yet to figure out the 'forwarding' thing with certain Exports (that return an Offset of 0).

UPDATES:

7-11-2010:

Fixed:

  • Executables linked with Borland's TLINK32.exe do not set the 'ImportLookupTableRVA' element correctly. This was easy to work around, as the 'Thunks' list also contains pointers to the same information (until an executable/DLL is loaded by the O/S, at least)
Added:

  • Imports: Extra column: Virtual Offset of Thunk ( [3] ). When an .EXE or .DLL is loaded, this is the Offset from the base of the .EXE or .DLL which will hold the actual function address. This could be used for redirection of calls (dangerous though!).

    ...

    An important note on this: Compressed executables are a completely different beast, and in fact the whole Import section is for the Decompressor itself, which disappears once the executable is loaded! The only way to get the actual Imports for Compressed Executables is to Decompress them first.

Edited by Ascend4nt

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Sorry for the short time between updates, but I found a major issue with my code, and at the same time added something new - not even DLL Export Viewer has Forwarder-String information :blink:

Check out these examples of Forwarder strings inside DLL's (2nd example is an extreme case!)

Posted Image..Posted Image

Onto the updates:

UPDATES:

7-12-2010:

Fixed:

  • Oops, Big-time logic errors in mapping Export function names to addresses and using ordinals to look them up from pointer tables. Now everything points to where it should!
  • Ordinal #'s are now correctly calculated with the 'Base' # part of the EXPORT DIRECTORY TABLE.
Added:

  • 'Forwarder' string lookup & reporting! Not even DLL Export Viewer does this! Basically, certain function 'pointers' aren't really code offsets, but offsets to Forwarder strings. My function looks those strings up and puts them in the list instead of a phoney address.
Edited by Ascend4nt

Share this post


Link to post
Share on other sites

Really Awesome work!

Thxs for share!


[size="5"] [/size]

Share this post


Link to post
Share on other sites

Updated!

7-21-2010:

Added:

  • C++ Function Name Undecorating/Unmangling option. For an example of what this causes function name results to be, check out something like 'msvcrt.dll'. It will report alot more than just a function name! If you choose to do the Undecorating yourself, just call the included function _WinAPI_UndecorateName().

    Example: "??3@YAXPAX@Z" becomes "void __cdecl operator delete(void *)" unmanged/undecorated

  • New _ProcessGetWinPEImportExports module (with Test program) as a separate download - requires use of my Process Functions UDF. The biggest benefits, besides looking into loaded DLL's that might not be on the disk? Addresses reported are real, and Imported function addresses are reported (as pulled from Thunk locations).

Share this post


Link to post
Share on other sites

#10 ·  Posted

Would it be possible to use parts of this library to validate that exports of a system DLL have not been dynamically remapped within the process where my script is running?

D.

Share this post


Link to post
Share on other sites

#11 ·  Posted

I'm not sure I understand. Do you mean that imports in your process (which are mapped to exports from DLL's) are being redirected to a different address than they should be? Theoretically it would be possible to check them, if the LoadLibrary/GetProcAddress API functions needed by DLLCall() were not themselves remapped to something that prevents them from working correctly.

Probably the best thing for you to do is to use UPX or some other compression utility which makes it more difficult for someone to get and remap the imports for your app.

I would also say that its possible to do using compiled machine code that goes through the PEB and module lists, but machine code still requires a DLLCall() to use from AutoIt..

Share this post


Link to post
Share on other sites

#12 ·  Posted

I'm actually trying to detect when aclayers.dll might be redirecting registry writes.

Share this post


Link to post
Share on other sites

#13 ·  Posted

Not sure what aclayers is, but sounds easy enough. Use DLLCall to call 'GetProcAddress' for the different registry API calls, and compare those returned values to the process's loaded addresses for those API calls. If there's a difference, then they are being redirected. You can even go further to see where the module address is located by comparing it against the loaded modules' start and 'end' (start+size) addresses.

Share this post


Link to post
Share on other sites

#14 ·  Posted

First off, you mean 33.4KB uncompressed (for the File Import/Exports info).

Secondly, NirSoft's DLL Export Viewer incorrectly reports the code address, because that function doesn't actually exist in kernel32.dll. In the PE, it gives an offset that points to a 'forwarder' string. That means that "NTDLL.RtlAddVectoredExceptionHandler" tells you where the function really exists - in NTDLL.DLL, as the function name RtlAddVectoredExceptionHandler. Read my first post, hopefully that will help you understand what forwarding is, and why NirSoft's program reports bad information.

Share this post


Link to post
Share on other sites

#15 ·  Posted

How about that - Nirsoft actually listened to feedback :huh2:

DLL Export Viewer finally has forwarder string information reported correctly as of v1.50.

On another note.. I've noticed some .EXE files are putting Imports all over - inside different sections of the PE. wth? Anyway.. causes the program to crash currently, so if anyone sees a crash, this is most likely whats happening. I'd call it non-standard, but Windows handles it fine, as do some other PE viewers (some crash though). That was a very annoying bugger to track down.

What this means is that I need to search for the right section and recalculate RVA Offsets for each and every Import. What a pain.. Anyhoo.. that's on my to-do list for the next version. Just thought I'd at least log the problem here in the meantime and tell y'all to update your copy of DLL Export Viewer as well ;)

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

Any sample code how you use export functions of a dll to my own script would appreciated?

Thanks

Edited by mailro

Share this post


Link to post
Share on other sites

#17 ·  Posted

You'd need to figure that out for yourself. If you are planning on calling a function in a DLL, you need to know what parameters it takes, as well as the return value. If its a standard Microsoft DLL, you can find the documentation for the function on MSDN. Any other DLL's, you need to know who made it and then check their website for info on calling the functions. I think WinAPIOverride32 lets you explore how certain DLL functions are called, though the program seems to crash more than anything for me.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • BetaLeaf
      [Solved]How to create a Function with flags in a Function for use with Hotkeyset
      By BetaLeaf
      Hi guys. I am trying to make a soundboard app. 
      Here is the code I have so far
      #include "Misc.au3" #RequireAdmin;needed to work in some games. #include "array.au3" Opt("WinTitleMatchMode", -2) If @OSArch = "x64" Then Global $VLC_Path = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" Global $VLC_WorkingDir = "C:\Program Files (x86)\VideoLAN\VLC\" Else Global $VLC_Path = "C:\Program Files\VideoLAN\VLC\vlc.exe" Global $VLC_WorkingDir = "C:\Program Files\VideoLAN\VLC\" EndIf Global $sectionData = IniReadSectionNames(@ScriptDir & "\SoundBoard.ini") If @error Then IniWriteSection(@ScriptDir & "\SoundBoard.ini", "Sound1", 'File="' & @UserProfileDir & '\Music\SampleTrack.mp3"' & @CRLF & 'StartTime="12"' & @CRLF & 'EndTime="34"' & @CRLF & 'PlaybackDevice="Microsoft Soundmapper"' & @CRLF & 'Hotkey="+{numpad9}"') MsgBox(16, "SoundBoard", "SoundBoard.ini is missing. It has been created for you.") ShellExecute(@ScriptDir & "\SoundBoard.ini", "", "", "edit") InputBox("SoundBoard", "Notes:" & @CRLF & "StartTime and EndTime are in seconds. Available Hotkeys can be found at the following url:", "https://www.autoitscript.com/autoit3/docs/functions/Send.htm") Exit EndIf For $i = 1 To $sectionData[0] Local $iArray = IniReadSection(@ScriptDir & "\SoundBoard.ini", $sectionData[$i]) For $j = 1 To UBound($iArray) - 1 Local $result = Assign("SoundBoard" & $i & "_" & $j, IniRead(@ScriptDir & "\SoundBoard.ini", $sectionData[$i], $iArray[$j][0], $iArray[$j][1]), 2) If $result = 1 Then Consolewrite("Variable Assigned: SoundBoard" & $i & "_" & $j & @CRLF & "Data=" & $iArray[$j][1]&@CRLF) Else Consolewrite("Variable was not assigned: SoundBoard" & $i & "_" & $j & @CRLF & "Data=" & $iArray[$j][1]&@CRLF) EndIf Next Next For $i = 1 To $sectionData[0] Local $Hotkey = Eval("SoundBoard"&$i&"_5") ConsoleWrite("Processing Hotkey "&$Hotkey&@CRLF) ;NEED HELP HERE ; HotKeySet($Hotkey,"") Next While 1 Sleep(500);idle to prevent unnecessary work. 10 is the minimal we can set this value to. WEnd Func LoadVLC($iPlayFile, $iPlayFileStartTime, $iPlayFileEndTime, $iPlayAudioDevice = "Microsoft Soundmapper") ShellExecuteWait($VLC_Path, '--qt-start-minimized --play-and-exit --start-time="' & $iPlayFileStartTime & '" --stop-time="' & $iPlayFileEndTime & '" --aout=waveout --waveout-audio-device="' & $iPlayAudioDevice & '" "' & $iPlayFile & '"', $VLC_WorkingDir, "", @SW_HIDE) Beep(500, 200) EndFunc ;==>LoadVLC For example, I have a song called "MoonlightSonata.mp3" and I want to activate it with hotkey !{numpad9}. However, hotkeyset does not allow sending of flags so I cannot use LoadVLC as it is now. I need to create a function that stores the flags using the data from the earlier Inireads. Ik how to use the data but not how to create the function to store that data. I looked at IsFunc() second example but I do not understand. Sorry if I am not being clear on what I am trying to do. My brain is fried right now after trying various things for an hour. Any help would be appreciated. 
      The idea is to be able to have a dedicated hotkey for each sound I want to play so I will need to have my script create a new function by itself using the data from the INI.
      hotkeyset("$hotkey1","MySoundBoard1") hotkeyset("$hotkey2","MySoundBoard2") func MySoundBoard1() LoadVLC("MoonlightSonata.mp3") ;the other flags are optional and will not be set for simplicity. endfunc func MySoundBoard1() LoadVLC("TheBananaSong.mp3") endfunc Honestly I don't care how it is done as long as I have a dedicated hotkey for each entry in my ini.  An example of such an entry looks like
      [Sound1] File="C:\Users\BetaL\Music\SampleTrack1.mp3" StartTime="12" EndTime="34" PlaybackDevice="Microsoft Soundmapper" Hotkey="!{numpad8}" [Sound2] File="C:\Users\BetaL\Music\SampleTrack2.mp3" StartTime="24" EndTime="43" PlaybackDevice="Microsoft Soundmapper" Hotkey="!{numpad9}" Am I making any sense? Please let me know.
       
      Edit: Huge thanks to @Melba23 for the learning experience, his time, and help.
    • Wicked_Caty
      DLL tutorial
      By Wicked_Caty
      I finally gave a look into DLLs and want to make use of them in Autoit.
      I know that a DLL is basically a library with some code, that can be used by several other programs at the same time to get some advantages.
      Yet, I need to know how they are properly used. Also it might be helpful to know what DLL is doing what task. Can you provide some resources?
      Thanks!
    • Wicked_Caty
      Problem with FileCopy()
      By Wicked_Caty
      I'm writing a small program for creating a backup. I want to do that by using FileCopy. Everything from drive C should be copied to drive D.
      FileCopy("C:", "D:", $FC_OVERWRITE + $FC_CREATEPATH) That doesn't do anything, though. I played a bit with the paths, but nothing does what I want. Sometimes only the folder of the program itself is copied, sometimes nothing is copied.
      What am I doing wrong? What do I have to do that everything from C goes to D? Thanks!
      Backup.au3
      Edit: DirCopy does pretty much the same
    • rm4453
      Script Freezes at Img Upload
      By rm4453
      I need to find a way to cick a file Browse button on a website and then upload an image that was previously selected by the user via an Autoit gui... (as you will see I am assigning $imUpload the file path via guictrlread for each of the selected Images....
      It will do just fine going though the submission process until it gets to this image upload page. When it gets to this page it will open the file upload box (here is a pic of it being opened by the autoit script: http://snag.gy/171RS.jpg
      As you can clearly see it opens the image upload box just fine however it does not send the file path via  Send($imUp1)  "here is a pic of the msgbox that is showing me it did grab the right file path for the image:
      However that msgbox doesn't show up unless I close the file upload box... so that is where the code freezup has been narrowed down to... I have tried to be as specific as possible if there is anymore info I can provide that would be usefull please let me know
       
      Here is what I have so far code wise... (i know its hack/slash im new to guis and autoit coding sorry for the eyehurt) *any commented lines of code I have tried but couldn't get them to work... the uncommented lines get the farthest out of them all*
       
      Do $imUpload = $imUploadCount + 1 If $ImageCount >= 6 Then $ImageCount = 6 EndIf $oForm = _IEFormGetObjByName($ksl, "f-142") $oInputFile = _IEFormElementGetObjByName($oForm, "142") ;Assign input focus To the field And Then send the text string ;_IEAction($oInputFile, "focus") ;$iBrowserX = _IEPropertyGet($oInputFile, "browserx") ;$iBrowserY = _IEPropertyGet($oInputFile, "browsery") ;$iWidth = _IEPropertyGet($oInputFile, "width") ;$iHeight = _IEPropertyGet($oInputFile, "height") ;ControlClick(_IEPropertyGet($ksl, "hwnd"), "", "", "left", 1, $iBrowserX + $iWidth / 2, $iBrowserY + $iHeight / 2) _IEAction($oInputFile, "click") ;$oInputFile = _IELinkGetCollection($ksl, 142) ;$oInputFile.fireEvent("onmouseup") ;$oInputFile.click If $imUpload = 1 Then $imUp1 = GUICtrlRead($Image1) Sleep(1500) ElseIf $imUpload = 2 Then $imUp1 = GUICtrlRead($Image2) Sleep(1500) ElseIf $imUpload = 3 Then $imUp1 = GUICtrlRead($Image3) Sleep(1500) ElseIf $imUpload = 4 Then $imUp1 = GUICtrlRead($Image4) Sleep(1500) ElseIf $imUpload = 5 Then $imUp1 = GUICtrlRead($Image5) Sleep(1500) ElseIf $imUpload = 6 Then $imUp1 = GUICtrlRead($Image6) Sleep(1500) EndIf MsgBox("MSG", "$imUp1", $imUp1) Send($imUp1) Sleep(1500) Send("{ENTER}") ;Find Image Description field! $descriptionimfield = _IEGetObjById($ksl, "d-142") If Not @error Then ; MsgBox("Success", "Email Input Found", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Found", "Try Again!") Exit EndIf ;Fill Image Description(s) field! If $imUpload = 1 Then _IEFormElementSetValue($descriptionimfield, $Image1_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 2 Then _IEFormElementSetValue($descriptionimfield, $Image2_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 3 Then _IEFormElementSetValue($descriptionimfield, $Image3_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 4 Then _IEFormElementSetValue($descriptionimfield, $Image4_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 5 Then _IEFormElementSetValue($descriptionimfield, $Image5_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 6 Then _IEFormElementSetValue($descriptionimfield, $Image6_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf EndIf ;Go to Next page! $oButtons = _IETagNameGetCollection($ksl, "input") For $oButton In $oButtons If String($oButton.value) = "Upload File" Then _IEAction($oButton, "click") ;MsgBox("Success", "Login Successful!", "Login Credentials Verified!") ExitLoop Else EndIf Next Sleep(2000) Until $imUpload >= $ImageCount  
      Here is a picture of the webpage that I am interacting with in IE: http://snag.gy/7hQ4y.jpg
       
      Here is the webpage code:
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!-- template-beta --> <script type="text/javascript"> var xdbt_start = (new Date()).getTime(); </script> <!-- <script src="/scripts/search.js" language="javascript" type="text/javascript"></script> --> <title>Place a FREE Classified Ad | ksl.com</title> <meta property="og:title" content="Place a FREE Classified Ad | ksl.com" /> <meta name="keywords" content="news, traffic, weather, sports, classifieds, cars, jobs, homes, television, radio, salt lake, utah, local" /> <meta name="description" content="The KSL.COM Website" /> <meta name="publication_date" content="2005-07-31" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Language" content="en-us" /> <meta http-equiv="imagetoolbar" content="no" /> <meta name="verify-v1" content="Hfa7cDQ0+6irKfA233lorv0N2hQ99FyQwAkFAkWMk+U=" /> <meta property="og:image" content="" /> <meta property="og:type" content="article" /> <meta name="author" content="" /> <meta property="og:article:author" content="" /> <meta name="Copyright" content="Copyright (c) KSL.COM" /> <meta name="robots" content="all" /> <meta name="MSSmartTagsPreventParsing" content="true" /> <meta name="Rating" content="General" /> <meta name="revisit-after" content="1 Day" /> <meta name="doc-class" content="Living Document" /> <style type="text/css" media="screen">@import "/templates/template-v3.css";</style> <style type="text/css" media="screen">@import "/templates/navPopOver.css";</style> <script type="text/javascript" src="/packages/jquery/jquery-1.7.min.js"></script> <script type="text/javascript" src="/packages/jquery/bgiframe-2.1.1.js"></script> <script type="text/javascript" src="/packages/jquery/dimensions-1.2.0.js"></script> <script type="text/javascript" src="/packages/jquery-ui/jquery-ui-1.8.16.custom.min.js"></script> <!-- <script type="text/javascript" src="/javascript/popOverMenu.js"></script> --> <!-- <script type="text/javascript" src="/javascript/tvRadioPopOver.js"></script> --> <style type="text/css" media="projection">@import "/templates/template-v3.css";</style> <link rel="canonical" href="http://www.ksl.com/?nid=640&sid=4516794" /> <meta property="og:url" content="http://www.ksl.com/?nid=640&sid=4516794" /> <link rel="apple-touch-icon" href="apple-touch-icon.png" /> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="/templates/navPopOver.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="/templates/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="print" href="/templates/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="/templates/navPopOver.css" /> <link type="text/css" rel="alternate stylesheet" href="/templates/navPopOver.css" title = "mobile"/> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="/templates/template-v3.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="/templates/template-v3.css" /> <link type="text/css" rel="stylesheet" media="print" href="/templates/template-v3.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="/templates/template-v3.css" /> <link type="text/css" rel="alternate stylesheet" href="/templates/template-v3.css" title = "mobile"/> <link type="image/x-icon" rel="Shortcut Icon" href="/favicon.ico" /> <link rel="help" href="/about.php" title="Site info" /> <script type="text/javascript"> function openMenu(mid) { document.getElementById(mid).style.display = 'block'; } function openScript(url, width, height) { var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=no,status=yes' ); } function logondemand(action) { document.getElementById('onDemandback').src = "http://tools.bonnint.net/ondemandlogger.php?action=" + action; } var init_object = new Object; $(document).ready( function() { for (var i_func in init_object) { init_object[i_func](); } }); </script> <!-- Make Dropdowns work on iPad --> <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { if(navigator.platform == "iPad") { $("a").each(function() { // have to use an `each` here - either a jQuery `each` or a `for(...)` loop var onClick; // this will be a function var firstClick = function() { onClick = secondClick; return false; }; var secondClick = function() { onClick = firstClick; return true; }; onClick = firstClick; $(this).click(function() { return onClick(); }); }); } }); </script> --> <!-- End Make Dropdowns work on iPad --> <script type="text/javascript"> var _user_id = 2566029; // IMPORTANT! Set to the user's ID, username, or email address, or '' if not yet known. var _session_id = '0e98c75518605de0b498139d5d5f1c1e'; // Set to a unique session ID for the visitor's current browsing session. var _sift = _sift || []; _sift.push(['_setAccount', "46e0e4c3e4"]); _sift.push(['_setUserId', _user_id]); _sift.push(['_setSessionId', _session_id]); _sift.push(['_trackPageview']); (function() { function ls() { var e = document.createElement('script'); e.type = 'text/javascript'; e.async = true; e.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.siftscience.com/s.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); } if (window.attachEvent) { window.attachEvent('onload', ls); } else { window.addEventListener('load', ls, false); } })(); </script> </head> <body > <script type="text/javascript"> $(document).ready(function(){ $('#adTakeOverLeft, #adTakeOverRight').each(function(){ var elem = $(this); var top = elem.offset().top; if ($(window).scrollTop() > top) { elem.animate({ top: $(window).scrollTop() }, 500); } $(window).scroll(function(){ var offset = top - $(window).scrollTop(); offset = (offset > 0) ? offset : 0; elem.stop(true).css({ top: offset, position: 'fixed' }); }); }); }); </script> <style> #adTakeOverLeft, #adTakeOverRight { position: absolute; /* set to fixed in js */ top: 143px; margin:0; width:200px; overflow:visible; } #adTakeOverLeft { left: 50%; margin:0 0 0 -712px; *margin:0 0 0 -1024px; text-align:right; } #adTakeOverRight { right: 50%; margin: 0 -712px 0 0; text-align:left; } .adTakeOverInner img { border:0; } .adTakeOverInner a:link, .adTakeOverInner a:visited, .adTakeOverInner a:hover { text-decoration: none; } #adTakeOverLeft .adTakeOverInner { float:right; } #adTakeOverRight .adTakeOverInner { float:left; } /* @todo: delete this #mainoutsideBlock { background:gray; } #mainBlock { background:silver; } #bodyBlock { background:tan; } */ </style> <div id="adTakeOverLeft"> <div class="adTakeOverInner"> <!-- <img src="http://s0.2mdn.net/viewad/3065301/AFCU_Auto_300x600_2_13_12.jpg" /> --> <!-- <img src="/graphics/takeover_left.jpg" /> --> </div> </div> <div id="adTakeOverRight"> <div class="adTakeOverInner"> <!-- <img src="http://s0.2mdn.net/viewad/3065301/AFCU_Auto_300x600_2_13_12.jpg" /> --> <!-- <img src="/graphics/takeover_right.jpg" /> --> </div> </div> <style> #navMenu a.active { text-decoration: underline; } #headMenu a:hover { background: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } #headMenu a:hover img { background-color: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } #navBlock { background: rgb(177, 205, 255) !important; /* Old browsers */ background: -moz-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important;; /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(177, 205, 255, 1)), color-stop(47%, rgba(153, 190, 255, 1)), color-stop(100%, rgba(140, 182, 255, 1))) !important; /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important; /* Opera 11.10+ */ background: -ms-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important; /* IE10+ */ background: linear-gradient(to bottom, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b1cdff', endColorstr='#8cb6ff', GradientType=0); /* IE6-9 */ box-shadow: 0 5px 9px -6px #888 !important; border-radius: 0px 0px 2px 2px; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 0px 0px 2px 2px; -moz-border-radius: 0px 0px 2px 2px; } #headMenu .on, #headMenu .Homeon { background-color: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } .on-sticky { background: #b1cdff !important; float: left; height: 34px; background-image: none; background-repeat: no-repeat; background-position: 0px 20px; margin: 0; padding: 0; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } .on-sticky a { font-weight: bold; color: #0c162f !important; padding: 10px 5px 11px 5px; } #headMenu li.off.on { background: #b1cdff url('http://static.ksl.com/header/header_graphics/home-button_on.png') 0 7px no-repeat; } #headMenu li.off.on img { visibility: hidden; } </style> <script type="text/javascript"> var kslHeaderMeta = { kslLinkPrefix: '/' }; </script> <!-- <script type="text/javascript" src="//static.ksl.com/header/header_includes/popOverMenu.js?cachebust=2"></script> --> <script type="text/javascript" src="//static.ksl.com/header/header_includes/tvRadioPopOver.js?cachebust=2"></script> <style type="text/css" media="screen">@import "//static.ksl.com/header/header_includes/navPopOver.css";</style> <style> #headBlock .bottom { height: 34px !important; } </style> <style type="text/css" media="screen">@import "//static.ksl.com/header/header.css";</style> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="//static.ksl.com/header/header_includes/navPopOver.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="print" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="alternate stylesheet" href="//static.ksl.com/header/header_includes/navPopOver.css" title = "mobile"/> <!-- empty div for popOver --> <div id="tvRadioWindow"></div> <div id="headBlock"> <div class="Channels" data-vr-zone="HP Channels"> <span class="utility"> <span class="utility-login"><span class="utility-login-loggedin"><a href="/public/member/home" data-vr-contentbox="account details" title="View account details">Hello rm4453</a>&nbsp;|&nbsp;<a href="https://www.ksl.com/public/member/logout?login_forward=%2Findex.php%3Fnid%3D640%26form_3%3D16%26form_4%3D467" data-vr-contentbox="logout" title="Logout of ksl.com">Logout</a></span></span>&nbsp;&nbsp; <a href="//www.ksl.com/?sid=15956469&nid=322" data-vr-contentbox="" title="Leave feedback about your experience">Feedback</a>&nbsp;&nbsp; <a href="//www.ksl.com/index.php?nid=205" data-vr-contentbox="" title="Contact KSL Customer Support">Contact Us</a> </span> <!-- end utility --> <div style="float: left;" class="tvRadioPopOver" nid="15"> <a href="/?nid=15" data-vr-contentbox="KSL TV" alt="KSL TV">KSL TV</a>&nbsp; </div> <div style="float: left;"> <img style="margin-top: 3px; float: left; display: block;" src="//static.ksl.com/header/header_graphics/downArrow.png" border=0/>&nbsp;&nbsp;&nbsp; </div> <div style="float: left;" class="tvRadioPopOver" nid="16"> <a href="/?nid=16" alt="KSL Newsradio" data-vr-contentbox="KSL Newsradio">KSL Newsradio</a>&nbsp; </div> <div style="float: left;"> <img style="margin-top: 3px; float: left; display: block;" src="//static.ksl.com/header/header_graphics/downArrow.png" border=0/>&nbsp;&nbsp;&nbsp; </div> <div style="float: left;"> <a href="http://live.ksl.com/scheduler/embed-view" alt="KSL Mobile" style="color: #fff;" data-vr-contentbox="KSL Live">KSL Live!</a>&nbsp; </div> <div style="float: left;">&nbsp;&nbsp;&nbsp;</div> <div style="float: left;"> <a href="/?nid=1114" alt="KSL SHows" style="color: #fff;" data-vr-contentbox="KSL Shows">KSL Shows</a>&nbsp; </div> <div style="float: left;">&nbsp;&nbsp;&nbsp;</div> <div style="float: left;"> <a href="/?nid=1072" alt="iWitness" style="color: #fff;" data-vr-contentbox="iWitness">iWitness</a>&nbsp; </div> <div style="float: left;">&nbsp;&nbsp;&nbsp;</div> <div style="float: left;"> <a href="/?sid=17920249&nid=250" alt="KSL Mobile" style="color: #fff;" data-vr-contentbox="Mobile">Mobile</a>&nbsp; </div> <div style="float: left;"></div> </div> <!-- Channels --> <div class="middle"> <div class="logo"> <a href="/index.php?nid=210"><img src="//static.ksl.com/header/header_graphics/logo.png" border=0></a> </div> <!-- WX box --> <div class="titleBox"> <a href="/index.php?nid=13"><font style="color: #fff; font-size: 36px;"> &nbsp;&raquo;&nbsp;Classifieds</font></a> </div> <!-- End of WX box --> <!-- Search box --> <!-- Temporary JS to get search working --> <script type="text/javascript"> function selectSearch() { var searchMethod = $("#search_select").val(); var searchKeyword = $("#search_keyword").val(); if (searchMethod == 'news') { window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=kslcom&q=" + searchKeyword + "&x=15&y=19"; return false; } else if (searchMethod == 'keyword') { //$('#search_form').attr('action', '/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=keyword&q=' + searchKeyword + '&x=11&y=16'); window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=keyword&q=" + searchKeyword + "&x=11&y=16"; return false; } else if (searchMethod == 'classifieds') { window.location.href = "/index.php?nid=231&search=" + searchKeyword; return false; } else if (searchMethod == 'local') { window.location.href = "http://local.ksl.com/search/keyword/" + searchKeyword + "/location/Salt+Lake+City%2C+UT+84101"; return false; } else if (searchMethod == 'web') { window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Afhkopy-oe3c&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=web&q=" + searchKeyword + "&x=0&y=0"; return false; } return false; } </script> <!-- END Temporary JS to get search working --> <form id="search_form" action="" method="get" onSubmit="return selectSearch();"> <div class="searchBox"> <input type="image" src="//static.ksl.com/header/header_graphics/search-magnify.png" class="button"/> <span class="dropdown"> <select id="search_select" class="dropdownMenu"> <option value="news">all of KSL</option> <option value="classifieds">Classifieds</option> <option value="local">Local</option> <option value="web">Web</option> <option value="keyword">Keyword</option> </select> </span> <input type="text" name="search" id="search_keyword" class="searchField" value="Enter Keyword" onclick="this.value = ''"/> </div> </form> <!-- End of Search box --> </div> <!-- middle --> <!-- Main Nav --> <div class="bottom"> <div id="headMenu" data-vr-zone="Head Menu"> <ul> <li class="off" nid="210"><a href="/index.php?nid=210" style=" padding: 0px 0px 10px 0px; background: none !important; height: auto; width: 100%;" data-vr-contentbox=""> <img src="//static.ksl.com/header/header_graphics/home-button.png" border=0> </a></li> <li class="navHover" nid="30"><a href="/index.php?nid=30" data-vr-contentbox=""> Utah </a></li> <li class="navHover" nid="998"><a href="/index.php?nid=998" data-vr-contentbox=""> Features </a></li> <li class="navHover" nid="31"><a href="/index.php?nid=31" data-vr-contentbox=""> U.S. </a></li> <li class="navHover" nid="32"><a href="/index.php?nid=32" data-vr-contentbox=""> World </a></li> <li class="navHover" nid="599"><a href="/index.php?nid=599" data-vr-contentbox=""> Politics </a></li> <li class="navHover" nid="115"><a href="/index.php?nid=769" data-vr-contentbox=""> Sports </a></li> <li class="navHover" nid="88"><a href="/?nid=88" data-vr-contentbox=""> Weather </a></li> <li class="navHover" nid="710"><a href="/index.php?nid=710" data-vr-contentbox=""> Traffic </a></li> <li class="navHover" nid="116"><a href="/index.php?nid=116" data-vr-contentbox=""> Biz </a></li> <li class="navHover" nid="11"><a href="/index.php?nid=11" data-vr-contentbox=""> Entertainment </a></li> <li class="navHover" nid="1168"><a href="/?nid=1287" data-vr-contentbox=""> Outdoors </a></li> <li class="navHover" nid="1267"><a href="/index.php?nid=1267" data-vr-contentbox=""> BrandView </a></li> </ul> </div> <div id="headclassifiedMenu" data-vr-zone="Marketplace Nav"> <ul> <li><a href="https://shops.ksl.com" data-vr-contentbox="" title="" style="position: relative;">Shops <div class="beta">Beta</div></a></li> <li><a href="/deals" data-vr-contentbox="" title="View today's discounts and deals">Deals</a></li> <li><a href="//local.ksl.com/" data-vr-contentbox="" title="Find Coupons & Discounts from Local Businesses">Local</a></li> <li ><a href="/jobs/" data-vr-contentbox="">Jobs</a></li> <li ><a href="/homes" data-vr-contentbox="">Homes</a></li> <li ><a href="/auto" data-vr-contentbox="">Cars</a></li> <li class="off"><a href="/index.php?nid=13" data-vr-contentbox="">Classifieds</a></li> </ul> </div> <!-- headclassifiedMenu --> </div> <!-- bottom --> </div> <!-- headBlock --> <!-- empty div for popOver --> <div id="popOverWindow"></div> <script> var SCROLL_OUT_DELAY = 500; var scrollTimer; var HOME_NID = '640' || 210; var PARENT_NID = '640' || 210; var activeNid = HOME_NID; var links = jQuery.parseJSON('[{"nid":"210","children":[]},{"nid":"30","children":[{"href":"\/index.php?nid=148","name":"Local Stories"},{"href":"\/index.php?nid=680","name":"Education"},{"href":"\/index.php?nid=308","name":"KSL Investigates"},{"href":"\/index.php?nid=1174","name":"Your Life - Your Health"},{"href":"\/index.php?nid=694","name":"Staying Safe"},{"href":"\/index.php?nid=1196","name":"More on the web"}]},{"nid":"998","children":[{"href":"\/index.php?nid=999","name":"Family"},{"href":"\/index.php?nid=1008","name":"HYST?"},{"href":"\/index.php?nid=1285","name":"Uplifting"},{"href":"\/index.php?nid=1000","name":"Lifestyle"},{"href":"\/index.php?nid=1287","name":"Outdoors &amp; Rec"},{"href":"\/index.php?nid=1007","name":"Religion"},{"href":"\/index.php?nid=1283","name":"LDS Life"},{"href":"\/index.php?nid=1002","name":"Science &amp; Tech"},{"href":"\/index.php?nid=333","name":"Odds &amp; Ends"},{"href":"\/index.php?nid=1072","name":"iWitness"},{"href":"\/index.php?nid=1358","name":"Initiatives"}]},{"nid":"31","children":[]},{"nid":"32","children":[]},{"nid":"599","children":[]},{"nid":"115","children":[{"href":"?nid=774","name":"BYU"},{"href":"?nid=827","name":"UofU"},{"href":"?nid=862","name":"Jazz"},{"href":"?nid=859","name":"USU"},{"href":"?nid=854","name":"RSL"},{"href":"?nid=853","name":"Prep"},{"href":"\/index.php?nid=1150","name":"SUU"},{"href":"\/index.php?nid=1151","name":"Weber"},{"href":"\/index.php?nid=1251","name":"UVU"},{"href":"\/index.php?nid=259","name":"Pickem"},{"href":"http:\/\/ksl.sportsdirectinc.com\/gamematchups.aspx","name":"Stats\/Scores"},{"href":"?nid=1356","name":"More"}]},{"nid":"88","children":[{"href":"http:\/\/www.ksl.com\/index.php?nid=1255","name":"Home"},{"href":"\/index.php?nid=525","name":"Current Conditions"},{"href":"\/index.php?nid=175","name":"VORTEX"},{"href":"\/index.php?nid=233","name":"MicroCast"},{"href":"?sid=35584527&nid=149","name":"Pollen Count"},{"href":"\/index.php?nid=340","name":"Junior Weather Specialists"},{"href":"?sid=128553&nid=522","name":"Ski Report"},{"href":"\/index.php?nid=524","name":"Weather Cams"},{"href":"?nid=580","name":"Water Watch"},{"href":"\/index.php?nid=978","name":"Snowpack"},{"href":"\/index.php?nid=1311","name":"myAir"},{"href":"\/index.php?nid=1314","name":"Air Quality"}]},{"nid":"710","children":[{"href":"?nid=710","name":"KSL Traffic Center"}]},{"nid":"116","children":[]},{"nid":"11","children":[{"href":"http:\/\/movies.ksl.com","name":"Movie Reviews &amp; Listings"},{"href":"\/index.php?nid=1204","name":"Entertainment News"}]},{"nid":"1168","children":[{"href":"http:\/\/outdoors.ksl.com\/","name":"Outdoors Activity Map"},{"href":"http:\/\/www.ksl.com\/index.php?nid=1113&sid=17217040&title=ksl-outdoors-with-adam-eakle","name":"KSL Outdoors with Adam Eakle"}]},{"nid":"1267","children":[{"href":"\/index.php?nid=1300","name":"Young Automotive Auto Review"},{"href":"\/index.php?nid=1306","name":"UofU Health Feed"},{"href":"\/index.php?nid=1332","name":"Green Tea HP"},{"href":"\/index.php?nid=1339","name":"Mountain America Money Matters"},{"href":"\/index.php?nid=1351","name":"MountainStar HealthShare"},{"href":"\/index.php?nid=1371","name":"UCAIR"},{"href":"\/index.php?nid=1375","name":"Zero Fatalities"},{"href":"\/index.php?nid=1379","name":"Salt Lake Regional Medical Center"},{"href":"\/index.php?nid=1381","name":"Broadway at the Eccles"}]},{"nid":"13","children":[{"href":"\/index.php?nid=47","name":"Browse Ads"},{"href":"\/index.php?nid=443","name":"Cars"},{"href":"?sid=5017903&nid=651","name":"Homes"},{"href":"\/jobs\/listings","name":"Jobs"},{"href":"\/index.php?sid=&nid=793","name":"Services"},{"href":"\/index.php?nid=640","name":"Place a FREE Ad"},{"href":"http:\/\/www.ksl.com\/index.php?nid=443&sid=733005&tab=post","name":"Place a FREE Car Ad"},{"href":"\/index.php?nid=280","name":"My Ads"},{"href":"\/index.php?nid=385","name":"Advanced Search"},{"href":"\/index.php?nid=207","name":"Help"}]}]'); var linksMap = jQuery.parseJSON('["210","30","998","31","32","599","115","88","710","116","11","1168","1267",640]'); if ($.inArray(parseInt(HOME_NID), linksMap) < 0) { HOME_NID = parseInt($("#headMenu li.on-sticky").attr("nid")) || 210; } for (var i = 0, len = linksMap.length; i < len; i++) { linksMap[i] = parseInt(linksMap[i]); } function subNavRow(links) { var panel = ''; if (!('children' in links)) { links.children = []; } for (var i = 0, len = links.children.length; i < len; i++) { panel += '<li><a href="' + links.children[i].href + '">' + links.children[i].name + '</a></li>'; } return panel; } function getSubNav(nid) { nid = parseInt(nid); activeNid = nid; var _links = void 0; var index = $.inArray(nid, linksMap); if (index >= 0) { _links = links[index]; } else { var _nid = $("#headMenu .on").attr("nid") || 0; _nid = parseInt(_nid); if (_nid <= 0) { _links = []; } else if ($.inArray(_nid, linksMap) >= 0) { _links = links[$.inArray(_nid, linksMap)]; } } var html = subNavRow(_links); $("#navBlock #navMenu ul").html(html); } function onMouseOver(event) { event.preventDefault(); clearTimeout(scrollTimer); var nid = $(this).parent().attr("nid"); getSubNav(nid); } function onMouseOverSub(event) { event.preventDefault(); clearTimeout(scrollTimer); $("#headMenu li[nid]").removeClass("on"); $("#headMenu li[nid='" + activeNid + "']").addClass("on"); } function onMouseOut(event) { event.preventDefault(); scrollTimer = setTimeout(function () { getSubNav(HOME_NID); activeNid = HOME_NID; $("#headMenu li[nid]").removeClass("on"); }, SCROLL_OUT_DELAY); } $("#headMenu").on("mouseover", "li[nid] a", onMouseOver); // These registrations *must* be rooted on body because that's [currently] the nearest ancestor // attached to the DOM by the time this code is executed. #headMenu and #navBlock don't get // attached until after this code executes. $("body").on("mouseover", "#headMenu li, #navBlock", onMouseOverSub); $("body").on("mouseout", "#headMenu li, #navBlock", onMouseOut); setTimeout(function () { getSubNav(HOME_NID); $("#navMenu a[href*='nid=640']").addClass("active"); }, 100); </script> <div id="mainoutsideBlock"> <div id="mainBlock"> <div id="navBlockorange"> <!-- .................... Block: subNavBar .................... --> <div id="navMenuorange"> <ul> <li><a href="/?nid=47">Classifieds</a></li> <li><a href="/auto">Cars</a></li> <li><a href="/homes">Homes</a></li> <li><a href="/jobs/">Jobs</a></li> </ul> <ul style="float: right; margin-top: 0px; margin-right: 5px;"> <li><a href="/?nid=385">Advanced Search</a></li> <li><a href="/?nid=207">Help</a></li> <li><a href="/myAds/listing-classified">My Ads</a></li> <li class="on"> <a class="placeAdHover" href="/?nid=1126" style="">Place an Ad <img style="margin-bottom: -3px;" height="8" width="8" src="/images/classifieds/placeAdArrow.jpg" border="0" /></a> </li> </ul> </div> <!-- navMenu --> <!-- Place an Ad popOver --> <div id="popOverWindow"></div> <!--[if IE]> <style type="text/css"> #placeAdDropdown { margin-right: -492px; } .placeAdHover { margin-top: -5px; } </style> <![endif]--> <script type="text/javascript" src="/javascript/placeAdPopOver.js?cachebust=2"></script> <!-- <div id="placeAdDropdown" style="position: absolute; right: 172px; top: 23px; display: none; width: 70px; height: 53px; /* left: 1043px;*/ background-color: #f7941d; z-index: 99;"> --> <div id="placeAdDropdown" > <!-- <a href="/?nid=1126" style="color: white; margin-bottom: 5px; margin-left: 5px; margin-top: 5px;">Classified</a><br /> --> <a href="/?nid=1126" style="color: white; margin: 5px;">Classified</a><br /> <a href="/auto/sell" style="color: white; margin: 5px;">Car</a><br /> <a href="http://local.ksl.com/merchant/list/look-up" style="color: white; margin: 5px;" >Business</a><br /> <a href="/jobs/edit" style="color: white; margin: 5px;" >Job</a><br /> <a href="/homes/sell/sell-choice" style="color: white; margin: 5px;">Home</a> </div> <!-- End Place Ad PopOver --> </div> <!-- navBlock --> <div id="bodyBlock"> <!-- .................... Block: column1 .................... --> <div id="bodyCol1"> <div style="width: 424px; float: left; margin: 0px 0px 10px 0px;"> <style type='text/css'> .announcement_box { float: left; clear:left; margin: 0px 0px 20px 0px; background: #eee; width: 615px; padding: 10px; font-size: 14px; font-weight: bold; } .announcement_box a { text-decoration:none; } </style> <div class="announcement_box"> <font color="#aa0000">UPDATE:</font> Services is now part of <a href="http://local.ksl.com/?s_cid=services">KSL Local</a> with more categories and added features.<br /> To take full advantage of KSL Local be sure to <a href="http://local.ksl.com/merchant/locations">add your business</a> today. Service ads posted outside of KSL Local will be deleted.<br /> </div> <div style='clear: both;'></div> </div> <div style="width: 424px; float: left; margin: 0px 0px 10px 0px;"> <!-- Hack --> <script type="text/javascript"> $(document).ready( function() { $('#3').attr('disabled', 'disabled'); $('#4').attr('disabled', 'disabled'); $('.element:eq(3)').append( ' <a href="index.php?nid=1126">Change »</a>' ); $('.element:eq(4)').append( ' <a href="index.php?nid=1126">Change »</a>' ); } ); </script> </div> <div id="bodyCol2"> <!-- ===================[ STORY PAGES ]================= --> <!-- ===================[ STORY MEDIA ]================= --> <!-- ===================[ STORY RELATED ]================= --> <!-- ===================[ STORY RELATED ]================= --> <!-- ===================[ STORY GALLERIES ]================= --> </div> <script language="JavaScript" type="text/javascript"> function addInputs() { var oNewNode = document.createElement("div"); oNewNode.setAttribute("style","padding-top: 5px;"); document.getElementById('attr_fields').appendChild(oNewNode); oNewNode.innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; // document.getElementById('attr_fields').innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; } var mediaCount = 0; // ================================================================ function addMedia(ctrlID,divID,inputName,limit) { var name = "media_"+mediaCount; var oNewNode = document.createElement("div"); oNewNode.setAttribute("style","padding-top: 3px;"); oNewNode.setAttribute("id",name); document.getElementById(divID).appendChild(oNewNode); oNewNode.innerHTML="<input name=\""+inputName+"[]\" type=\"file\" /> <a href=\"#\" onClick=\"delMedia('"+ctrlID+"','"+name+"')\">Remove</a>"; mediaCount++; if (document.getElementById(divID).childNodes.length >= limit) { document.getElementById(ctrlID).style.display = "none"; } // document.getElementById('attr_fields').innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; } // ================================================================ function delMedia(ctrlID,name) { var oNode = document.getElementById(name); oNode.parentNode.removeChild(oNode); mediaCount--; document.getElementById(ctrlID).style.display = "block"; } var subName; // ================================================================ function setCat(cName,sName,col,tId) { var sNode = document.getElementById(sName); var cIndex = document.getElementById(cName).selectedIndex; var cValue = document.getElementById(cName).options[cIndex].value; //alert(cValue); //sNode.style.background = "#ddd"; sNode.options[1] = new Option("[Loading Options]", "", false, false); sNode[1].selected = true; subName = sName; $('#throbber-'+subName).css('display','inline'); //document.getElementById("rmiCmd").src = "/scripts/cat_options.php?col="+col+"&tid="+tId+"&nid="+cValue; $.get('/scripts/cat_options2.php', { col: col, tid: tId, nid: cValue }, setSub2, 'json'); } // ================================================================ function setSub2(d) { var sub = $('#'+subName); $('#throbber-'+subName).css('display','none'); if(d.result == 'error') return; //sub.css('background-color','#ffffff'); sub.empty(); sub.append('<option value="">Select a Sub-Category</option>'); for(i in d.categories) { var v = d.categories[i].split('|'); sub.append('<option value='+v[0]+'>'+v[1]+'</option>'); } } // ================================================================ function setSub(doc) { var sNode = document.getElementById(subName); var rmiData = doc.getElementById('rmiData').innerHTML; var aItems = rmiData.split("|"); var aVals; sNode.style.background = "#fff"; //var tNode = document.getElementById("id_text"); //tNode.value = rmiData; for (var x = 0; x < (aItems.length -1); x ++) { aVals = aItems[x].split("="); sNode.options[x+1] = new Option(aVals[1],aVals[0],false,false); } sNode.length = x+1; sNode[0].selected = true; } // ================================================================ function start_upload(id) { $('#d-'+id).css('background-color', '#ccc'); $('.throbber').css('display', 'inline'); } // ================================================================ function stop_upload(id, src, desc, alt) { var html = ''; var idx = $('#u-'+id+' div.photo').length; if(src == false) { alert("Error: "+desc); } else { html = '<div class="photo"><div class="operations"><button class="photo-up" onclick="photo_up(this)">Move up</button> <button class="photo-down" onclick="photo_down(this)">Move down</button> <button class="photo-delete" onclick="photo_delete(this)">Delete</button></div><img class="thumbnail" src="'+src+'?filter=ksl/newhl"><div class="title"><span class="title-prefix">Photo:</span> '+alt+'</div><div><span class="title-prefix">Description:</span> <span class="description">'+desc+'</span></div><div><button class="photo-edit" onclick="photo_edit_description(this)">Edit description</button></div></div>'; $('#u-'+id).append(html); } // clear the form $('#d-'+id).css('background-color', 'white'); $('#f-'+id).get(0).reset(); $('.throbber').css('display', 'none'); } // ================================================================ function photo_up(e) { var src = $(e).parent().parent(); var dst = $(src.prev()); if(dst.length == 0) return; var srcidx = src.prevAll().length; var dstidx = srcidx-1; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'move_media', source: 'airlock', aid: '71632824', from: srcidx, to: dstidx }, function (d) { if(d.result != 'success') return; $(src).insertBefore(dst); }, 'json' ); } // ================================================================ function photo_down(e) { var src = $(e).parent().parent(); var dst = $(src.next()); if(dst.length == 0) return; var srcidx = src.prevAll().length; var dstidx = srcidx+1; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'move_media', source: 'airlock', aid: '71632824', from: srcidx, to: dstidx }, function (d) { if(d.result != 'success') return; $(src).insertAfter(dst); }, 'json' ); } // ================================================================ function photo_delete(e) { var src = $(e).parent().parent(); var index = src.prevAll().length; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'delete_media', source: 'airlock', aid: '71632824', index: index }, function (d) { if(d.result != 'success') return; src.remove(); }, 'json' ); } // ================================================================ function photo_edit_description(e) { var src = $(e).parent().parent(); var index = src.prevAll().length; var desc = src.find('.description'); var odesc = desc.text(); var ndesc = prompt('Please enter the description for the photo:', odesc); if(ndesc == null) return; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'edit_media', source: 'airlock', aid: '71632824', index: index, desc: ndesc }, function (d) { if(d.result != 'success') return; desc.text(ndesc); }, 'json' ); } // ================================================================ function supports_html5_storage() { try { return 'localStorage' in window && window['localStorage'] !== null; } catch (e) { return false; } } // ================================================================ function send_id() { //20110427 - BH //this causes double posting in the classifieds, as it resubmits anything in the airlock a second time. return; var id; if(!supports_html5_storage()) return; id = localStorage.getItem('ddmId'); if(id == null) { id = Math.round(Math.random()*10000000); localStorage.setItem('ddmId', id); } $.post('/resources/form/airlock_api.php', { cmd: 'set_id', source: 'airlock', aid: '71632824', id: id}, function(){}, 'json' ); } // ================================================================ $(document).ready(function(){ send_id(); }); </script> <style type="text/css"> .barBox { clear: left; margin-left: 0px; font-size: 14px; color: #fff; font-weight: normal; text-align: center; border-left: 1px solid #000; border-right: 1px solid #000; height: 21px; width: 620px; } .bar1 { float: left; background: url('/images/barBackRed.gif') no-repeat top right; height: 21px; } .bar2 { float: left; background: url('/images/barFrontRed.gif') no-repeat top right; height: 21px; } .bar3 { float: left; background: url('/images/barBackGrey.gif') no-repeat top right; height: 21px; } .bar4 { float: left; background: url('/images/barBackGrey.gif') no-repeat top left; height: 21px; } .bar5 { float: left; background: url('/images/barFrontRed.gif') no-repeat top left; height: 21px; } .barLabels { clear: left; margin-left: 10px; font-weight: bold; text-align: center; height: 21px; width: 332px; color: #666; padding-top: 5px; font-size: 12px; } .barBottom { float: left; height: 40px; text-align: left; } .barText { position: relative; top: 4px; left: -6px; } .formDivider { clear: left; width: 620px; border-top: 1px solid #ccc; background: #eeeeee; margin-top: 10px; margin-bottom: 15px; height: 20px; font-size: 14px; font-weight: bold; padding: 3px 0px 0px 7px; } .imageBox { float: left; margin-top: 5px; margin-bottom: 5px; margin-right: 10px; } .help { font-size: 10px; } .boxOk { margin-top: 4px; } .boxErr { margin-top: 4px; background: #fbb; border: 1px solid #900; padding: 2px; } .boxStatic { margin-top: 4px; font-weight: bold; font-size: 14px; } .optionBox { margin-top: 3px; margin-bottom: 8px; } .submitBox { clear: both; margin: 5px 0px 0px 2px; } .element { clear: left; width: 585px; margin-bottom: 3px; padding: 0px; } .elementFloat { float: left; margin-right: 10px; margin-bottom: 4px; } .iLabel { float: left; display: block; font-weight: normal; padding: 0px; margin: 4px 0px 0px 5px; text-align: left; font-size: 12px; width: 120px; } .gBox { width: 625px; margin: 0px 0px 15px 0px; padding: 0px; overflow: hidden; } .gTitle { font-size: 18px; font-weight: bold; padding: 5px 0px 5px 0px; width: 620px; border-top: 1px solid #ccc; margin: 0px 0px 12px 0px; } .gBody { padding: 0px 15px 5px 20px; width: 590px; } iframe.uploader { display: none; width: 0; height: 0; } /*iframe.uploader { display: block; width: 400px; height: 300px; }*/ .photos { margin-left: 5px; clear: both; } .operations { float: right; } .operations span { color: blue; } .photos div.photo { min-height: 77px; height: 77px; margin-bottom: 8px; padding-bottom: 9px; padding-top: 2px; border-bottom: dashed #ccc 1px; } .photos input { font-size: 10px; } .photos img { float: left; margin-right: 10px; } .photos .title-prefix { font-weight: bold; } .photos button { background-color: #e6e6e6; border: solid #aaa 1px; font-size: 80%; -moz-border-radius: 3px; -webkit-border-radius: 3px; } .photos button:hover { color: white; background-color: #0073ea; border: solid #0073ea 1px; } .photos button.photo-edit { margin-top: 3px; } .photos .thumbnail { width: 100px; height: 75px; } .throbber { display: none; } #HomeDetails { display: none; } </style> <div style='clear: both;'></div> <div class="gBox"> <div style="float:left; font-size: 14px; font-weight: bold; color: #777; margin: 0px 0px 2px 0px;">KSL Classifieds - Utah's Fastest Growing Classifieds Website</div> <div style="clear:left; font-size: 20px; font-weight: bold; margin: 0px 0px 10px 0px;">Place a FREE Classified Ad</div> <div style=" margin: 0px 0px 10px 0px; "> <div class="barBox"> <div class="bar1" style="width: 137px;"><span class="barText"><span style="font-size: 11px;">Create the Ad</span></span></div> <div class="bar1" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Contact Info</span></span></div> <div class="bar2" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Add Photos</span></span></div> <div class="bar3" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Terms of Use</span></span></div> <div class="bar4" style="width: 111px;"><span class="barText"><span style="font-size: 11px;">Thank You</span></span></div> </div> </div> <div id=""> <div id="" class="gBody"> </div> </div> <div id="PhotoUpload"> <div class="gTitle">Photo Upload</div> <div id="PhotoUpload" class="gBody"> <div class="element"> <p> <b>Note:</b> The first photo will be used as the primary photo and will represent your ad in the listings, so make sure it's the best photo you have. Use the buttons to the right of each image to change the ordering. </p> <br> </div> <div class="element"> <div id="u-142" class="photos"> </div> <form id="f-142" method="post" enctype="multipart/form-data" action="/resources/form/upload.php" onsubmit="start_upload(142)"> <input type="hidden" name="nid" value="640" /> <input type="hidden" name="sid" value="4516794" /> <input type="hidden" name="fid" value="191336" /> <input type="hidden" name="source" value="airlock" /> <input type="hidden" name="aid" value="71632824" /> <label for="142" class="iLabel">File:</label> <input type="hidden" name="MAX_FILE_SIZE" value="10000000" /> <input id="142" name="142" type="file" class="boxOk" /><br/> </div> <div class="element"> <label for="d-142" class="iLabel">Description:</label> <textarea name="d-142" class="boxOk" id="d-142" wrap="soft" style="width: 400px; height: 50px;"></textarea> </div> <div class="element"> <label for="s-142" class="iLabel"></label> <input id="s-142" name="s-142" type="submit" value="Upload file" /> <img class="throbber" src="/graphics/throbber.gif" height="16" width="16"> <br/> <iframe id="i-142" name="i-142" class="uploader" src=""> </iframe> </form> <script type="text/javascript"> //$(document).ready(function () { $('#f-142').submit(function () { $('#f-142').attr('target','i-142'); }); //}); </script> </div> </div> </div> <div id="PhotoTips"> <div class="gTitle">Photo Tips</div> <div id="PhotoTips" class="gBody"> <div class="element"> <div style="padding-bottom: 7px; padding-left: 15px;"> <li>Submitted images must be in JPG or GIF format.</li> <li>Although all submitted images will automatically be resized to <span style="font-weight: bold;">640x480</span> pixels, we recommend resizing your images to these dimensions before you upload them to avoid any potential problems. Click <a href=http://www.ksl.com/?nid=391&sid=651805 target="_new">HERE</a> for instructions on how to do this.</li> <li>If resizing your images, as recommended above, does not help, then try submitting the ad with no images and then add the rest later using the edit function in "My Ads".</li> </div> </div> </div> </div> </div> <form method="post" action="/index.php?nid=640&form_3=16&form_4=467" enctype="multipart/form-data" /> <input type="hidden" name="nid" value="640" /> <input type="hidden" name="sid" value="4516794" /> <input type="hidden" name="fid" value="191336" /> <div class="submitBox"> <input type="submit" value="&lt;&lt; Back Page" name="back" class="submitBox" /> <input type="submit" value="Next Page &gt;&gt;" name="next" class="submitBox" /> </div> </form> <style type="text/css"> .mediaright { float: right; margin-left: 15px; margin-bottom: 3px; width: 202px; } .medialeft { float: left; margin-right: 30px; margin-bottom: 3px; width: 202px; } .sidebarright { float: right; width: 180px; border-bottom: 1px #ccc solid; color: #000; font-size: 12px; margin: 0px 0px 10px 10px; padding: 0px 0px 7px 0px; } .sidebarleft { float: left; width: 180px; border-bottom: 1px #ccc solid; color: #000; font-size: 12px; margin: 0px 10px 10px 0px; padding: 0px 0px 7px 0px; } .sidebarleft ul { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 30px; } .sidebarright ul { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 30px; } .divboxleft { float: left; margin-right: 15px; margin-bottom: 3px; width: 202px; font-size: 12px; padding: 6px; border: solid 1px black; } .divboxright { float: right; margin-left: 15px; margin-bottom: 3px; width: 202px; font-size: 12px; padding: 6px; border: solid 1px black; } .divboxleft ul { margin: 0px 0px 0px 10px; padding: 5px 0px 5px 15px;overflow: auto; } .divboxright ul { margin: 0px 0px 0px 10px; padding: 5px 0px 5px 15px;overflow: auto; } .divboxleft font { font-size: 11px; } .divboxright font { font-size: 11px; } .ksltableleft { float: left; margin-right: 15px; margin-bottom: 10px;margin-top: 5px;font-size: 11px; } .ksltableright { float: right; margin-left: 15px; margin-bottom: 10px;margin-top: 5px;font-size: 11px; } .ksltable { border-collapse:collapse; } .ksltable td, .ksltable th { font-size:11px; border:1px solid black; padding:3px 7px 2px 7px; text-align: center; } .ksltable th { font-size:12px; text-align:center; font-weight: bold;padding-top:5px; padding-bottom:4px; background-color:#0b162f; color:#fff; } span#widgetclose:hover { cursor: pointer; } </style> <!-- ===================[ STORY HEAD : INTRO ]================= --> <div id="storyIntro" > </div> <!-- HERE HERE --> <!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-70949446-4', 'auto'); ga('send', 'pageview'); </script> </div> <!-- sid 17555887 = rentler place an ad page --> <div id="bodyCol3"> <div id="video-companion-2"></div> <div class="ad_block"> <div data-cb-ad-id="Default 0"> <div id='div-gpt-ad-1458596221-0' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <script type="text/javascript" src="//static.ksl.com/packages/jquery-ui/v1.10.2/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javascript" src="//static.ksl.com/javascript/report_ad_gpt.js"></script> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> <div class="ad_block"> <div data-cb-ad-id="Default 1"> <div id='div-gpt-ad-1458596221-1' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> <div class="ad_block"> <div data-cb-ad-id="Default 2"> <div id='div-gpt-ad-1458596221-2' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> </div> <div class="headlineQueueHeadcol1wide" style="width: 984px;"> Site Index </div> <div class="nocontent"> <table width="984" border="0" class="siteIndex nocontent"> <tr valign="top"> <td width="164"><h2><a href="/index.php?nid=10">News</a></h2> <ul><li> <a href="/index.php?nid=30">Utah</a> <ul><li><a href="/index.php?nid=30">News</a> <li> <a href="/index.php?nid=680"> Education</a> <li> <a href="/index.php?nid=308">KSL Investigates</a> <li> <a href="/index.php?nid=1174">Your Life Your Health</a> <li> <a href="/index.php?nid=694">Staying Safe</a> <li> <a href="/index.php?nid=1196">More on the web</a></ul> </ul> <ul><li> <a href="/index.php?nid=30">Page Two</a> <ul><li><a href="/index.php?nid=999">Family</a> <li> <a href="/index.php?nid=1285">Uplifting</a> <li> <a href="/index.php?nid=1000">Lifestyle</a> <li> <a href="/index.php?nid=1287">Outdoors & Recreation</a> <li> <a href="/index.php?nid=1007">Religion</a> <li> <a href="/index.php?nid=1283">LDS Life</a> <li> <a href="/index.php?nid=599">Politics</a> <li> <a href="/index.php?nid=1002">Science & Tech</a> <li> <a href="/index.php?nid=333"> Odds &amp; Ends</a> <li> <a href="/index.php?nid=1281">Gephardt Gets It!</a> <li> <a href="/index.php?nid=1072">iWitness</a> </ul> </ul> <li> <a href="/index.php?nid=31"> National</a> <li> <a href="/index.php?nid=32"> World</a> <li> <a href="/index.php?nid=116"> Biz/Finance</a> <li> <a href="/index.php?nid=1198">Consumer</a> </uL></td> <td width="164"><h2><a href="/index.php?nid=88">Weather</a></h2> <ul><li> <a href="/index.php?nid=88">Forecasts</a> <li> <a href="/index.php?sid=2289447&nid=525"> Current Conditions</a> <li> <a href="/index.php?nid=175"> VORTEX</a> <li> <a href="/index.php?nid=233"> Microcast</a> <li> <a href="/index.php?sid=&nid=580"> Water Watch</a> <ul><li> <a href="/index.php?nid=149&sid=134181">Snowpack totals</a> <li> <a href="/index.php?nid=581&sid=2658650">Ramp reports</a> <li> <a href="/index.php?nid=149&sid=3321269">Lawn Watering guide</a> <li> <a href="/index.php?nid=149&sid=215478">Flood/Water Flow</a></ul> <li> <a href="/index.php?sid=901157&nid=461"> Photo Galleries</a> <li> <a href="/index.php?sid=106058&nid=149"> Weather Planner</a> <li> <a href="/index.php?nid=340&sid=148077"> Weather Lab</a> <li> <a href="/index.php?nid=366&sid=174427"> Ask the Meteorologist</a> <li> <a href="/index.php?sid=128553&nid=522"> Ski Report</a> <li> <a href="/index.php?nid=656"> Weather on 5.3</a> </ul> <p> <h2><a href="/index.php?nid=710">Traffic</a></h2> <ul><li> <a href="/index.php?nid=710">Traffic Cams</a> </ul> <p> <h2><a href="/index.php?nid=710">Special Features</a></h2> <ul><li> <a href="/index.php?nid=295"> General Conference</a> </ul> </td> <td width="164"> <h2><a href="/index.php?nid=115">Sports</a></h2> <ul> <li> <a href="/index.php?nid=271"> BYU</a> <ul> <li> <a href="/index.php?nid=841&sid=13378103">Coach's Show</a> <li> <a href="/index.php?nid=497">Cougar Tracks</a> <li> <a href="/index.php?nid=868">My Cougar Stories</a> <li> </ul> <li> <a href="/index.php?nid=634">U of U</a> <ul> <li> <a href="/index.php?nid=839">Crimson Corner</a> </ul> <li> <a href="/index.php?nid=859">USU</a> <ul> <li> </ul> <li> <a href="/index.php?nid=637">Jazz/NBA</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule</a> / <a href="/index.php?sid=1591910&nid=497">Stats</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">Blog</a> </ul> <li> <a href="/index.php?nid=854">RSL</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule</a> / <a href="/index.php?sid=1591910&nid=497">Stats</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">Blog</a> </ul> <li> <a href="/index.php?nid=431">Prep</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule / Scoreboard</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">KSL Coaches Poll</a> </ul> <li> <a href="/index.php?nid=140"> NFL</a> <li> <a href="/index.php?nid=377">Golf Utah</a> <li> <a href="/index.php?nid=937">Stats/Scores</a> <li> <a href="http://bleacherreport.com/salt-lake-city-sports">Bleacher Reports</a> </ul> <p> <h2><a href="http://movies.ksl.com"> Movies</a></h2> <ul><li> <a href="http://movies.ksl.com">Movie/Theater Listings</a></uL> </td> <td width="164"> <h2><a href="/index.php?nid=1114">Shows</a></h2> <ul> <li> <a href="http://studio5.ksl.com">Studio 5</a> <li> <a href="/index.php?nid=1113&sid=17217040&title=ksl-outdoors-with-adam-eakle">KSL Outdoors w/ Adam Eakle</a> <li> <a href="http://www.ksl.com/?sid=&nid=315&title=ksl-5-news-today">KSL 5 News Today</a> <li> <a href="/index.php?sid=23994024&nid=1193&title=the-browser-50---weekdays-at-1230-on-ksl-5">The Browser 5.0</a> <li> <a href="/index.php?nid=178">Utah's Morning News</a> <li> <a href="/index.php?nid=399">Doug Wright Show</a> <li> <a href="/index.php?nid=894">The Browser</a> <li> <a href="/index.php?nid=180">Utah's Afternoon News</a> <li> <a href="http://nightside.ksl.com/">Nightside Project</a> <li> <a href="/index.php?nid=399">KSL Movie Show</a> <li> <a href="/index.php?nid=186">KSL Outdoors</a> <li> <a href="/index.php?nid=183">KSL Greenhouse Show</a> <li> <a href="/index.php?nid=305">Matt Townsend Show</a> <li> <a href="/index.php?nid=185">KSL Travel Show</a></ul> <p> <h2><a href="/index.php?nid=13">Classifieds</a></h2> <ul><li> <a href="/index.php?nid=13">General</a> <li> <a href="/homes">Homes</a> <li> <a href="/auto">Cars</a> <li> <a href="http://www.ksl.com/jobs">Utah Jobs</a> <li> <a href="http://www.ksl.com/deals">Deals</a> <li> <a href="http://local.ksl.com/">Local</a> <li> <a href="/index.php?nid=207">Help</a></ul> <p> </td> <td width="164" > <h2><a href="/index.php?nid=15">TV</a></h2> <ul><li> <a href="/index.php?nid=38"> Bios</a> <li> <a href="/index.php?nid=42">Schedule</a> <li> <a href="/index.php?nid=239"> Contests</a> <li> <a href="/index.php?nid=1196"> More on the Web</a> <li> <a href="http://studio5.ksl.com/"> Studio 5</a></ul> <p> <h2><a href="/index.php?nid=16">Radio</a></h2> <ul><li> <a href="/index.php?nid=16"> Listen LIVE</a> <li> <a href="/index.php?nid=209"> Podcasts</a> <li> <a href="/index.php?sid=122030&nid=312"> Lineup</a> <li> <a href="/index.php?nid=317"> Bios</a> <li> <a href="/index.php?nid=311"> Shows</a> <li> <a href="/index.php?nid=318">Features</a> <ul><li> <a href="/index.php?sid=2359958&nid=189">Speaking on Biz</a> <li> <a href="/index.php?nid=191">Teacher Feature</a> <li> <a href="/index.php?sid=29384064&nid=303">Money Matters</a> <li> <a href="/index.php?sid=30155869&nid=256">Utah Gives Back</a></ul> <li> <a href="/index.php?nid=253">Contests</a> <li> <a href="/index.php?nid=318">Events</a></ul> </td> <td width="164" style="background: #eee; padding: 2px 0px 0px 4px;"> <h2><a href="http://ads.ksl.com/">Advertise with KSL</a></h2> <p> <h2>Other Resources</h2> <ul><li> <a href="/index.php?nid=205">Contact Us</a> / <a href="/index.php?nid=277">Phone Numbers</a> <li> <a href="http://ksl.applicantpro.com" target="_blank">Careers with KSL</a> <li> <a href="http://deseretdigital.applicantpro.com">Careers with DDM</a> <li> <a href="/index.php?nid=278">Web Resources</a> <li> <a href="/index.php?sid=5562812&nid=322">Charity Account Form</a> </ul> <p> <h2>Mobile</h2> <ul><li> <a href="http://m.ksl.com">ksl.com mobile</a> <li> <a href="/index.php?sid=17920249&nid=250">KSL mobile apps</a> <li> <a href="http://www.ksl.com/?sid=14578360&nid=971">text alerts</a> </ul> <p> <h2>Legal</h2> <ul><li> <a href="/index.php?sid=95313&nid=250">Terms of Use</a> <li> <a href="/index.php?nid=250&sid=95314">Privacy Statement</a> <li> <a href="/index.php?nid=250&sid=95315">DMCA Notice</a> <li> <a href="http://www.ksl.com/eeo/EEO_Public_File.pdf">EEO Public File Report</a> <li> <a href="https://stations.fcc.gov/station-profile/ksl-tv">FCC Public File</a> <li> <a href="/index.php?sid=10021371&nid=250">Closed Captioning Assistance</a></ul> <p> <h2>Sister Sites</h2> <ul> <li> <a href="http://fm100.com/">FM100</a> / <a href="http://www.1035thearrow.com/">Arrow 103.5</a> <li><a href="http://www.deseretnews.com/home">Deseret News</a> <li><a href="http://www.utah.com">Utah.com</a> <li><a href="http://deseretbook.com/">Deseret Book</a> </ul> <p> </td> </tr> </table> </div> <div style="clear: left; padding: 10px 0px 0px 0px;"></div> </div> <!-- ============== BOTTOM BANNER =============== --> <div id="bannerad" > </div> <!-- ============== BOTTOM NAV============ --> <div style="padding: 4px 0px 10px 0px; font-size: 9px; text-align: center;"> <div style="margin-left: 7px; margin-right: 7px; text-align: center; padding: 2px; margin-bottom: 3px;"> KSL's Children's Television Programming Reports, as well as its FCC public inspection file, are available for viewing during regular office hours at the KSL Broadcast House or <a href="https://stations.fcc.gov/station-profile/ksl-tv">online</a>. <br> The station representative who can assist a person with disabilities with issues related to the content of the public files is Mike Dowdle, available during regular office hours at <a href="mailto:closed_captioning@ksl.com">closed_captioning@ksl.com</a> and (801) 575-5555. </div> <div style="padding: 10px 0px 10px 0px;"> &copy; 2016 ksl.com | KSL Broadcasting Salt Lake City UT | Site hosted &amp; managed by Deseret Digital Media - a Deseret Media Company&nbsp;&nbsp;v13</div> <div style="padding: 0px 0px 0px 0px;"><img name="footer" src="/graphics/ksl11/footer.png" width="537" height="38" border="0" id="footer" usemap="#m_footer" alt="" /><map name="m_footer" id="m_footer"> <area shape="rect" coords="327,0,485,34" href="http://deseretmediacompanies.com/" target="_blank" alt="" /> <area shape="rect" coords="230,4,316,38" href="http://deseretdigital.com/" target="_blank" alt="" /> <area shape="rect" coords="146,5,219,38" href="http://www.ksl.com/index.php?nid=16" alt="" /> <area shape="rect" coords="62,5,133,38" href="http://www.ksl.com/index.php?nid=15" alt="" /> </map> </div> <div style="clear: both; margin: 0px; padding: 0px; height: 5px;"></div> </div> </div> <!-- Crazy Egg Start --> <script type="text/javascript"> setTimeout(function() { var a=document.createElement("script"); var b=document.getElementsByTagName("script")[0]; a.src=document.location.protocol+"//script.crazyegg.com/pages/scripts/0021/2728.js?"+Math.floor(new Date().getTime()/3600000); a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b) }, 1); </script> <!-- Crazy Egg End --> <script type="text/javascript" src="https://scdn.cxense.com/cx.js"></script> <script type="text/javascript"> (function() { var src = '//www.googletagservices.com/tag/js/gpt.js'; document.write('<scr' + 'ipt src="' + src + '" ></scr' + 'ipt>'); })(); (function() { var src = '//ksl-d3.openxenterprise.com/w/1.0/jstag?nc=6686-KSL_Classified'; document.write('<scr' + 'ipt src="' + src + '" ></scr' + 'ipt>'); })(); </script> <script type='text/javascript' > googletag.cmd.push(function() { googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-0').addService(googletag.pubads()).setTargeting('pos', 'right').setTargeting('tile', '1'); googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-1').addService(googletag.pubads()).setTargeting('pos', 'right2').setTargeting('tile', '2'); googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-2').addService(googletag.pubads()).setTargeting('pos', 'right3').setTargeting('tile', '3'); googletag.pubads().setTargeting('v','classifieds'); googletag.pubads().setTargeting('cpostcat','16'); googletag.pubads().setTargeting('cpostsub','467'); googletag.pubads().setTargeting('cc','placeafreead'); googletag.pubads().setTargeting('article-id','4516794'); googletag.pubads().setTargeting('gclcat','16'); googletag.pubads().setTargeting('gclsubcat','467'); googletag.pubads().setTargeting('CxSegments', cX.getUserSegmentIds({persistedQueryId:'50a2829a9f34688dedf9ec64d1241d426da983d2'})); //googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.enableServices(); if (Math.random() >= 0.95) { googletag.pubads().addEventListener('slotRenderEnded', function(event){ $.post('/api/adunit.php', { u: event.slot.getAdUnitPath(), s: event.size[0]+'x'+event.size[1], l: event.lineItemId, e: event.isEmpty }); //console.log('rendered slot:'+event.slot.getAdUnitPath()+' sizes:'+event.size[0]+'x'+event.size[1]+' line item:'+event.lineItemId); }); } setTimeout(function(){ renderAds(); }, 250); }); </script> <script type='text/javascript'> function renderAds() { //alert('rendering'); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-0'); }); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-1'); }); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-2'); }); } </script> <script language="javascript"> //document.getElementById("bodyCol3").innerHTML = ""; </script> <!-- ============== BOTTOM BANNER =============== --> <iframe name="rmiCmd" id="rmiCmd" src="/images/dot1.gif" height="1" width="1" style="visibility:hidden;"></iframe> <iframe name="onDemandback" id="onDemandback" src="" style="visibility:hidden; height: 0px;"></iframe> <!-- old omniture location --> </div> <div id="sitepopup" style="display: none;"></div> <div id="sitewindow" rel="lightbox" style="display: none;"></div> <script type="text/javascript"> var xdbt_end = (new Date()).getTime(); var xdbt_time = (xdbt_end-xdbt_start)/1000; $('#xdbt-time').text(xdbt_time); $('#xdbt-memory').text("3167 KB"); //if(Math.random()*100 < 5) // $.post('/logic/stats/latency.php', { latency: xdbt_time, server: '' }, function(){}, 'json'); </script> <!--PubMatic Universal Pixel tag (Javascript) http://www.ksl.com--> <script type='text/javascript'> var pubId=27332; var pixId=39; </script> <script src='http://ads.pubmatic.com/AdServer/js/universalpixel.js' type='text/javascript'> </script> <!-- Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement("script"); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName("script")[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ qacct:"p-KUMT4fYgcdEeg", labels:"ddmnetwork.marketplace.ksl.classifieds" }); </script> <noscript> <div style="display:none;"> <img src="//pixel.quantserve.com/pixel/p-KUMT4fYgcdEeg.gif?labels=ddmnetwork.marketplace.ksl.classifieds" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> <!-- cXense script begin --> <div id="cX-root" style="display:none"></div> <script type="text/javascript"> var cX = cX || {}; cX.callQueue = cX.callQueue || []; cX.callQueue.push(['setAccountId', '9222289450909507122']); cX.callQueue.push(['setSiteId', '9222289450909507123']); cX.callQueue.push(['sendPageViewEvent']); </script> <script type="text/javascript"> (function() { try { var scriptEl = document.createElement('script'); scriptEl.type = 'text/javascript'; scriptEl.async = 'async'; scriptEl.src = ('https:' == document.location.protocol) ? 'https://scdn.cxense.com/cx.js' : 'http://cdn.cxense.com/cx.js'; var targetEl = document.getElementsByTagName('script')[0]; targetEl.parentNode.insertBefore(scriptEl, targetEl); } catch (e) {};} ()); </script> <!-- cXense script end --> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "16033947" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="http://b.scorecardresearch.com/p?c1=2&c2=16033947&cv=2.0&cj=1" /> </noscript> <!-- End comScore Tag --> </body> </html>  
    • rm4453
      File Selection Dialog That Grabs File Path And Saves As Variable
      By rm4453
      I am using Koda to create a gui that will be used to login to a site and post a listing. I need to find a way to get Koda to add a file select button that opens the file selection window, and saves all of the images file paths that are selected, and keeps track of how many there were. That way it can paste the file path into the site along with a description of the image, and click submit for each of the images selected. I need it to store these variables in a .ini if possible as well that way everything will load back up exactly how it was, if it was to ever be closed. Here is the code that Koda has generated for me so far... "See attached for actual Koda Import File"
      #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form=******* $Form1 = GUICreate("Form1", 615, 437, 340, 172) $Email = GUICtrlCreateInput("Email", 24, 35, 145, 21) $Password = GUICtrlCreateInput("Password", 24, 61, 145, 21) $Submit = GUICtrlCreateButton("Submit", 59, 88, 75, 25) $LoginInfo = GUICtrlCreateGroup("LoginInfo", 8, 8, 177, 113) GUICtrlCreateGroup("", -99, -99, 1, 1) $ListingInfo = GUICtrlCreateGroup("ListingInfo", 200, 8, 401, 417) $Price = GUICtrlCreateInput("Price", 232, 40, 137, 21) $Title = GUICtrlCreateInput("Title", 232, 72, 137, 21) $Description = GUICtrlCreateEdit("", 232, 200, 337, 105) GUICtrlSetData(-1, "Description") $ListingType = GUICtrlCreateGroup("ListingType", 376, 24, 193, 81) $For_Sale = GUICtrlCreateRadio("For_Sale", 384, 39, 193, 21) $Item_Wanted = GUICtrlCreateRadio("Item_Wanted", 384, 71, 193, 21) GUICtrlCreateGroup("", -99, -99, 1, 1) $Business_or_Private = GUICtrlCreateGroup("Business_or_Private", 232, 112, 337, 65) $Business_Listing = GUICtrlCreateRadio("Business_Listing", 248, 136, 153, 25) $Private_Listing = GUICtrlCreateRadio("Private_Listing", 408, 136, 153, 25) GUICtrlCreateGroup("", -99, -99, 1, 1) $ContactInfo = GUICtrlCreateGroup("ContactInfo", 232, 312, 337, 73) $Phone1 = GUICtrlCreateInput("801", 237, 330, 33, 21) $Phone3 = GUICtrlCreateInput("1080", 317, 330, 33, 21) $Phone2 = GUICtrlCreateInput("808", 277, 330, 33, 21) $Address = GUICtrlCreateInput("Address", 360, 328, 201, 21) $City = GUICtrlCreateInput("City", 360, 352, 49, 21) $State = GUICtrlCreateInput("State example: UT", 416, 352, 97, 21) $Zip = GUICtrlCreateInput("Zip", 520, 352, 41, 21) GUICtrlCreateGroup("", -99, -99, 1, 1) $SubmitListing = GUICtrlCreateButton("SubmitListing", 456, 392, 113, 25) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd  
      Listing Gui Layout.kxf