javascript - A script that loads an image at random from an array without repeating any until all have been viewed -


i running script loads image array @ random each time page refreshed. undesirable feature of script, , every other script have seen online, though there on 100 images in array, loads same image number of times before of images in array have been viewed.

i alter script prevent same image being called twice before of images in array have been viewed. if entirely different approach 1 have taken here preferable, please let me know. also, understanding of javascript shakey thorough explanation of how correct issue helpful.

thanks in advance

here page source:

    <meta http-equiv="content-type" content="text/html; charset=utf-8">     <title></title>      <link href="css/styles.css" rel="stylesheet" type="text/css">     <!--[if ie]><link href="css/ie-styles.css" rel="stylesheet" type="text/css"><![endif]-->      <script type="text/javascript">     <!--     var xoxo = new array(); // array hold filenames              xoxo[0] = "images/portrait/fpo/01.jpg"             xoxo[1] = "images/portrait/fpo/02.jpg"             xoxo[2] = "images/portrait/fpo/03.jpg"             xoxo[3] = "images/portrait/fpo/04.jpg"             xoxo[4] = "images/portrait/fpo/05.jpg"             xoxo[5] = "images/portrait/fpo/06.jpg"             xoxo[6] = "images/portrait/fpo/07.jpg"             xoxo[7] = "images/portrait/fpo/08.jpg"             xoxo[8] = "images/portrait/fpo/09.jpg"             xoxo[9] = "images/portrait/fpo/10.jpg"             xoxo[10] = "images/portrait/fpo/11.jpg"             xoxo[11] = "images/portrait/fpo/12.jpg"             xoxo[12] = "images/portrait/fpo/13.jpg"             xoxo[13] = "images/portrait/fpo/14.jpg"             xoxo[14] = "images/portrait/fpo/15.jpg"             xoxo[15] = "images/portrait/fpo/16.jpg"             xoxo[16] = "images/portrait/fpo/17.jpg"             xoxo[17] = "images/portrait/fpo/18.jpg"             xoxo[18] = "images/portrait/fpo/19.jpg"             xoxo[19] = "images/portrait/fpo/20.jpg"             xoxo[20] = "images/portrait/fpo/21.jpg"             xoxo[21] = "images/portrait/fpo/22.jpg"             xoxo[22] = "images/portrait/fpo/23.jpg"             xoxo[23] = "images/portrait/fpo/24.jpg"             xoxo[24] = "images/portrait/fpo/25.jpg"             xoxo[25] = "images/portrait/fpo/26.jpg"             xoxo[26] = "images/portrait/fpo/27.jpg"             xoxo[27] = "images/portrait/fpo/28.jpg"             xoxo[28] = "images/portrait/fpo/29.jpg"             xoxo[29] = "images/portrait/fpo/30.jpg"             xoxo[30] = "images/portrait/fpo/31.jpg"             xoxo[31] = "images/portrait/fpo/32.jpg"             xoxo[32] = "images/portrait/fpo/33.jpg"             xoxo[33] = "images/portrait/fpo/34.jpg"             xoxo[34] = "images/portrait/fpo/35.jpg"             xoxo[35] = "images/portrait/fpo/36.jpg"             xoxo[36] = "images/portrait/fpo/37.jpg"             xoxo[37] = "images/portrait/fpo/38.jpg"             xoxo[38] = "images/portrait/fpo/39.jpg"             xoxo[39] = "images/portrait/fpo/40.jpg"             xoxo[40] = "images/portrait/fpo/41.jpg"             xoxo[41] = "images/portrait/fpo/42.jpg"             xoxo[42] = "images/portrait/fpo/43.jpg"             xoxo[43] = "images/portrait/fpo/44.jpg"             xoxo[44] = "images/portrait/fpo/45.jpg"             xoxo[45] = "images/portrait/fpo/46.jpg"             xoxo[46] = "images/portrait/fpo/47.jpg"             xoxo[47] = "images/portrait/fpo/48.jpg"             xoxo[48] = "images/portrait/fpo/49.jpg"             xoxo[49] = "images/portrait/fpo/50.jpg"             xoxo[50] = "images/portrait/fpo/51.jpg"             xoxo[51] = "images/portrait/fpo/52.jpg"             xoxo[52] = "images/portrait/fpo/53.jpg"             xoxo[53] = "images/portrait/fpo/54.jpg"             xoxo[54] = "images/portrait/fpo/55.jpg"             xoxo[55] = "images/portrait/fpo/56.jpg"             xoxo[56] = "images/portrait/fpo/57.jpg"             xoxo[57] = "images/portrait/fpo/58.jpg"             xoxo[58] = "images/portrait/fpo/59.jpg"             xoxo[59] = "images/portrait/fpo/60.jpg"             xoxo[60] = "images/portrait/fpo/61.jpg"             xoxo[61] = "images/portrait/fpo/62.jpg"             xoxo[62] = "images/portrait/fpo/63.jpg"             xoxo[63] = "images/portrait/fpo/64.jpg"             xoxo[64] = "images/portrait/fpo/65.jpg"             xoxo[65] = "images/portrait/fpo/66.jpg"             xoxo[66] = "images/portrait/fpo/67.jpg"             xoxo[67] = "images/portrait/fpo/68.jpg"             xoxo[68] = "images/portrait/fpo/69.jpg"             xoxo[69] = "images/fashion/fpo/01.jpg"             xoxo[70] = "images/fashion/fpo/02.jpg"             xoxo[71] = "images/fashion/fpo/03.jpg"             xoxo[72] = "images/fashion/fpo/04.jpg"             xoxo[73] = "images/fashion/fpo/05.jpg"             xoxo[74] = "images/fashion/fpo/06.jpg"             xoxo[75] = "images/fashion/fpo/07.jpg"             xoxo[76] = "images/fashion/fpo/08.jpg"             xoxo[77] = "images/fashion/fpo/09.jpg"             xoxo[78] = "images/fashion/fpo/10.jpg"             xoxo[79] = "images/fashion/fpo/11.jpg"             xoxo[80] = "images/fashion/fpo/12.jpg"             xoxo[81] = "images/fashion/fpo/13.jpg"             xoxo[82] = "images/fashion/fpo/14.jpg"             xoxo[83] = "images/fashion/fpo/15.jpg"             xoxo[84] = "images/fashion/fpo/16.jpg"             xoxo[85] = "images/fashion/fpo/17.jpg"             xoxo[86] = "images/fashion/fpo/18.jpg"             xoxo[87] = "images/fashion/fpo/19.jpg"             xoxo[88] = "images/fashion/fpo/20.jpg"             xoxo[89] = "images/fashion/fpo/21.jpg"             xoxo[90] = "images/fashion/fpo/22.jpg"             xoxo[91] = "images/fashion/fpo/23.jpg"             xoxo[92] = "images/fashion/fpo/24.jpg"             xoxo[93] = "images/fashion/fpo/25.jpg"             xoxo[94] = "images/fashion/fpo/26.jpg"             xoxo[95] = "images/fashion/fpo/27.jpg"             xoxo[96] = "images/fashion/fpo/28.jpg"             xoxo[97] = "images/fashion/fpo/29.jpg"             xoxo[98] = "images/fashion/fpo/30.jpg"             xoxo[99] = "images/fashion/fpo/31.jpg"             xoxo[100] = "images/fashion/fpo/32.jpg"             xoxo[101] = "images/fashion/fpo/33.jpg"             xoxo[102] = "images/fashion/fpo/34.jpg"             xoxo[103] = "images/fashion/fpo/35.jpg"             xoxo[104] = "images/fashion/fpo/36.jpg"             xoxo[105] = "images/fashion/fpo/37.jpg"             xoxo[106] = "images/fashion/fpo/38.jpg"             xoxo[107] = "images/fashion/fpo/39.jpg"             xoxo[108] = "images/fashion/fpo/40.jpg"             xoxo[109] = "images/fashion/fpo/41.jpg"             xoxo[110] = "images/fashion/fpo/42.jpg"             xoxo[111] = "images/fashion/fpo/43.jpg"             xoxo[112] = "images/fashion/fpo/44.jpg"             xoxo[113] = "images/fashion/fpo/45.jpg"             xoxo[114] = "images/fashion/fpo/46.jpg"             xoxo[115] = "images/fashion/fpo/47.jpg"             xoxo[116] = "images/fashion/fpo/48.jpg"             xoxo[117] = "images/fashion/fpo/49.jpg"             xoxo[118] = "images/fashion/fpo/50.jpg"             xoxo[119] = "images/fashion/fpo/51.jpg"             xoxo[120] = "images/fashion/fpo/52.jpg"             xoxo[121] = "images/fashion/fpo/53.jpg"             xoxo[122] = "images/fashion/fpo/54.jpg"             xoxo[123] = "images/fashion/fpo/55.jpg"             xoxo[124] = "images/fashion/fpo/56.jpg"             xoxo[125] = "images/fashion/fpo/57.jpg"             xoxo[126] = "images/fashion/fpo/58.jpg"             xoxo[127] = "images/fashion/fpo/59.jpg"             xoxo[128] = "images/fashion/fpo/60.jpg"             xoxo[129] = "images/fashion/fpo/61.jpg"             xoxo[130] = "images/fashion/fpo/62.jpg"             xoxo[131] = "images/fashion/fpo/63.jpg"             xoxo[132] = "images/fashion/fpo/64.jpg"             xoxo[133] = "images/fashion/fpo/65.jpg"             xoxo[134] = "images/fashion/fpo/66.jpg"             xoxo[135] = "images/fashion/fpo/67.jpg"             xoxo[136] = "images/fashion/fpo/68.jpg"             xoxo[137] = "images/fashion/fpo/69.jpg"             xoxo[138] = "images/children/fpo/01.jpg"             xoxo[139] = "images/children/fpo/02.jpg"             xoxo[140] = "images/children/fpo/03.jpg"             xoxo[141] = "images/children/fpo/04.jpg"             xoxo[142] = "images/children/fpo/05.jpg"             xoxo[143] = "images/children/fpo/06.jpg"             xoxo[144] = "images/children/fpo/07.jpg"             xoxo[145] = "images/children/fpo/08.jpg"             xoxo[146] = "images/children/fpo/09.jpg"             xoxo[147] = "images/children/fpo/10.jpg"             xoxo[148] = "images/children/fpo/11.jpg"             xoxo[149] = "images/children/fpo/12.jpg"             xoxo[150] = "images/children/fpo/13.jpg"             xoxo[151] = "images/children/fpo/14.jpg"             xoxo[152] = "images/children/fpo/15.jpg"             xoxo[153] = "images/children/fpo/16.jpg"             xoxo[154] = "images/children/fpo/17.jpg"             xoxo[155] = "images/children/fpo/18.jpg"             xoxo[156] = "images/children/fpo/19.jpg"             xoxo[157] = "images/children/fpo/20.jpg"             xoxo[158] = "images/children/fpo/21.jpg"             xoxo[159] = "images/children/fpo/22.jpg"             xoxo[160] = "images/children/fpo/23.jpg"             xoxo[161] = "images/children/fpo/24.jpg"             xoxo[162] = "images/children/fpo/25.jpg"             xoxo[163] = "images/children/fpo/26.jpg"             xoxo[164] = "images/children/fpo/27.jpg"             xoxo[165] = "images/children/fpo/28.jpg"             xoxo[166] = "images/children/fpo/29.jpg"             xoxo[167] = "images/children/fpo/30.jpg"             xoxo[168] = "images/children/fpo/31.jpg"             xoxo[169] = "images/children/fpo/32.jpg"             xoxo[170] = "images/children/fpo/33.jpg"             xoxo[171] = "images/children/fpo/34.jpg"             xoxo[172] = "images/children/fpo/35.jpg"             xoxo[173] = "images/children/fpo/36.jpg"             xoxo[174] = "images/children/fpo/37.jpg"      function pickrandom(range) {         if (math.random)             return math.round(math.random() * (range-1));         else {             var = new date();             return (now.gettime() / 1000) % range;         }     }     // write out img tag, using randomly-chosen image name.     var choice = pickrandom(xoxo.length);     // -->     </script> 

    <div class="menu">              <a style="color:#000000" href="index.html">index</a><br>             <a href="portrait/overview.html">portrait</a><br>             <a href="fashion/overview.html">fashion</a><br>             <a href="children/overview.html">children</a><br>             <a href="clients.html">clients</a><br>             <a href="contact.html">contact</a><br>      </div>      <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">     <tr valign="middle"><td align="center">              <a href="index.html"><script type="text/javascript">document.writeln('<img src="'+xoxo[choice]+'" >');</script></a>      </td></tr>     </table> 

since javascript numbers can hold integers of on 50 bits, 3 numbers keep track of 150 files.

the following code provides functions creating, manipulating , interrogating data structure consisting of array of 50 bit numbers:

function set (len) {   // establish array of sufficient 50 bit numbers hold len bits   this.bits = new array (math.floor ((len + 49) / 50));   this.len = len;   // clear numbers   (var = this.bits.length; i--;)     this.bits[i] = 0; }  set.prototype.full = function () {   // check if bits of set @ 1   // first check relevant bits of last word   if (this.bits[this.bits.length - 1] === math.pow (2, this.len + 1) - 1)     // chec tat remaining numbers full     (var = this.bits.length - 1; i--;)       if (bits[i] !== math.pow (2, 51) - 1)         return false;   return true; }  set.prototype.check = function (n) {   // return value (0 or 1) of bit n of set   var m = n % 50;    return math.floor (this.bits [(n - m) / 50] / math.pow (2, m)) & 1; }  set.prototype.add = function (n) {   // set bit n of set 1 (unless 1)   if (!this.check (n)) {     var m = n % 50;      this.bits [(n - m) / 50] += math.pow (2, m);     return true;   }   return false; }  set.prototype.remove = function (n) {   // set bit of set 0 (unless 0)   if (this.check (n)) {     var m = n % 50;      this.bits [(n - m) / 50] -= math.pow (2, m);     return true;   }   return false; }  set.prototype.clear = function () {   // clear bitsof set 0    (var = this.bits.length; i--;)     bits[i] = 0; } 

Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -