Jump to content

How To Populate Values In Div Tag


amitamberker

Recommended Posts

if one radio button is selected from a group only, and populate button pressed, only the text for that will show, IF you wish both to show whether selected or not try

<script type="text/javascript">/*<![CDATA[*//*---->*/function changeLink(){    var obj= document.getElementById("MyForm");    var populate_elem = document.getElementById("PopulateResult")    var joinstring = "My home location is:   My preferred location is: ";    for(i=0;i<obj.elements.length;i++)        {        if(obj.elements[i].name =='homelocation' && obj.elements[i].checked == true)            {            joinstring=joinstring.replace('My home location is: ', ('My home location is: '+obj.elements[i].value));            populate_elem.innerHTML=joinstring;            }                if(obj.elements[i].name =='preferredlocation' && obj.elements[i].checked == true)            {            joinstring=joinstring.replace('My preferred location is: ', 'My preferred location is: '+obj.elements[i].value);            populate_elem.innerHTML=joinstring            }        }}/*--*//*]]>*/</script>

the PopulateValue problem does not appear on my browsers, so me thinks it is something to do with css styling.

Link to comment
Share on other sites

  • Replies 93
  • Created
  • Last Reply

You made at least two mistakes with the file you're showing me. First, you have one <div> here with the id "PopulateResult" that shouldn't be there. Just remove that <div> tag because you have it further down.

<div class="populate" id="PopulateResult"><input type="submit" name="submit" value="Populate Values"/></div>

The second mistake is that you aren't calling the changeLink() function anywhere. The way you have it, the best option is to put it on the form submit handler:

<form id="MyForm" action="..." class="Form-WidthandInline" onsubmit="changeLink(); return false;">

Hmm, you also seem to have directly pasted some code that was incomplete. In order to complete it, you'll have to read my post to add in the parts that make it work. For example, this part does nothing:

for(i = 0; i < radios.length; i++) {  ...  // The rest of the code is the same except for this:  preferredValue = radios[i].value;  // And from here on it's also the same  ...

Link to comment
Share on other sites

if one radio button is selected from a group only, and populate button pressed, only the text for that will show, IF you wish both to show whether selected or not try
<script type="text/javascript">/*<![CDATA[*//*---->*/ function changeLink(){	var obj= document.getElementById("MyForm");	var populate_elem = document.getElementById("PopulateResult")	var joinstring = "My home location is:   My preferred location is: ";	for(i=0;i<obj.elements.length;i++)		{ 		if(obj.elements[i].name =='homelocation' && obj.elements[i].checked == true)			{			joinstring=joinstring.replace('My home location is: ', ('My home location is: '+obj.elements[i].value));			populate_elem.innerHTML=joinstring;			}				if(obj.elements[i].name =='preferredlocation' && obj.elements[i].checked == true)			{			joinstring=joinstring.replace('My preferred location is: ', 'My preferred location is: '+obj.elements[i].value);			populate_elem.innerHTML=joinstring			}		}}/*--*//*]]>*/</script>

the PopulateValue problem does not appear on my browsers, so me thinks it is something to do with css styling.

Hi dsonesuk, I am unable to attach the updated version of "dsonesuk_version.html" file. It says "Error This file was too big to upload" but no worries. I have uploaded file in MegaUpload domain. Please pick the file from: http://www1250.megau...uk_version.html
if one radio button is selected from a group only, and populate button pressed,
If one radio button is selected from a group only, it starts populating on its own. Please download the page from the above link and select a radio from both the groups. See what happens in DIV.1. When we select a radio from both the groups, DIV should still remain as "My home location is: My preferred location is:"2. When we click the button after selecting the radio, it should display as "My home location is: india My preferred location is: usa"
the PopulateValue problem does not appear on my browsers, so me thinks it is something to do with css styling.
Please make the PopulateValue as Populate Values and see what happens to the button on your browser. By the way, why did you put /*<![CDATA[*//*---->*/ underneath <script type="text/javascript"> and /*--*//*]]>*/ above </script> ? What does it mean?
Link to comment
Share on other sites

You made at least two mistakes with the file you're showing me. First, you have one <div> here with the id "PopulateResult" that shouldn't be there. Just remove that <div> tag because you have it further down.
<div class="populate" id="PopulateResult"><input type="submit" name="submit" value="Populate Values"/></div>

The second mistake is that you aren't calling the changeLink() function anywhere. The way you have it, the best option is to put it on the form submit handler:

<form id="MyForm" action="..." class="Form-WidthandInline" onsubmit="changeLink(); return false;">

Hmm, you also seem to have directly pasted some code that was incomplete. In order to complete it, you'll have to read my post to add in the parts that make it work. For example, this part does nothing:

for(i = 0; i < radios.length; i++) {  ...  // The rest of the code is the same except for this:  preferredValue = radios[i].value;  // And from here on it's also the same  ...

Hi Ingolme, I am unable to attach the updated version of "Ingolme_version.html" file. It says "Error This file was too big to upload" but no worries. I have uploaded file in MegaUpload domain. Please pick the file from:http://www794.megaupload.com/files/1524e7159dc327600a3acf28bbbd20ee/Ingolme_version.html Fixed the first mistake. I have changed the following: <div class="submit"><div class="populate" id="PopulateResult"><input type="submit" name="submit" value="Populate Values"/></div></div> to <div class="submit"><input type="submit" name="submit" value="Populate Values"/></div> and WOW! The "Populate Values" button has gone up? I mean, it has aligned on top instead of bottom. Fixed the second mistake. I have changed the following: <form id="MyForm" action="..." class="Form-WidthandInline"> to <form id="MyForm" action="..." class="Form-WidthandInline" onsubmit="changeLink(); return false;"> Hum, I read your post and followed to the best of my ability. But however, could you please explain once again along with showing at-least 1 example? Thank you.
Link to comment
Share on other sites

You applied onclick to the radio buttons themselves! so that is what you get, every time you select a button it updates the populate text, if you did not want that, then the obvious solution is to remove them!from

	    <div class="LocationBox">			    <div class="home_location">					    <div class="pick">						 Home Location<br />					    <input type="radio" name="homelocation" value="india" onclick="changeLink();" /> India<br />					    <input type="radio" name="homelocation" value="usa" onclick="changeLink();" /> USA					    </div>			    </div>			    <div class="preferred_location">					    <div class="pick">						 Preferred Location<br />					    <input type="radio" name="preferredlocation" value="india" onclick="changeLink();" /> India<br />					    <input type="radio" name="preferredlocation" value="usa" onclick="changeLink();" /> USA					    </div>			    </div>

to this

	    <div class="LocationBox">			    <div class="home_location">					    <div class="pick">						 Home Location<br />					    <input type="radio" name="homelocation" value="india" /> India<br />					    <input type="radio" name="homelocation" value="usa" /> USA					    </div>			    </div>			    <div class="preferred_location">					    <div class="pick">						 Preferred Location<br />					    <input type="radio" name="preferredlocation" value="india" /> India<br />					    <input type="radio" name="preferredlocation" value="usa" /> USA					    </div>			    </div>

Are you even bothering to learn and understand from examples given? At the moment it seems you just copy and paste without truly reading and understanding the solutions we are given you.oThe /*<![CDATA[*//*---->*/ is used to force the html validator (don't tell me! what! html validator, cuz i know this has been mentioned already) to read the JavaScript as text and not html code.

Link to comment
Share on other sites

Hi dsonesuk,

You applied onclick to the radio buttons themselves! so that is what you get, every time you select a button it updates the populate text, if you did not want that, then the obvious solution is to remove them!
I did not apply the onclick to the radio buttons. I mean, I thought maybe you wanted me to keep it like that. Hence, I retained onclick in radio buttons. I am following Member's instructions and learning as well. As you said, from this: <input type="radio" name="homelocation" value="india" onclick="changeLink();" /> India<input type="radio" name="homelocation" value="usa" onclick="changeLink();" /> USA <input type="radio" name="preferredlocation" value="india" onclick="changeLink();" /> India<br /><input type="radio" name="preferredlocation" value="usa" onclick="changeLink();" /> USA I changed it to this: <input type="radio" name="homelocation" value="india" /> India<input type="radio" name="homelocation" value="usa" /> USA <input type="radio" name="preferredlocation" value="india" /> India<br /><input type="radio" name="preferredlocation" value="usa" /> USA and now it works just perfect. Mate, the thread itself proves that I am here to learn and understand from examples given by all you members. Certainly I am reading and trying to understanding the solutions given by all you members. Thanks for the information about. /*<![CDATA[*//*---->*/ … Now I know that it detects the JavaScript as text and not as html code. Yes, I know what is HTML Validator and yes, this has been mentioned already. I remember. By the way please see the “SceenShot of Populate Values Button.png” file from: www.megaupload.com/?d=VM4DA21W
Link to comment
Share on other sites

if your container element is a fixed width say 110px and you place a button within it, with text say "PopulateValue" which is a tight fit but fits in any case, then you add extra characters such as space and 's' in an already tight fitting button, WHAT do you expect it to do. Homer! well i expect it to automatically change the fixed width of its container element to accommodate the extra space required. WRONG! DOH! at least think about it, I told you it was a css problem, and that is exactly what it is. P.S I said/showed to remove ALL onclick="changeLink();" from radio form elements.

Link to comment
Share on other sites

if your container element is a fixed width say 110px and you place a button within it, with text say "PopulateValue" which is a tight fit but fits in any case, then you add extra characters such as space and 's' in an already tight fitting button, WHAT do you expect it to do. Homer! well i expect it to automatically change the fixed width of its container element to accommodate the extra space required. WRONG! DOH! at least think about it, I told you it was a css problem, and that is exactly what it is.
Hi dsonesuk, .content .submit{float:left;width:110px;padding-top:8px;padding-left:8px;}.populate{background-color: #FFFFFF;padding-top: 41px;} -------------------------------------------- <div class="submit"><div class="populate"><!--<input type="submit" name="submit" value="Populate Values"/>--><button onclick="changeLink(); return false;">Populate Values</button></div></div> I think maybe I need to increase the width:110px; little bit more. Let me check, hold on. - width:112px; <!-- NO -->- width:116px; <!-- NO -->- width:120px; <!-- YES --> :) FINALLY IT'S DONE! :) Thanks a lot dsonesuk :) I mean, I would like to thank all the participated members. Thank you Mates. Really learnt a lot from this thread. But still, there are many more things to learn. By the way, in this section:
div#container { width: 980px; margin: 0 auto; background-color: #FFFFFF; border-left-style: groove; border-left-width: 2px; border-right-style: groove; border-right-width: 2px; border-right-color: #808080; border-left-color: #808080; height: 540px;}
if I make the height: 540px; as height: 100%; the whole thing get mess-up. Any idea about how do I fix it?
Link to comment
Share on other sites

Here's a technique that programmers do to make sure they know what their program is going: It's called "tracing"What you have to do is start right at the first line of your program, and go interpretting it yourself. This way you know exactly what your program is doing and, if there's something wrong in it, where it's going wrong. Here's a short example of tracing for a bit of code:

function pow(m, n) {  if(n < 1) {    return false;  }  var i = 0;  var result = m;  while (i < n) {    result = result * m;    i++  }  return result;}

In every step of the trace, we check the values of each variable so that we know what's going on with them.Trace:

  1. function pow(m, n) { Let's give m and n arbitrary values: [m = 5, n = 3]
  2. if(n < 1) Is n less than 1? No, n is 3. Ignore everything inside the if statement. [m = 5, n = 3]
  3. var i = 1; A new variable i is introduced and it is set to 1. [m = 5, n = 3, i = 1]
  4. var result = m; A new variable result is introduced and it has the same value as m. [m = 5, n = 3, i = 1, result = 5]
  5. while (i < n) { We are entering a while loop. As long as i is less than n, we will run the code in this block again. Is i less than n? Yes, i is 1 and n is 3, so let's run the code in the loop. [m = 5, n = 3, i = 1, result = 5]
  6. result = result * m; Multiply result by m and then put that into result. result = 5, m = 5, 5 * 5 is 25, so result = 25 [m = 5, n = 3, i = 1, result = 25]
  7. i++; Add 1 to i. i is 1, so adding one will make it 2, therefore i = 2. [m = 5, n = 3, i = 2, result = 25]
  8. } This means the end of the block. Since we're in a loop, let's go back to the beginning. [m = 5, n = 3, i = 2, result = 25]
  9. while (i < n) { As long as i is less than n, we will run the code in this block again. Is i less than n? Yes, i is 2 and n is 3, so let's run the code in the loop. [m = 5, n = 3, i = 2, result = 25]
  10. result = result * m; Multiply result by m and then put that into result. result = 25, m = 5, 25 * 5 is 125, so result = 125 [m = 5, n = 3, i = 2, result = 125]
  11. i++; Add 1 to i. i is 2, so adding one will make it 3, therefore i = 3. [m = 5, n = 3, i = 3, result = 125]
  12. } This means the end of the block. Since we're in a loop, let's go back to the beginning. [m = 5, n = 3, i = 3, result = 125]
  13. while (i < n) { As long as i is less than n, we will run the code in this block again. Is i less than n? No, i is 3 and n is 3. 3 is not less than 3, so we will ignore the block and go to the code that follows it. [m = 5, n = 3, i = 3, result = 125]
  14. return result; Return sends the value of result away. Since result = 125, this function gives 125 back to the caller. [m = 5, n = 3, i = 3, result = 125]
  15. } End of function. We're done testing it to see what it does.

Link to comment
Share on other sites

div#container does not see floated child elements within it, so it will only surround the non-floated child elements, for the div#container to see the floated elements you need to add overflow:hidden, and then i suggest removing the height completely.
Hi dsonesuk, Oh! I see. I didn't knew that... Hum! Interesting... Hold on, let me add overflow:hidden; and comment height: 540px; ... Yup! Works perfect! Maybe you may want to know why did I comment instead of removing the height completely. Right? Please see the following:
div#container { width: 980px; margin: 0 auto; background-color: #FFFFFF; border-left-style: groove; border-left-width: 2px; border-right-style: groove; border-right-width: 2px; border-right-color: #808080; border-left-color: #808080; /*height: 540px; --- (div#container does not see floated child elements within it. It will only surround the non-floated child elements. For the div#container to see the floated elements, we need to add overflow:hidden; instead of height: 540px;) */ overflow:hidden;}
By the way, here we go again:
a { text-decoration: none; color: #333333; font-family: tahoma; font-size: 12pt;}a:hover { text-decoration: underline; color: #333333; font-family: tahoma; font-size: 12pt;}.IconText { font-family: Verdana; font-size: 9pt; float: left; width: 465px; text-align: right; color: #333333; text-decoration: underline; - (I know, I have to remove this style from this class) padding-right: 15px;}.img01{ padding-right:5px;}.img02{ padding-right:5px; padding-left:15px;} ------------------------------------ <div class="MenuText"><a href="#">Home</a> |<a href="#">About XXX</a> |<a href="#">Contact Us</a></div><div class="IconText"><img alt="Print" src="images/Print_Icon.png" width="15" height="16" class="img01" />Print<img alt="Share" src="images/Share_Icon.png" width="15" height="16" class="img02" />Share<img alt="RSS" src="images/RSS_Icon.png" width="15" height="16" class="img02" />RSS</div>
If I give <a href="#"></a> for Print, Share, RSS, it will read / detects the above mentined CSS (which should not happen). These 3 (Print, Share, RSS) should look little bit different than Home, About XXX, Contact Us.
Link to comment
Share on other sites

Here's a technique that programmers do to make sure they know what their program is going: It's called "tracing"What you have to do is start right at the first line of your program, and go interpretting it yourself. This way you know exactly what your program is doing and, if there's something wrong in it, where it's going wrong. Here's a short example of tracing for a bit of code:
function pow(m, n) {  if(n < 1) {	return false;  }  var i = 0;  var result = m;  while (i < n) {	result = result * m;	i++  }  return result;}

In every step of the trace, we check the values of each variable so that we know what's going on with them.Trace:

  1. function pow(m, n) { Let's give m and n arbitrary values: [m = 5, n = 3]
  2. if(n < 1) Is n less than 1? No, n is 3. Ignore everything inside the if statement. [m = 5, n = 3]
  3. var i = 1; A new variable i is introduced and it is set to 1. [m = 5, n = 3, i = 1]
  4. var result = m; A new variable result is introduced and it has the same value as m. [m = 5, n = 3, i = 1, result = 5]
  5. while (i < n) { We are entering a while loop. As long as i is less than n, we will run the code in this block again. Is i less than n? Yes, i is 1 and n is 3, so let's run the code in the loop. [m = 5, n = 3, i = 1, result = 5]
  6. result = result * m; Multiply result by m and then put that into result. result = 5, m = 5, 5 * 5 is 25, so result = 25 [m = 5, n = 3, i = 1, result = 25]
  7. i++; Add 1 to i. i is 1, so adding one will make it 2, therefore i = 2. [m = 5, n = 3, i = 2, result = 25]
  8. } This means the end of the block. Since we're in a loop, let's go back to the beginning. [m = 5, n = 3, i = 2, result = 25]
  9. while (i < n) { As long as i is less than n, we will run the code in this block again. Is i less than n? Yes, i is 2 and n is 3, so let's run the code in the loop. [m = 5, n = 3, i = 2, result = 25]
  10. result = result * m; Multiply result by m and then put that into result. result = 25, m = 5, 25 * 5 is 125, so result = 125 [m = 5, n = 3, i = 2, result = 125]
  11. i++; Add 1 to i. i is 2, so adding one will make it 3, therefore i = 3. [m = 5, n = 3, i = 3, result = 125]
  12. } This means the end of the block. Since we're in a loop, let's go back to the beginning. [m = 5, n = 3, i = 3, result = 125]
  13. while (i < n) { As long as i is less than n, we will run the code in this block again. Is i less than n? No, i is 3 and n is 3. 3 is not less than 3, so we will ignore the block and go to the code that follows it. [m = 5, n = 3, i = 3, result = 125]
  14. return result; Return sends the value of result away. Since result = 125, this function gives 125 back to the caller. [m = 5, n = 3, i = 3, result = 125]
  15. } End of function. We're done testing it to see what it does.

Hi Ingolme,I am not a JavaScript expert. I can just manage the basics of JavaScript. Though I am learning many things from this thread, my capabilities do not allow me to go beyond my limits. For example, let's say you can Cook for 5 people. If not 5 people, we can consider 10 people. But as a matter of fact, your capabilities will not allow you to cook for 50 people and moreover, you do not want to cook for 50 people by considering your requirements and limitations. But however, for sure I will try to see this thing sometime later. Thanks a lot mate.
Link to comment
Share on other sites

Hi dsonesuk and Ingolme, I think I had ask my earlier query in a wrong forum. Hence, I am not getting a response here. Just now I have posted the above query in CSS Forum.By the way, is this the right way to keep the information in comment?

<script type="text/javascript">/*<![CDATA[*//*---->*/ // The /*<![CDATA[*//*---->*/ is used to force the html validator to read the JavaScript as Text and not as html code. // function changeLink(){ var obj= document.getElementById("MyForm");
Link to comment
Share on other sites

Many thanks to thescientist, Krewe, Ingolme, dsonesuk and ShadowMage.

Specifically many many thanks to dsonesuk.
Link to comment
Share on other sites

I'd also like to point that using my cdata comment makes absolutely no difference and works just as well as shadowmages. Another point I’d like to point out, which I think is a good point, which is well worth pointing out I think, as pointing goes, that it would probably be better to place all JavaScript code in external *.js and point/link to it from the <head>...</head> of the document, If you think all this pointing out is rude, I'm extremely sorry, and I'd like to point out I meant no disrespect, I just thought it was extremely important to point these good points out, and to point you in the correct method of implementing you code within you html document.

Link to comment
Share on other sites

Hi ShadowMage and dsonesuk, Okie Okie... Gotch your points. I understood. No No dsonesuk, I am certainly NOT thinking as all this pointing out is rude. Please do not feel extremely sorry. You are making sense mate. I agree with you and also, I agree with ShadowMage too. I believe, all the members has their own kind of methods :) By the way, is this the right way to keep the information in comment?

<script type="text/javascript">/*<![CDATA[*//*---->*/ // The /*<![CDATA[*//*---->*/ is used to force the html validator to read the JavaScript as Text and not as html code. // function changeLink(){var obj= document.getElementById("MyForm");
Please tell me...
Link to comment
Share on other sites

I don't know? Try it! if it does not interfere with javascript, the first javascript cdate comment, and html validation, it should be fine, just try it yourself.
Hi dsonesuk, Okie, let me try..... Yup! It's works perfect mate. No worries. Please visit this link to see my New Posting: http://w3schools.inv...ndpost&p=228513
Link to comment
Share on other sites

I'll go ahead and add to the pointing out of things by pointing out that I haven't seen a browser have problems with a <script> element in about 10 years. When I see things like this: <script type="text/javascript">/*<![CDATA[*//*---->*//*--*//*]]>*/</script> I tend to think of the concept of "Keep It Simple, Stupid". If you can't explain what each of those characters does, and most importantly why they are needed, then they probably aren't necessary. There was a time when it was necessary to use hacks like that to support browsers like IE5 or Netscape 4, but that time is long passed. I'm most used to seeing those types of things in various CSS rules to trick buggy browsers into following different rules, but browsers are better than that now. Even browsers which won't run Javascript know what a script element is, at least enough to ignore it. Instead of "if it doesn't interfere, then leave it there" I normally go with "if it doesn't have an effect, remove it". Just as with technical writing, the quality of your code improves as you remove code without changing the outcome. I guess the bottom line is this: I don't use things like that in any of my code, and I've never (as in not once) encountered an issue that was solved by adding that. Therefore, I don't see a reason to use it. If I'm wrong on that point, feel free to correct me with a code example that shows a problem which is solved by adding something like those comments.

Link to comment
Share on other sites

Hi justsomeguy / Hello justsomeguy, Finally you are here! Very happy to see your post in this thread!

I guess the bottom line is this: I don't use things like that in any of my code, and I've never (as in not once) encountered an issue that was solved by adding that. Therefore, I don't see a reason to use it.
Well, so what would you suggest both of us? (dsonesuk and Myself)
If I'm wrong on that point, feel free to correct me with a code example that shows a problem which is solved by adding something like those comments.
As you are aware, I am not the right person to comment on it. Maybe dsonesuk or some other member MAY / MIGHT try to debate / discuss with you. I liked the KISS (Keep It Simple, Stupid) saying. Sounds so cool... By the way did you get a chance to see my posting in General segment about Seo Forum?
Link to comment
Share on other sites

I suggest just wrapping your Javascript code in a script tag alone: <script type="text/javascript">// code goes here</script> Like I said, I don't see a reason to do anything else. I saw your post about SEO, the general rule is to use your keywords in the page content as often as you can without spamming them all over the place.

Link to comment
Share on other sites

Its not required for the running of javascript, ITS required for passing html validation take <script type="text/javascript">var thistext ="this and that";if(thistext == "this and that" && thistext.length==13){alert("whooppee")}else{alert("boooooooooooooooooooooooooooooooo")}</script> Now try to validate at http://validator.w3.org/check <script type="text/javascript">/*<![CDATA[*//*---->*/var thistext ="this and that";if(thistext == "this and that" && thistext.length==13){alert("whooppee")}else{alert("boooooooooooooooooooooooooooooooo")}/*--*//*]]>*/</script> compared with above.

Link to comment
Share on other sites

Hi justsomeguy,

I suggest just wrapping your Javascript code in a script tag alone: <script type="text/javascript">// code goes here</script>
Based on dsonesuk’s debate with you, I will keep the Javascript code as it is without doing anything to it. But however, I will try to wrap the Javascript code in a script tag alone to see what happens after validating the page from http://validator.w3.org/ .
I saw your post about SEO, the general rule is to use your keywords in the page content as often as you can without spamming them all over the place.
So, did you felt that I am spamming the Keyword? I hope no. Because, those 6 points the mandatory rules. Like I said, The goal is to get the specific page (KEYWORD.html) on the 1st page on Google. I would like to know what are the other things, factors and considerations to get KEYWORD.html page on the first page on Google searches? Please visit the following link and share your thoughts: http://w3schools.invisionzone.com/index.php?showtopic=41170
Link to comment
Share on other sites

But however, I will try to wrap the Javascript code in a script tag alone to see what happens after validating the page from http://validator.w3.org/ .
Just now tried validating the page without: /*<![CDATA[*//*---->*/.../*--*//*]]>*/ The Validator says: Errors found while checking this document as XHTML 1.0 Transitional!Result: 3 Errors, 5 warning(s)
I guess the bottom line is this: I don't use things like that in any of my code, and I've never (as in not once) encountered an issue that was solved by adding that. Therefore, I don't see a reason to use it.
We both (dsonesuk and Myself) suggest you (justsomeguy) to use: /*<![CDATA[*//*---->*/ .../*--*//*]]>*/ in your Javascript.
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...