// Autofill Object // http://www.experts-exchange.com/Web/Web_Languages/JavaScript/Q_21178807.html function Model(model, modelno, cpufreq, memory, hddbrand, hddsize, hddrpm, macosxver) { this.model = model; this.cpufreq = cpufreq; this.memory = memory; this.hddbrand = hddbrand; this.hddsize = hddsize; this.hddrpm = hddrpm; this.macosxver = macosxver; // define function so method can use it function setFormObject(fo, what) { fo.style.color = "#0000ff"; if (fo.type == "text" || fo.type == "textarea" || fo.type == "hidden") fo.value = what; else if (fo.type.indexOf("select") > -1) { for (var i=0; i < fo.length; i++) { if (fo[i].value == what) { fo[i].selected = true; break; } } } } this.getModel = function () {return this.model;}; this.copyToForm = function (formobject) { //setFormObject(formobject.model, this.model); setFormObject(formobject.cpufreq, this.cpufreq); setFormObject(formobject.memory, this.memory); setFormObject(formobject.hddbrand, this.hddbrand); setFormObject(formobject.hddsize, this.hddsize); setFormObject(formobject.hddrpm, this.hddrpm); setFormObject(formobject.macosxver, this.macosxver); }; } function Models(listofcmps) { this.listofcmps = new Array(); this.listofcmps = listofcmps; this.length = listofcmps.length; this.matchindices = null; this.autoFill = function (nm, formobject, searchtype) { if (nm == "") return; var matches = 0; this.matchindices = new Array(); nm = nm.toUpperCase(); for (var i=0; i < this.length; i++) { if ((searchtype == "model" && (this.listofcmps[i].model.toUpperCase()) == nm)) this.matchindices[matches++] = i; } this.doFill(nm, formobject, searchtype); }; this.doFill = function (nm, formobject, searchtype) { var n = this.matchindices.length; var line = "________________________________\n"; if (n == 0) alert(line + "\n" + "No matches found for " + nm + ".\n" + line); else if (n == 1) this.listofcmps[this.matchindices[n-1]].copyToForm(formobject); else if (n > 1) { var cmps = ""; for (var i = 0; i < n; i++) { cmps += "\t"; if (searchtype == "model") cmps += this.listofcmps[this.matchindices[i]].model; cmps += "\n"; } alert("Multiple matches found for " + nm + ".\n" + line + "\n" + cmps + line); } }; } // Database var cmps = new Array(); cmps[cmps.length] = new Model("1", "MA463LL/A", "1.83", "512", "Toshiba", "80", "5400", "10.4"); cmps[cmps.length] = new Model("2", "MA464LL/A", "2.00", "1", "Seagate", "100", "5400", "10.4"); cmps[cmps.length] = new Model("14", "MA200LL", "2.00", "512", "", "250", "7200", "10.4"); cmps[cmps.length] = new Model("13", "MA199LL", "1.83", "512", "", "160", "7200", "10.4"); cmps[cmps.length] = new Model("9", "MA205LL/A", "1.50", "512", "", "60", "5400", "10.4"); cmps[cmps.length] = new Model("10", "MA206LL/A", "1.66", "512", "", "80", "5400", "10.4"); cmps[cmps.length] = new Model("3", "MA092LL/A", "2.16", "1", "Seagate", "120", "5400", "10.4"); cmps[cmps.length] = new Model("7", "MA255LL/A", "2.00", "512", "Seagate", "60", "5400", "10.4"); cmps[cmps.length] = new Model("4", "MA600LL", "2.00", "512", "Seagate", "80", "5400", "10.4"); cmps[cmps.length] = new Model("5", "MA601LL", "2.16", "1", "Seagate", "100", "5400", "10.4"); cmps[cmps.length] = new Model("6", "MA254LL/A", "1.83", "512", "Seagate", "60", "5400", "10.4"); cmps[cmps.length] = new Model("8", "MA472LL/A", "2.00", "512", "Seagate", "80", "5400", "10.4"); cmps[cmps.length] = new Model("15", "MA356LL/A", "2.66", "1", "", "250", "7200", "10.4"); cmps[cmps.length] = new Model("21", "MA608LL/A", "1.83", "512", "", "80", "5400", "10.4"); cmps[cmps.length] = new Model("20", "MA607LL/A", "1.66", "512", "", "60", "5400", "10.4"); cmps[cmps.length] = new Model("19", "MA456LL", "2.16", "1", "", "250", "7200", "10.4"); cmps[cmps.length] = new Model("18", "MA589LL", "2.16", "1", "", "250", "7200", "10.4"); cmps[cmps.length] = new Model("17", "MA590LL", "2.00", "1", "", "160", "7200", "10.4"); cmps[cmps.length] = new Model("16", "MA710LL", "1.83", "512", "", "160", "7200", "10.4"); cmps[cmps.length] = new Model("22", "MA609LL", "2.16", "1", "", "120", "5400", "10.4.8"); cmps[cmps.length] = new Model("23", "MA610LL", "2.33", "2", "", "120", "5400", "10.4.8"); cmps[cmps.length] = new Model("24", "MA611LL/A", "2.33", "2", "", "160", "5400", "10.4.8"); cmps[cmps.length] = new Model("27", "MA701LL/A", "2.00", "1", "", "120", "5400", "10.4.8"); cmps[cmps.length] = new Model("26", "MA700LL/A", "2.00", "1", "", "80", "5400", "10.4.8"); cmps[cmps.length] = new Model("25", "MA699LL/A", "1.83", "512", "", "60", "5400", "10.4.8"); cmps[cmps.length] = new Model("30", "MB063LL/A", "2.16", "1", "", "160", "5400", "10.4"); cmps[cmps.length] = new Model("31", "MA895LL", "2.20", "2", "", "120", "5400", "10.4"); cmps[cmps.length] = new Model("32", "MA896LL", "2.40", "2", "", "160", "5400", "10.4"); cmps[cmps.length] = new Model("33", "MA897LL/A", "2.40", "2", "", "160", "5400", "10.5"); cmps[cmps.length] = new Model("28", "MB061LL/A", "2.00", "1", "", "80", "5400", "10.4"); cmps[cmps.length] = new Model("29", "MB062LL/A", "2.16", "1", "", "120", "5400", "10.4"); cmps[cmps.length] = new Model("38", "MB139LL/A", "2.00", "1", "", "120", "5400", "10.4"); cmps[cmps.length] = new Model("37", "MB138LL/A", "1.83", "1", "", "80", "5400", "10.4"); cmps[cmps.length] = new Model("36", "MA878LL", "2.40", "1", "", "320", "7200", "10.4"); cmps[cmps.length] = new Model("35", "MA877LL", "2.40", "1", "", "320", "720", "10.4"); cmps[cmps.length] = new Model("34", "MA876LL", "2.00", "1", "", "250", "7200", "10.4"); cmps[cmps.length] = new Model("45", "MB166LL/A", "2.50", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("44", "MB134LL/A", "2.50", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("43", "MB133LL/A", "2.40", "2", "", "200", "5400", "10.5"); cmps[cmps.length] = new Model("42", "MB404LL/A", "2.40", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("41", "MB403LL/A", "2.40", "2", "", "160", "5400", "10.5"); cmps[cmps.length] = new Model("40", "MB402LL/A", "2.10", "1", "", "120", "5400", "10.5"); cmps[cmps.length] = new Model("46", "MB323LL/A", "2.40", "1", "", "250", "7200", "10.5"); cmps[cmps.length] = new Model("47", "MB324LL/A", "2.66", "2", "", "320", "7200", "10.5"); cmps[cmps.length] = new Model("48", "MB325LL/A", "2.80", "2", "", "320", "7200", "10.5"); cmps[cmps.length] = new Model("54", "MB940LL/A", "1.83", "2", "", "128", "0", "10.5"); cmps[cmps.length] = new Model("53", "MB543LL/A", "1.60", "2", "", "160", "4200", "10.5"); cmps[cmps.length] = new Model("52", "MB467LL/A", "2.40", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("51", "MB466LL/A", "2.00", "2", "", "160", "5400", "10.5"); cmps[cmps.length] = new Model("50", "MB134LL/A", "2.53", "4", "", "320", "5400", "10.4"); cmps[cmps.length] = new Model("49", "MB133LL/A", "2.40", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("65", "MB535LL/A", "2.26", "6", "", "640", "7200", "10.5"); cmps[cmps.length] = new Model("64", "MB871LL/A", "2.66", "3", "", "640", "7200", "10.5"); cmps[cmps.length] = new Model("63", "MB420LL/A", "3.06", "4", "", "1000", "7200", "10.5"); cmps[cmps.length] = new Model("62", "MB419LL/A", "2.93", "4", "", "640", "7200", "10.5"); cmps[cmps.length] = new Model("61", "MB418LL/A", "2.66", "4", "", "640", "7200", "10.5"); cmps[cmps.length] = new Model("60", "MB417LL/A", "2.66", "2", "", "320", "7200", "10.5"); cmps[cmps.length] = new Model("59", "MB464LL/A", "2.00", "2", "", "320", "5400", "10.5"); cmps[cmps.length] = new Model("58", "MB463LL/A", "2.00", "1", "", "120", "5400", "10.5"); cmps[cmps.length] = new Model("57", "MB604LL/A", "2.66", "4", "", "320", "5400", "10.5"); cmps[cmps.length] = new Model("56", "MC026LL/A", "2.66", "4", "", "320", "5400", "10.5"); cmps[cmps.length] = new Model("55", "MB470LL/A", "2.40", "2", "", "250", "5400", "10.5"); cmps[cmps.length] = new Model("75", "MB991LL/A", "2.53", "4", "", "250", "5400", "10.6"); cmps[cmps.length] = new Model("76", "MC118LL/A", "2.53", "4", "", "250", "5400", "10.6"); cmps[cmps.length] = new Model("77", "MB985LL/A", "2.66", "4", "", "3200", "5400", "10.6"); cmps[cmps.length] = new Model("78", "MB986LL/A", "2.80", "4", "", "500", "5400", "10.6"); cmps[cmps.length] = new Model("79", "MC226LL/A", "2.80", "4", "", "500", "5400", "10.6"); cmps[cmps.length] = new Model("80", "MC233LL/A", "1.86", "2", "", "120", "4200", "10.6"); cmps[cmps.length] = new Model("81", "MC234LL/A", "2.13", "2", "", "128", "0", "10.6"); cmps[cmps.length] = new Model("74", "MB990LL/A", "2.26", "2", "", "160", "5400", "10.6"); cmps[cmps.length] = new Model("73", "MC207LL/A", "2.26", "2", "", "250", "5400", "10.6"); cmps[cmps.length] = new Model("66", "MB950LL/A", "3.06", "4", "", "500", "7200", "10.6"); cmps[cmps.length] = new Model("67", "MC413LL/A", "3.06", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("68", "MB952LL/A", "3.06", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("69", "MB953LL/A", "3.06", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("70", "MC238LL/A", "2.26", "2", "", "160", "5400", "10.6"); cmps[cmps.length] = new Model("71", "MC239LL/A", "2.53", "4", "", "320", "7200", "10.6"); cmps[cmps.length] = new Model("72", "MC408LL/A", "2.53", "4", "", "1000", "5400", "10.6"); cmps[cmps.length] = new Model("87", "MC375LL/A", "2.66", "4", "", "500", "5400", "10.6.3"); cmps[cmps.length] = new Model("86", "MC374LL/A", "2.40", "4", "", "250", "5400", "10.6.3"); cmps[cmps.length] = new Model("85", "MC024LL/A", "2.53", "4", "", "500", "5400", "10.6.3"); cmps[cmps.length] = new Model("84", "MC373LL/A", "2.66", "4", "", "500", "5400", "10.6.3"); cmps[cmps.length] = new Model("83", "MC372LL/A", "2.53", "4", "", "500", "5400", "10.6.3"); cmps[cmps.length] = new Model("82", "MC371LL/A", "2.40", "4", "", "320", "5400", "10.6.3"); cmps[cmps.length] = new Model("107", "MC516H/A", "2.40", "2", "", "250", "5400", "10.6"); cmps[cmps.length] = new Model("95", "MC511LL/A", "2.80", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("94", "MC510LL/A", "3.20", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("93", "MC509LL/A", "3.20", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("92", "MC508LL/A", "3.06", "4", "", "500", "7200", "10.6"); cmps[cmps.length] = new Model("91", "MC438LL/A", "2.40", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("90", "MC270LL/A", "2.40", "2", "", "320", "7200", "10.6"); cmps[cmps.length] = new Model("89", "MC561LL/A", "2.40", "6", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("88", "MC250LL/A)", "2.80", "3", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("106", "MC506LL/A", "1.40", "2", "", "128", "0", "10.6"); cmps[cmps.length] = new Model("105", "MC505LL/A", "1.40", "2", "", "64", "0", "10.6"); cmps[cmps.length] = new Model("104", "MC725LL/A", "2.20", "4", "", "750", "5400", "10.6"); cmps[cmps.length] = new Model("103", "MC723LL/A", "2.20", "4", "", "750", "5400", "10.6"); cmps[cmps.length] = new Model("102", "MC721LL/A", "2.00", "4", "", "500", "5400", "10.6"); cmps[cmps.length] = new Model("101", "MC724LL/A", "2.70", "4", "", "500", "5400", "10.6"); cmps[cmps.length] = new Model("100", "MC700LL/A", "2.30", "4", "", "320", "5400", "10.6"); cmps[cmps.length] = new Model("99", "MC814H/A", "3.10", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("98", "MC813H/A", "2.70", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("97", "MC812H/A", "2.70", "4", "", "1000", "7200", "10.6"); cmps[cmps.length] = new Model("96", "MC309H/A", "2.50", "4", "", "500", "7200", "10.6"); cmps[cmps.length] = new Model("114", "MC936LL/A", "2.00", "4", "", "1000", "7200", "10.7"); cmps[cmps.length] = new Model("113", "MC816LL/A", "2.50", "4", "", "500", "5400", "10.7"); cmps[cmps.length] = new Model("112", "MC815LL/A", "2.30", "2", "", "500", "5400", "10.7"); cmps[cmps.length] = new Model("111", "MC966LL/A", "1.70", "4", "", "256", "0", "10.7"); cmps[cmps.length] = new Model("110", "MC965LL/A", "1.70", "4", "", "128", "0", "10.7"); cmps[cmps.length] = new Model("109", "MC969H/A", "1.60", "4", "", "128", "0", "10.7"); cmps[cmps.length] = new Model("108", "MC968H/A", "1.60", "2", "", "64", "0", "10.7"); cmps[cmps.length] = new Model("119", "MD311LL/A", "2.40", "4", "", "750", "5400", "10.7"); cmps[cmps.length] = new Model("118", "MD322LL/A", "2.40", "4", "", "750", "5400", "10.7"); cmps[cmps.length] = new Model("117", "MD318LL/A", "2.20", "4", "", "500", "5400", "10.7"); cmps[cmps.length] = new Model("116", "MD314LL/A", "2.80", "4", "", "750", "5400", "10.7"); cmps[cmps.length] = new Model("115", "MD313LL/A", "2.40", "4", "", "500", "5400", "10.7"); cmps[cmps.length] = new Model("128", "MC975LL/A", "2.30", "8", "", "256", "0", "10.8"); cmps[cmps.length] = new Model("127", "MD104LL/A", "2.60", "4", "", "750", "5400", "10.8"); cmps[cmps.length] = new Model("126", "MD103LL/A", "2.30", "", "", "500", "5400", "10.8"); cmps[cmps.length] = new Model("125", "MD102LL/A", "2.90", "4", "", "750", "5400", "10.8"); cmps[cmps.length] = new Model("124", "MD101LL/A", "2.50", "4", "", "500", "5400", "10.8"); cmps[cmps.length] = new Model("123", "MD232LL/A", "1.80", "4", "", "256", "0", "10.8"); cmps[cmps.length] = new Model("122", "MD231LL/A", "1.80", "", "", "128", "0", "10.8"); cmps[cmps.length] = new Model("121", "MD224LL/A", "1.70", "4", "", "128", "0", "10.8"); cmps[cmps.length] = new Model("120", "MD223LL/A", "1.70", "4", "", "64", "0", "10.8"); cmps[cmps.length] = new Model("129", "", "2.60", "8", "", "512", "0", "10.8"); var myModels = new Models(cmps);