// overwrite function we cannot access on product.js etc
// add cufon code to populate select so that font replacement is refreshed after a product option is selected, overwrites function in product.js
function populateSelect(d, b, f, a) {
   if(arySelected.length == 0) {
      for(var e = 1; e <= b; e++) {
         arySelected[e] = arrMatrix[f]["componentdetail" + e]}
      }
   for(var e = 1; e <= b; e++) {
      if(nsc("#seldim" + e).val()) {
         arySelected[e] = arrMatrix[nsc("#seldim" + e).val()]["componentdetail" + e]; 
         if(e == 2 && b == 3) {
            var m = document.getElementById("seldim" + (e - 1)).options[document.getElementById("seldim" + (e - 1)).selectedIndex].text; 
            var l = new Array(); 
            for(var c in arrMatrix) {
               if(arrMatrix[c]["componentdetail" + (e - 1)] == m) {
                  l[l.length] = arrMatrix[c]["componentdetail" + e]}
               }
            if(!strInArray(arySelected[e], l)) {
               arySelected[e] = l[0]}
            }
         }
      }
   var j = new Array(); 
   var n = new Array(); 
   var j = new Array(); 
   var h = 0; 
   for(var k = 1; k <= b; k++) {
      j[k] = new Array(); 
      n[k] = 0; 
      nsc("#seldim" + k).empty()}
   for(var c in arrMatrix) {
      var o = true; 
      for(var k = 1; k <= b; k++) {
         if(k > 1) {
            if(arrMatrix[c]["componentdetail" + (k - 1)] != arySelected[(k - 1)]) {
               o = false; 
               break}
            }
         if(o) {
            if(!strInArray(arrMatrix[c]["componentdetail" + k], j[k])) {
               var g = document.getElementById("seldim" + k); 
               g.options[n[k]] = new Option(sanitizeValue(arrMatrix[c]["componentdetail" + k]), c); 
               j[k][n[k]] = arrMatrix[c]["componentdetail" + k]; 
               if(arySelected[k] == arrMatrix[c]["componentdetail" + k]) {
                  g.selectedIndex = n[k]}
               if(n[k] == 0 && k == b) {
                  h = c}
               n[k]++}
            if(k == b) {
               nTmp = 1; 
               while(nTmp <= b) {
                  if(arrMatrix[c]["componentdetail" + nTmp] != arySelected[nTmp]) {
                     break}
                  else {
                     if(b == nTmp) {
                        h = c}
                     }
                  nTmp++}
               }
            }
         }
      }
   triggerProductChanged(h);
   Cufon.replace('p.text-related', {hover: false,fontFamily: 'TBC'});
   Cufon.replace('h1', {hover: false,fontFamily: 'TBC'});
}