Jump to content

Get Collection of Options using IE.au3


Recommended Posts

As opposed to setting the value of a Internet Explorer "ComboBox" (options), I would like to just read all the options in the combo box. The Help File shows how to select the options, but what if I just want a list of them? TIA.

#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName ($oForm, "selectExample")
For $i = 1 To 10
    _IEFormElementOptionselect ($oSelect, "Freepage", 1, "byText")
    Sleep(1000)
    _IEFormElementOptionselect ($oSelect, "midipage.html", 1, "byValue")
    Sleep(1000)
    _IEFormElementOptionselect ($oSelect, 0, 1, "byIndex")
    Sleep(1000)
Next
Link to comment
Share on other sites

To figure this out, you need to study the DOM at MSDN some... but here you go:

#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName ($oForm, "selectExample")
$oOptions = $oSelect.options
For $oOption in $oOptions
    ConsoleWrite($oOption.text & @CR)
Next

Dale

Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y

Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Link to comment
Share on other sites

To figure this out, you need to study the DOM at MSDN some... but here you go:

#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName ($oForm, "selectExample")
$oOptions = $oSelect.options
For $oOption in $oOptions
    ConsoleWrite($oOption.text & @CR)
Next

Dale

Thanks for this, I am glad the answer wasn't staring me in the face in the help file. I don't really understand how to use the DOM at MSDN for autoit, but I have been tinkering at reading it. Thanks again.
Link to comment
Share on other sites

  • 3 weeks later...

To figure this out, you need to study the DOM at MSDN some... but here you go:

#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName ($oForm, "selectExample")
$oOptions = $oSelect.options
For $oOption in $oOptions
    ConsoleWrite($oOption.text & @CR)
Next

Dale

Dale,

How do I verify that an particular option has been selected? I have a script that loops, the first time it works perfect and selects the correct option from the dropdown box. The second time it does not. It is driving me crazy, so my first attempt was to try a Do...Until loop, but I don't know how I would say _IEFormElementOptionselect() until the option is selected.

TIA

Link to comment
Share on other sites

Try using something like this:

#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oSelect = _IEFormElementGetObjByName ($oForm, "selectExample")
_IEFormElementOptionselect($oSelect, "Midipage", 1, "byText")
$iSelected = $oSelect.selectedIndex
ConsoleWrite('You selected: "' & $oSelect.options($iSelected).text & '"' & @CR)
IE Dev ToolbarMSDN: InternetExplorer ObjectMSDN: HTML/DHTML Reference Guide[quote]It is surprising what a man can do when he has to, and how little most men will do when they don't have to. - Walter Linn[/quote]--------------------[font="Franklin Gothic Medium"]Post a reproducer with less than 100 lines of code.[/font]
Link to comment
Share on other sites

Try using something like this:

Man, this is screwy. I used that code, and it worked great to show me what was being selected, thanks. So I modified the code to below, and I included a few more bits of code.

1) Adding Do...Until does not fix the issue. It just continues to not select any element on some of the last passes through the loop.

2) Because the final passes do not select the value desired the loop is infinite, yet, while the loop is going if I select the correct value, it ConsoleWrites the correct value, but it does not "escape" the loop.

Example:

It loops through the 2 arrays $aMulti_Cat[], and $aMulti_Dest[], lets say they both have 2 elements each. The order the functions are called when looping are:

Category_Primary (); works perfect

Category_AND_Destination (); works perfect

Category_AND_Destination (); works perfect

Category_Primary (); DOES NOT WORK

I can't show the webpage because it is private, however I hope this is enough to solve the mystery. If the solution is not apparent, please let me know how I can debug this. Thanks

For $iCC = 1 To $aMulti_Cat[0]
                $Category = $aMulti_Cat[$iCC]
                MsgBox (0, "", $Category, 1)
                If  BitAnd(GUICtrlRead($Checkbox2),$GUI_CHECKED) Then
                    $hColor = 0xCCFFFF
                    Category_Primary () ;Major Func
                EndIf
        
        For $xCC = 1 To $aMulti_Dest[0]
            
            $Destination = $aMulti_Dest[$xCC]
            $Text1 = $Destination
                If BitAnd(GUICtrlRead($Checkbox5),$GUI_CHECKED) Then
                    $f_visible = 1 ;makes the webpage visible
                EndIf
                
                If  BitAnd(GUICtrlRead($Checkbox3),$GUI_CHECKED) Then
                    $hColor = 0xCCFFCC
                    Category_AND_Destination () ;Major Func
                EndIf
Next
                

; Go to All Reports, Select Category and Primary, and then click on First Page Keywords
Func Category_Primary ()
    $sUrl = "[Its a Secret]"
    $attach = 1
    $oIE = GoTo_WebPage ($sUrl, $attach, $f_visible)
    $oForm = Select_Category ($oIE)
    $Radio = "Primary"
    Check_Radio_Button ($oForm, $Radio)
    _IEFormSubmit ($oForm)
    Click_First_Page_Keywords ($oIE)
    
    ;Index
    Get_Table_Data ($oIE)
    _IEQuit ($oIE)
EndFunc

; Go to All Reports, Select Category, Enter Destination and "Both", Submit, and then click on First Page Keywords
Func Category_AND_Destination ()
    $sUrl = "[Its a Secret]"
    $attach = 1
    $oIE = GoTo_WebPage ($sUrl, $attach, $f_visible)
    $oForm = Select_Category ($oIE)
    $oForm = Enter_Input ($oIE)
    $Radio = "All" ;Value = All, Text = Both
    Check_Radio_Button ($oForm, $Radio)
    _IEFormSubmit ($oForm)
    Click_First_Page_Keywords ($oIE)
    
    ;Index
    Get_Table_Data ($oIE)
    _IEQuit ($oIE)
EndFunc


Func Select_Category ($oIE)
    $oForm = _IEFormGetObjByName ($oIE, "keyword_report")
    $oSelect = _IEFormElementGetObjByName ($oForm, "reportID")
    Do
        _IEFormElementOptionselect ($oSelect, $Category, 1, "byText")
        $iSelected = $oSelect.selectedIndex
        ConsoleWrite('You selected: "' & $oSelect.options($iSelected).text & '"' & @CR)
    Until $oSelect.options($iSelected).text = $Category
    Return $oForm
EndFunc
Link to comment
Share on other sites

Try testing the return value of _IEFormElementOptionselect. Since you didn't include any error messages, I'm assuming the IE functions calls right before it are not throwing any errors. You might also try String()-ing "$oSelect.options($iSelected).text" and maybe apply StringStripWS to both sides. I think that's about all the advice I can give without source/reproducer.

IE Dev ToolbarMSDN: InternetExplorer ObjectMSDN: HTML/DHTML Reference Guide[quote]It is surprising what a man can do when he has to, and how little most men will do when they don't have to. - Walter Linn[/quote]--------------------[font="Franklin Gothic Medium"]Post a reproducer with less than 100 lines of code.[/font]
Link to comment
Share on other sites

Try testing the return value of _IEFormElementOptionselect. Since you didn't include any error messages, I'm assuming the IE functions calls right before it are not throwing any errors. You might also try String()-ing "$oSelect.options($iSelected).text" and maybe apply StringStripWS to both sides. I think that's about all the advice I can give without source/reproducer.

Hmmmm, This, give me that...

Func Select_Category ($oIE)
    $oForm = _IEFormGetObjByName ($oIE, "keyword_report")
    $oSelect = _IEFormElementGetObjByName ($oForm, "reportID")
    $test = _IEFormElementOptionselect ($oSelect, $Category, 1, "byText")
        ConsoleWrite("Return Value of @error: " & @error & @CR)
        ConsoleWrite("Return Value of $test: " & $test & @CR)
    $iSelected = $oSelect.selectedIndex
    Return $oForm
EndFunc

Return Value of @error: 0

Return Value of $test: 1

Return Value of @error: 0

Return Value of $test: 1

Return Value of @error: 0

Return Value of $test: 1

Return Value of @error: 0

Return Value of $test: 0

Link to comment
Share on other sites

Fail how? Can you provide a reproducer?

Dale

Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y

Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Link to comment
Share on other sites

Fail how? Can you provide a reproducer?

Dale

Unfortunately, I can't think of a way to do it without losing my job...The best I can think of is copy/paste the page's HTML, what do you think of that?

If you take a look at post #8 you will see the results of looping that function. The script runs that func, _IEQuits, then _IECreates the SAME page, but on the fourth try it fails.... seems crazy to me. The only thing that changes is the Option being selected, the first 3 tries are the same option, then on the fourth loop the option changes and _IEElementSelectOption fails to select it.

First, I thought it must be the option, however, if I just swap the order of option 1 and 2, option 2 will work 3 times, then option 1 fails on the 4th attempt. I also tried other options values and those also failed on the 4th try. Let me know what I can provide to try and solve this. Is there another way for me to debug this?

Link to comment
Share on other sites

A reproducer would't need your sensitive data. Create your own HTML file with a form and OPTION element with fictitious data. Include the HTML file as an attachment, or better yet, create a stand-alone example using a technique like I use here: #390793

Dale

Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y

Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Link to comment
Share on other sites

A reproducer would't need your sensitive data. Create your own HTML file with a form and OPTION element with fictitious data. Include the HTML file as an attachment, or better yet, create a stand-alone example using a technique like I use here: #390793

Dale

Think I did this correctly (reproducer), it does reproduce the same issue, however, it doesn't complete 3 passes sucessfully, then not work, it just won't work on the first pass, which hopefully will still point us in the correct direction.

TIA

#include <IE.au3>

$f_visible = 1

Dim $aMulti_Cat[4]
$aMulti_Cat[0] = 3
$aMulti_Cat[1] = "Safaris"
$aMulti_Cat[2] = "Wildlife Viewing Tours"
Dim $aMulti_Dest[4]
$aMulti_Cat[0] = 3
$aMulti_Cat[1] = "Africa"
$aMulti_Cat[2] = "Kenya"

$oIE = _MakeHTML ()

For $iCC = 1 To $aMulti_Cat[0]
        $Category = $aMulti_Cat[$iCC]
        Category_Primary () ;Major Func
        
        For $xCC = 1 To $aMulti_Dest[0]
            $Destination = $aMulti_Dest[$xCC]
            $Text1 = $Destination
            Category_AND_Destination () ;Major Func
        Next
Next

Func _MakeHTML ()
    
    $oIE = _IECreate()

    $sHTML = "" 
    $sHTML &= "   <html>"
    $sHTML &= "   <head>"
    $sHTML &= "   <title>****** Support</title>"
    $sHTML &= "   <link rel=stylesheet href=http://www.******.net/content.css type=text/css>"
    $sHTML &= "   </head>"
    $sHTML &= "   <body bgcolor='#ffffff'>"
    $sHTML &= "   <div align='center'>"
    $sHTML &= "   <table width='90%' cellpadding='0' cellspacing='0' border='0'>"
    $sHTML &= "   <tr><td> "
    $sHTML &= "   <h3>ALL REPORTS</h3>"
    $sHTML &= "   <table border=0 cellpadding=0 cellspacing=0 width=100%>"
    $sHTML &= "   <form name='keyword_report' action='keyword_reports.cfm' method='get'>"
    $sHTML &= "   <input type='hidden' name='view' value='NORMAL'>"
    $sHTML &= "   <tr><td colspan='3' class='tdrow'> </td></tr>"
    $sHTML &= "   <tr>"
    $sHTML &= "   <td width='42%' class='tdrow' valign='top'><h3>REPORT OPTIONS</h3>"
    $sHTML &= "   <select name='reportID' size='1'>"
    $sHTML &= "   <option value='ALLREPORTS'>ALL REPORTS</option>"
    $sHTML &= "   <option value='62' >Adventure Cruises</option><option value='16' >Adventure Travel</option><option value='71' >Archaeological Tours</option><option value='55' >ATV Tours</option><option value='24' >Beach Resorts</option><option value='1' >Bicycle Tours & Mountain Biking</option><option value='2' >Canoeing</option><option value='69' >Casino Resorts</option><option value='3' >Cattle Drives & Working Ranches</option><option value='9' >Corporate Team Building</option><option value='5' >Cross Country Skiing</option><option value='70' >Culinary Vacations</option><option value='56' >Cultural Tours</option><option value='46' >Desert Resorts</option><option value='6' >Dog Sledding Vacations</option><option value='7' >Dude & Guest Ranches</option><option value='57' >Eco & Jungle Lodges</option><option value='8' >Ecotourism</option><option value='74' >Educational Travel</option><option value='10' >Family Camps</option><option value='73' >Fishing Charters</option><option value='11' >Fishing Guides</option><option value='12' >Fishing Lodges</option><option value='22' >Fishing Vacations</option><option value='28' >Golf Resorts</option><option value='35' >Golf Vacations</option><option value='13' >Heli-Skiing</option><option value='14' >Hiking & Trekking Tours</option><option value='26' >Horse Pack Trips & Trail Rides</option><option value='60' >Horseback Riding</option><option value='59' >Horseback Riding Stables</option><option value='19' >Hot Air Ballooning</option><option value='17' >Houseboat Rentals</option><option value='38' >Island Resorts</option><option value='53' >Jet Boat Tours</option><option value='18' >Kayaking</option><option value='41' >Lake Resorts</option><option value='66' >Motorcycle Tours</option><option value='20' >Mountain & Rock Climbing</option><option value='40' >Mountain Resorts</option><option value='21' >MultiSport Adventures</option><option value='49' >National Park Lodging</option><option value='48' >Photography Tours</option><option value='15' >Railway & Train Tours</option><option value='23' >Resorts, Spas & Retreats</option><option value='50' >Riverside Resorts</option><option value='37' >Safaris</option><option value='65' >Scuba Diving Vacations</option><option value='42' >Scuba Resorts</option><option value='47' >Ski Resort Lodging</option><option value='29' >Snowcat Skiing</option><option value='30' >Snowmobiling</option><option value='58' >Soaring & Glider Rides</option><option value='39' >Spa Resorts</option><option value='68' >Surfing Vacations & Camps</option><option value='43' >Tennis Resorts</option><option value='31' >Wagon Train Vacations</option><option value='54' >Walking Tours</option><option value='32' >Whale Watching Tours</option><option value='33' >Whitewater Rafting</option><option value='64' >Wildlife Viewing Tours</option><option value='34' >Women's Travel</option>"
    $sHTML &= "   </select><br>"
    $sHTML &= "   Keyword Type:"
    $sHTML &= "   <input type='radio' name='keywordType' value='Primary' > Primary"
    $sHTML &= "   <input type='radio' name='keywordType' value='Extended' > Extended"
    $sHTML &= "   <input type='radio' name='keywordType' value='All' checked> Both"
    $sHTML &= "   </td>"
    $sHTML &= "   <td width='45%' class='tdrow' valign='top' style='border-left:1px solid DDDDDD;padding:0px 5px 0px 5px;border-right:1px solid DDDDDD;'><h3>OPTIONAL FILTERING</h3>"
    $sHTML &= "   Keyword Search "
    $sHTML &= "   <input type='text' name='keyword' size='33' value=''>"
    $sHTML &= "   </td>"
    $sHTML &= "   <td width='13%' class='tdrow' align='center'> <INPUT type='submit' name='mysubmit' value='Click!'> </td>"
    $sHTML &= "   </tr>"
    $sHTML &= "   </form>"
    $sHTML &= "   </table>"
    $sHTML &= "   <br>"
    $sHTML &= "   </td></tr>"
    $sHTML &= "   </table>"
    $sHTML &= "   </div>"
    $sHTML &= "  </body>"
    $sHTML &= "</html>" 

    _IEDocWriteHTML($oIE, $sHTML)
    Return $oIE
EndFunc



;~ ; Go to All Reports, Select Category and Primary, and then click on First Page Keywords
Func Category_Primary ()
    $attach = 1
    $oIE = _MakeHTML ()
    $oForm = Select_Category ($oIE)
;~     $Radio = "Primary"
;~     Check_Radio_Button ($oForm, $Radio)
    _IEFormSubmit ($oForm)
;~     Click_First_Page_Keywords ($oIE)
    
    ;Index
;~     Get_Table_Data ($oIE)
    _IEQuit ($oIE)
EndFunc

; Go to All Reports, Select Category, Enter Destination and "Both", Submit, and then click on First Page Keywords
Func Category_AND_Destination ()
    $attach = 1
    $oIE = _MakeHTML ()
    $oForm = Select_Category ($oIE)
;~     $oForm = Enter_Input ($oIE)
;~     $Radio = "All" ;Value = All, Text = Both
;~     Check_Radio_Button ($oForm, $Radio)
    _IEFormSubmit ($oForm)
;~     Click_First_Page_Keywords ($oIE)
    
    ;Index
;~     Get_Table_Data ($oIE)
    _IEQuit ($oIE)
EndFunc


Func Select_Category ($oIE)
    $oForm = _IEFormGetObjByName ($oIE, "keyword_report")
    $oSelect = _IEFormElementGetObjByName ($oForm, "reportID")
;~     Do
        _IEFormElementOptionselect ($oSelect, $Category, 1, "byText")
        $iSelected = $oSelect.selectedIndex
        ConsoleWrite('You selected: "' & $oSelect.options($iSelected).text & '"' & @CR)
;~     Until $oSelect.options($iSelected).text = $Category
    Return $oForm
EndFunc

;Selects Radio Button Primary
;~ Func Check_Radio_Button ($oForm, $Radio)
;~     _IEFormElementRadioSelect ($oForm, $Radio, "keywordType", 1, "byValue")
;~ EndFunc


;Clicks the Link for First Page Keywords, its Index based
;~ Func Click_First_Page_Keywords ($oIE)
;~  _IELinkClickByIndex ($oIE, 1)
;~ EndFunc

;Enters a Value in the Search Field
;~ Func Enter_Input ($oIE)
;~  $oForm = _IEFormGetCollection ($oIE, 0)
;~  $oQuery = _IEFormElementGetCollection ($oForm, 9)
;~  _IEFormElementSetValue ($oQuery, $Text1)
;~  Return $oForm
;~ EndFunc
Link to comment
Share on other sites

Sorry litlmike,

Your example is way too complex. It is not clear to me what you are trying to do. I ran your code and got no errors (except that you should change your _IEFormSubmit($oForm) to be the two statements _IEFormSubmit($oIE, 0) and _IELoadWait($oIE) to avoid the $_IEStatus_AccessIsDenied errors).

Does the HTML need to be so complex to reproduce the problem? Does the option select need to have 60 items in it to reproduce the problem? Could it be done with 5 or less? Is the TABLE required? Are the form elements other than the OPTION SELECT required?

Can you show the behaviour without the arrays? Can you show the problem without the nested function calls? What is the significance of the code that is commented out?

What do you expect to happen when this code runs? What happens that surprised you?

Sorry, I spent 15 minutes working with it and it just isn't clear to me what you are trying to do.

Dale

P.S. Also, have you considered trying to reproduce the problem using _IE_Example("form") ?

Edited by DaleHohm

Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y

Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Link to comment
Share on other sites

Sorry litlmike,

Your example is way too complex. It is not clear to me what you are trying to do.

Dale

Thanks for your attention to this. I have eliminated a few things to make this more managable for you to read and I will answer some of your questions here and post the code below. What you are having me do is good, it is helping me to get a better understanding of how you coding geniuses debug things. Surprisingly I was able to eliminate a lot and still get recreate the issue

****EDIT***** SCRATCH the above statement.

After running through the process you suggested and after 6 hours (literally) of testing I came to find out the issue. There was a white space (WS) somewhere in the 2nd option and that caused _IEFormElementOptionselect to not see the option to select. I figured this out after recreating the above reproducer and getting it to work... I was so mad and happy at the same time... what I cannot figure out is why _IEFormElementOptionselect did show an error for this when it occured, it simply just continued the script. I should answer one of your above questions

"What do you expect to happen when this code runs?"

For it to Select "Safari" from the option, submit, IEQuit, IECreate, Select "Wildlife Viewing Safaris", submit.

"What happens that surprised you?"

If did everything but select "Wildlife Viewing Safaris" and it showed no error for _IEFormElementOptionselect. At one point in the testing I got it to say that _IEFormElementOptionselect failed, but no descriptive error like "Option not found", etc. For all I could suspect I thought _IEFormElementOptionselect may have just been failing for no reason.

Thanks for your help on this, is there a way that you can think of where I can prohibit this in the future?

Thanks

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...