468,103 Members | 1,170 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,103 developers. It's quick & easy.

DOCTYPE declaration on intranet sites.

According to the w3c specs a web page is not valid if the DOCTYPE
declaration is missing. So, if I add the following doctype to my pages
they will be "compliant":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

But is this relevant to INTRANET sites where users might not have
INTERNET access? How does the page get validated against the
http://www.w3.org/TR/html4/strict.dtd DTD if the users don't have
internet access? What happens if the browser is unable to connect to
the www.w3.org site where the .dtd document is stored? Does the
validation "fail"?

Should I copy the .dtd file onto my intranet server and change the
doctype to something like:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://myintranet/strict.dtd">

Or should I leave out the doctype declaration completely for intranet
pages?

May 19 '06 #1
29 2679
AndyZa wrote:
According to the w3c specs a web page is not valid if the DOCTYPE
declaration is missing. So, if I add the following doctype to my pages
they will be "compliant":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

But is this relevant to INTRANET sites where users might not have
INTERNET access?
A compliant HTML document is a compliant HTML document regardless of
where it is published.
How does the page get validated against the
http://www.w3.org/TR/html4/strict.dtd DTD if the users don't have
internet access?
It doesn't. Unless you have a validator installed on the Intranet e.g.
if you are be validating your pages as part of the publication process.
What happens if the browser is unable to connect to
the www.w3.org site where the .dtd document is stored?
Why would the browser be trying to connect to a web site if there is no
Internet access? What are your users doing that will cause the browser
to try and fetch the DTD?
Does the validation "fail"?
What validation? Browsers do not validate HTML documents.
Should I copy the .dtd file onto my intranet server and change the
doctype to something like:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://myintranet/strict.dtd">
No, if you have a validator on your internal systems then it should
have commonly used PUBLIC DTDs such as HTML 4.01 stored in its local
catalogue.
Or should I leave out the doctype declaration completely for intranet
pages?


Do you want your pages to be compliant with the specs or not?
Perhaps more importantly do you want to trigger the Quirks or Standards
Compliant rendering mode? That's all that web browsers use the doctype
declaration for.

Steve

May 19 '06 #2
VK

AndyZa wrote:
According to the w3c specs a web page is not valid if the DOCTYPE
declaration is missing. So, if I add the following doctype to my pages
they will be "compliant":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

But is this relevant to INTRANET sites where users might not have
INTERNET access? How does the page get validated against the
http://www.w3.org/TR/html4/strict.dtd DTD if the users don't have
internet access? What happens if the browser is unable to connect to
the www.w3.org site where the .dtd document is stored? Does the
validation "fail"?


DOCTYPE in HTML/XHTML is an opaque string used to match used tags and
attributes against internal data build into browser (think of namespace
declarations in XML). No one browser /retrieve/ the linked DTD as it's
not supposed to be used in such way in HTML pages. Also some browsers
(say Firefox) simply not capable to retrieve external DTD's even if
they wanted to for some reason.

All UA's are capable to match these opaque strings either by full form
(with URL) or by short form (without URL). So do not confuse yourselve
with pseudo-URL issues you may just use <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN">
That is perfectly correct and the string will be still properly
matched.

May 19 '06 #3
>> How does the page get validated against the
http://www.w3.org/TR/html4/strict.dtd DTD if the users don't have
internet access? It doesn't. Unless you have a validator installed on the Intranet e.g.
if you are be validating your pages as part of the publication process.


Does the web browser "ignore" the url part of the doctype tag?
Or should I leave out the doctype declaration completely for intranet
pages?

Do you want your pages to be compliant with the specs or not?


YES! That's ALL I want!
Perhaps more importantly do you want to trigger the Quirks or Standards
Compliant rendering mode? That's all that web browsers use the doctype
declaration for.


Aaah!

So, all that the browser does with the doctype declaration is use it to
switch between the Quirks and Standards Compliant mode? And that's why
it's necessary to include the doctype declaration in the page? Is that
it?

And if I use a validator it uses the .dtd found at the w3.org url in
the declaration to do that validation?

Is that that the only purpose for the w3.org url in the doctype tag?

Yes, I know! I'm confused! Flame on...!

May 19 '06 #4
> All UA's are capable to match these opaque strings either by full
form (with URL) or by short form (without URL). So do not confuse
yourselve with pseudo-URL issues you may just
use <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
That is perfectly correct and the string will be still properly matched.


Ok, so the "http://www.w3.org/TR/html4/strict.dtd" section of the
doctype declaration isn't critical if I'm not using a validator.

I think I get it... Thanks.

May 19 '06 #5
VK

AndyZa wrote:
All UA's are capable to match these opaque strings either by full
form (with URL) or by short form (without URL). So do not confuse
yourselve with pseudo-URL issues you may just
use <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
That is perfectly correct and the string will be still properly matched.


Ok, so the "http://www.w3.org/TR/html4/strict.dtd" section of the
doctype declaration isn't critical if I'm not using a validator.

I think I get it... Thanks.


The URL section isn't crutial in any case and it doesn't make the
document valid/invalid.

If you have only <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> it
is still valid HTML 4.01 Strict - check on validator.w3.org.

The only fine details is that Internet Explorer 6.0 or higher uses
DOCTYPE opaque strings to choose the rendering box model: by W3C or by
Microsoft. It has nothing to do with any of documented DOCTYPE
functionalities, they've just chosen this formal sign by themselves.

In this respect <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"> string leaves IE in the default box. At the same
time Transitional followed by a string containing substring
"http://www.w3" will switch IE into CSS1Compat mode. Of course you
shouldn't transform it into complete joke and you should use in such
case the proper URL - thus it's functionally irrelevant:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html401/loose.dtd">

HTML Strict always switch IE into CSS1Compar mode either in full or
short form, so nothing to worry about.

May 19 '06 #6
VK
thus it's functionally irrelevant
^^^^

despite it's functionally irrelevant

May 19 '06 #7
> If you have only <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
it is still valid HTML 4.01 Strict


Thanks.
I read in another post that the doctype declaration is case sensitive
so:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
is different to
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

Is this correct?
Which version should I be using?

May 19 '06 #8
VK

AndyZa wrote:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
is different to
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

Is this correct?
Which version should I be using?


Practical answer (the one to follow):
Use the version recommended by W3C
<http://www.w3.org/QA/2002/04/valid-dtd-list.html> because UA's
producers used these values for their internal regexp routines.
Theoretical answer (the one to /skip/ on, just out of curiosity):
As the immediate part after <!DOCTYPE supposes to point to the root
element in the document, it has to match the case of your root element.
Thus if you have:
<html>
....
</html>

then it should be <!DOCTYPE html...

and if you have
<HTML>
....
</HTML>

then it should be <!DOCTYPE HTML...

But this again a pure theory, as DTD's in HTML/XHTML have nothing in
common with DTD's in XML (except formal syntax).

May 19 '06 #9
> Thus if you have:
<html>
...
</html>

then it should be <!DOCTYPE html...


Ok. Since my html tags are in lowercase I'll go with <!DOCTYPE html...

Thanks

May 19 '06 #10
On 19/05/2006 11:00, VK wrote:

[snip]
Also some browsers (say Firefox)
<sarcasm>Subtle. Very subtle.</>
simply not capable to retrieve external DTD's even if they wanted to
for some reason.


What does XML processing behaviour have to do with the OP's question?

When are you going to understand that conforming XML processors are not
required to validate documents, but must report well-formedness violations?

[snip]

Mike

--
Michael Winter
Prefix subject with [News] before replying by e-mail.
May 19 '06 #11
On 19/05/2006 11:27, AndyZa wrote:

[snip]
Does the web browser "ignore" the url part of the doctype tag?
Yes and no. As far as using it to obtain the DTD, no. As Steve wrote,
browsers neither retrieve the DTD nor validate documents[1]. That said,
browsers do use the system identifier (the URI) when deciding whether to
trigger 'Quirks' or 'Standards' mode (DOCTYPE switching).

Briefly, a Strict document type will always trigger Standards mode. A
Transitional or Frameset document type will only do so if the URI is
also present. The rules are more complicated than that, but if you stick
to Strict HTML 4.01, you can safely ignore it all.

[snip]
So, all that the browser does with the doctype declaration is use it to
switch between the Quirks and Standards Compliant mode? And that's why
it's necessary to include the doctype declaration in the page? Is that
it?
Yes.
And if I use a validator it uses the .dtd found at the w3.org url in
the declaration to do that validation?
Yes.
Is that that the only purpose for the w3.org url in the doctype tag?
Pretty much. A validator can use the public identifier (the quoted
string after PUBLIC) to determine how to validate a document if it
recognises it (and a common DTD like HTML 4.01 Strict, will be known).
If not, it'll fall back to the URI.
Yes, I know! I'm confused! Flame on...!


You don't seem to be. A little nudge in the right direction, perhaps. :-)

Mike
[1] That's not to say that a browser /couldn't/ perform
validation, but still, they don't. It wouldn't be very
practical anyway when one considers how much broken (not just
bad) markup there is on the Web.

--
Michael Winter
Prefix subject with [News] before replying by e-mail.
May 19 '06 #12
On 19/05/2006 12:18, AndyZa wrote:

[snip]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
is different to
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

Is this correct?
No, not in HTML. Element names are case-insensitive, so they are equivalent.

<off-topic>A quick primer: the word that follows DOCTYPE is the name of
the root element; the one that should appear first and contain all other
element. Obviously in HTML, the root element is HTML.

In XML, names are case-sensitive therefore if the root element is bLaH,
then the document type declaration would /have to/ start, '<!DOCTYPE
bLaH'.</>
Which version should I be using?


Either.

By the way, you should take anything that VK writes with a large pinch
of salt. His accuracy often seems coincidental, rather than planned.

Mike

--
Michael Winter
Prefix subject with [News] before replying by e-mail.
May 19 '06 #13
VK

Michael Winter wrote:
Also some browsers (say Firefox)
<sarcasm>Subtle. Very subtle.</>


If IE has a bug, I say "an IE's bug". If FF has a bug, I say "a FF's
bug". Why should I pretend that FF is an Incarnation Of Absolutely
Perfect Software? In attempt to cheat on who? <shudder>
What does XML processing behaviour have to do with the OP's question?
When are you going to understand that conforming XML processors are not
required to validate documents, but must report well-formedness violations?
And the latter is often not possible without loading beforehand the
specified DTD (if specified). Should I make a XSLT demo for you or you
will trust me on that one? (I guess not) The linked/re-linked Firefox
bug discussion in "DTD in browsers" thread was roaming around this
issue: that Firefox parser may raise well-formedness error wich
wouldn't occure if it was instructed to fetch external DTD with extra
entities - as other good girls and boys do :-)

And (and this is one of Mozilla team headaches) it creates an
interesting situation for XHTML documents with both XML prolog and
external DTD in DOCTYPE - especially if it's "XML-conformant" XHTML 1.0
From one side an XML-conformant parser /have/ to fetch such DTD - as <http://www.w3.org/TR/REC-xml/#sec-rmd> "Validity constraint" section
leaves no option but assume standalone="no".From the other side it would be a madhouse to start using these opaque

stings for their original purpose. From the third and forth side W3C
specs leave no room to introduce some kind of /these/ DTD's and /those/
DTD's differentiated by some formal signs. This discomfort of someone
sitting between two chairs while both sliding aside can be also noticed
in the mentioned discussion.

May 19 '06 #14
VK
<OT>
Michael Winter wrote:
By the way, you should take anything that VK writes with a large pinch
of salt. His accuracy often seems coincidental, rather than planned.


Which doesn't prevent him from collecting his stars for happy posters
(I mean Google Groups star's raiting system). :-)

Also "coincidental, rather than planned" warning seems to appear only
after my posts where even gurus cannot disprove too much. In this
concern:
1) I'm trying to take such comments as a compliment - as right now
(captatio benevolentiae :-)
2) Such comments are rather numerous (for whatever reason).
</OT>

May 19 '06 #15
VK wrote:
As the immediate part after <!DOCTYPE supposes to point to the root
element in the document, it has to match the case of your root element.


Once again you're completely wrong.

XML is case sensitive, but this doctype is for HTML 4.01, not anything
XML.

SGML might be case sensitive, but HTML chose not to be. As a result,
HTML simply doesn't care about the case of the root element's start tag
<html>, nor whether it matches the root element indicated in the
doctype.

So
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
[....]
is valid, as is

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
[...]

May 19 '06 #16
Michael Winter wrote:
On 19/05/2006 11:27, AndyZa wrote:

[snip]
Does the web browser "ignore" the url part of the doctype tag?


Yes and no. As far as using it to obtain the DTD, no. As Steve wrote,
browsers neither retrieve the DTD nor validate documents[1]. That said,
browsers do use the system identifier (the URI) when deciding whether to
trigger 'Quirks' or 'Standards' mode (DOCTYPE switching).

Briefly, a Strict document type will always trigger Standards mode. A
Transitional or Frameset document type will only do so if the URI is
also present.


*The* URI or *any* URI? In other words, if I were to put the URI of a
local copy of the DTD on an intranet and point the docytype declaration
to that, would the browser use standards mode because *a* URI is there,
it would it use quirks mode because the "wrong" URI is there?
May 19 '06 #17
AndyZa <an****@webmail.co.za> wrote:
According to the w3c specs a web page is not valid if the DOCTYPE
declaration is missing.
This is correct since the document type declaration is the piece of
syntax that makes validation possible in the first place.
So, if I add the following doctype to my pages they will be
"compliant": [...]


Not necessarily, that depends on the rest of the document of course.

--
David Håsäther
May 19 '06 #18
AndyZa <an****@webmail.co.za> wrote:
I read in another post that the doctype declaration is case sensitive
so:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
is different to
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">


The case sensitive part is the _formal public identifier_, i.e.,
"-//W3C//DTD HTML 4.01//EN".

--
David Håsäther
May 19 '06 #19
On 19/05/2006 14:54, Harlan Messinger wrote:
Michael Winter wrote:


[snip]
A Transitional or Frameset document type will only [trigger
Standards mode] if the URI is also present.


*The* URI or *any* URI?


Neither, it would seem but, predictably, to what extent depends on which
user agent one asks. :-)

IE6, for example, seems content with just the HTTP scheme and an empty
authority and path (http://), but not relative URIs. Firefox, on the
other hand, seems to accept any string, including an empty one (but not
no string). With such variability, I didn't check anything else (and I'd
only use /the/ URI, anyway).

Mike

--
Michael Winter
Prefix subject with [News] before replying by e-mail.
May 19 '06 #20
On 19/05/2006 13:21, VK wrote:

[snip]
If IE has a bug, I say "an IE's bug". If FF has a bug, I say "a FF's
bug".
Replace "a bug" with "behaviour I don't understand/like", and you're
just about there.

As RobG wrote in c.l.javascript[1], one cannot label certain behaviour a
'bug' just because it's disliked. Whilst one might prefer Mozilla to
implement a validating XML processor, they don't have to.

[snip]

[MLW:]
When are you going to understand that conforming XML processors are
not required to validate documents, but must report well-formedness
violations?


And the latter is often not possible without loading beforehand the
specified DTD (if specified).


Oh, for goodness sake! Do you even know what well-formedness is?

The constraints in a DTD, along with validity constraints in the XML
specification, define a /valid/ document. The XML specification itself
defines what constitutes a well-formed document.

None of the well-formedness constraints are predicated on the content of
external markup declarations (though they do govern the form of those
declarations). It wouldn't make sense as all conforming processors are
required to check for well-formedness, but not all conforming processors
are required to process DTDs.
The linked/re-linked Firefox bug discussion in "DTD in browsers"
thread was roaming around this issue: that Firefox parser may raise
well-formedness error wich wouldn't occure if it was instructed to
fetch external DTD with extra entities
That Firefox raises a well-formedness error in response to referenced to
undeclared entities in non-standalone documents /is/ a bug, and I stated
that in that thread. That Firefox doesn't read the entire internal
subset in standalone documents /is/ a bug. That Firefox doesn't process
external subsets is /not/ a bug, because it doesn't act as a validating
XML processor on the Web.
And (and this is one of Mozilla team headaches) it creates an
interesting situation for XHTML documents with both XML prolog and
external DTD in DOCTYPE - especially if it's "XML-conformant" XHTML
1.0
No, it doesn't. If you followed that 'bug' report as closely as you seem
to suggest, you would have read that Mozilla recognises certain formal
public identifiers and defines the appropriate entities. That might be
odd behaviour - introducing entity declarations as a validating
processor might, but without actually validating - but it avoids the
problem.
From one side an XML-conformant parser /have/ to fetch such DTD
No! Only a conforming, /validating/ processor is required to process
external markup declarations. How many times?
as <http://www.w3.org/TR/REC-xml/#sec-rmd> "Validity constraint"
section leaves no option but assume standalone="no".


That is inconsequential. The standalone document declaration says
nothing about whether external markup declarations must be processed,
just whether they (may) have an effect on actions like attribute value
normalisation.

[snip]

Mike
[1] <HC*******************@news.optus.net.au>

--
Michael Winter
Prefix subject with [News] before replying by e-mail.
May 19 '06 #21
VK
VK wrote:
If IE has a bug, I say "an IE's bug". If FF has a bug, I say "a FF's
bug".

Michael Winter wrote: As RobG wrote in c.l.javascript[1], one cannot label certain behaviour a
'bug' just because it's disliked. Whilst one might prefer Mozilla to
implement a validating XML processor, they don't have to.
Full ACK. If the software producer is aware of some behavior and
considers it valid, I have no power to call it a "bug" no matter what
do I or anyone else really think of it. This is why I have to call
#26179 "phantom node /issue/" - because it's current status
unfortunately is RESOLVED INVALIDE.

But the bug in question
<https://bugzilla.mozilla.org/show_bug.cgi?id=69799> is currently
marked as NEW which is:
<q>This bug has recently been added to the assignee's list of bugs and
must be processed. Bugs in this state may be accepted, and become
ASSIGNED, passed on to someone else, and remain NEW, or resolved and
marked RESOLVED.</q>

This way it is an officially submitted open bug and unless changed to
RESOLVED INVALIDE I have all rights to call a cat as cat and a bug as
bug.
Oh, for goodness sake! Do you even know what well-formedness is?


Only as an amaterish definition: all pared tags are closed properly
(have matching closing tags), do not overlap each other, and all single
tags have that slash at the end. Would it go for my demo? After we
could proceed with the rest.

May 19 '06 #22

VK wrote:
Oh, for goodness sake! Do you even know what well-formedness is?


Only as an amaterish definition: all pared tags are closed properly
(have matching closing tags), do not overlap each other, and all single
tags have that slash at the end.


How do you have the brass balls to keep posting your pontificating
rubbish when you don't even understand this completely and accurately,
at your fingertips?

May 19 '06 #23
VK

Andy Dingley <di*****@codesmiths.com> wrote:
VK wrote:
Oh, for goodness sake! Do you even know what well-formedness is?


Only as an amaterish definition: all pared tags are closed properly
(have matching closing tags), do not overlap each other, and all single
tags have that slash at the end.


How do you have the brass balls to keep posting your pontificating
rubbish when you don't even understand this completely and accurately,
at your fingertips?


Get the <http://www.w3.org/TR/REC-xml/#sec-well-formed> and read it ad
nausea. The question was what do /I/ know right know about w-f, not an
official quote. Does anyone need a well-formed document - if its
properly linked DTD is properly fetshed - and ill-formed otherwise?
If not then simply su; consider I opted-out leaving you as the winner.

May 19 '06 #24
VK wrote:

Get the <http://www.w3.org/TR/REC-xml/#sec-well-formed> and read it
ad nausea. The question was what do /I/ know right know about w-f,
not an official quote. Does anyone need a well-formed document - if
its properly linked DTD is properly fetshed - and ill-formed
otherwise? If not then simply su; consider I opted-out leaving you as
the winner.

It seems more and more troll-like all the time. As far as I can see,
it's trolling for "stars" from Google Groups, which I presume are some
kind of virtual reward scheme that isn't available to posters using
proper newsreaders.

Why can't Google just go back to operating a sensible Usenet archive,
instead of distorting newsgroups with this weird nonsense?

--
Jack.
May 19 '06 #25
David Håsäther wrote:
The case sensitive part is the _formal public identifier_, i.e.,
"-//W3C//DTD HTML 4.01//EN".


And that part needs to be in upper case?

May 19 '06 #26
AndyZa <an****@webmail.co.za> wrote:
David Håsäther wrote:
The case sensitive part is the _formal public identifier_, i.e.,
"-//W3C//DTD HTML 4.01//EN".


And that part needs to be in upper case?


In this particular case, yes.

--
David Håsäther
May 19 '06 #27
In article <Su******************@text.news.blueyonder.co.uk >,
Michael Winter <m.******@blueyonder.co.uk> wrote:
Briefly, a Strict document type will always trigger Standards mode.
Except in a special case in Mac IE 5, which is obsolete.
A
Transitional or Frameset document type will only do so if the URI is
also present. The rules are more complicated than that, but if you stick
to Strict HTML 4.01, you can safely ignore it all.


Rather, if you stick to Strict HTML 4.01 *with* the URI, you can ignore
the details.

And since no one has mentioned it so far:
http://hsivonen.iki.fi/doctype/

--
Henri Sivonen
hs******@iki.fi
http://hsivonen.iki.fi/
Mozilla Web Author FAQ: http://mozilla.org/docs/web-developer/faq.html
May 19 '06 #28
VK

Jack wrote:
It seems more and more troll-like all the time. As far as I can see,
it's trolling for "stars" from Google Groups, which I presume are some
kind of virtual reward scheme that isn't available to posters using
proper newsreaders.


I was wondering about the stink coming out from my monitor each time I
was reading ciwah last few days. The reason is cleared out after I
found this little post. I put it/you in the filter and the air got
fresh right away.

And no - I'm not hunting for "stars" of any kind - that was a joke,
poor you.

May 22 '06 #29
> And since no one has mentioned it so far:
http://hsivonen.iki.fi/doctype/


Very nice! Thanks...

May 22 '06 #30

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

13 posts views Thread by CJM | last post: by
7 posts views Thread by David Ross | last post: by
14 posts views Thread by Mary Ellen Curtin | last post: by
2 posts views Thread by DartmanX | last post: by
25 posts views Thread by Viken Karaguesian | last post: by
17 posts views Thread by Rick Brandt | last post: by
20 posts views Thread by Deborah | last post: by
1 post views Thread by Solo | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.