/*************************************************************************
*                                                                        *
*  Program Name :  gsi_item.js                                          *
*          Type :  Javascript program                                    *
*     File Type :  javascript                                            *
*      Location :  /www/golfsmith                                        *
*    Created By :  Venkat Kondapalli                                     *
*    Modified By:  Mohan Kulkarni                                        *
*  Created Date :  03/08/2005                                            *
*   Update Date :  11/10/2005                                            *
*               :  Copyright 2005-20**  Golfsmith International          *
*------------------------------------------------------------------------*
* Script to display Item attributes, options and to set hidden variables *
* This Javascript is cloned from gsi_item.js used in ppage               *
*------------------------------------------------------------------------*
*   Called From :  quickbuy_select program                               *
*                  ppage                                                 *
*                                                                        *
*       Includes:  None                                                  *
*                                                                        *
* Functions Created: init_display                                        *
*                    display_max_proce                                   *
*                    set_select                                          *
*                    set_intial_values                                   *
*                    reset_first                                         *
*                    display_gift_tag_entry                              *
*                    display_service_option                              *
*                    display_next_select                                 *
*                    display_sku_price                                   *
*                    display_sku_fields                                  *
*                    check_value_used                                    *
*                    get_start_index                                     *
*                    abs_sel_index                                       *
*                    get_end_index                                       *
*                    get_attr_increment                                  *
*                    get_element_name                                    *
*                    display_text                                        *
*                    set_hidden                                          *
*                    validate_qty                                        *
*                    validate_per_optoins                                *
*                    qb_add_to_cart                                      *
*                    load_product_info                                   *
*                    trim                                                *
*                                                                        *
* Database Objects Used : None                                           *
*                                                                        *
* History:                                                               *
* --------                                                               *
* Date       By                  Comments                                * 
* ---------- ---------------     --------------------                    *
* 03/08/2005 Venkat Kondapalli   Initial Version                         *
* 11/10/2005 Mohan Kulkarni      Ppage grouping                          *
*                                                                        *
**************************************************************************/

function chgMainImg(new_src){
    
    document.getElementById('scene7_img_div').innerHTML = "<img src='" + new_src + "'>";
    
         
}

function change_image_s7(element_name, change_seg_value){
   var index=eval("document." + form_name + "." + element_name + ".selectedIndex");
   var full_name=eval("document." +  form_name + "." + element_name+ ".options["+index+"].value");
   var prod_list = eval('product_list[1]["seg' +change_seg_value+'_list"]');
   var count = prod_list.length;
    for(var j=0; j<count;j++){
        if (prod_list[j]==full_name){
        var value= eval('product_list[1]["seg'+change_seg_value+'_val"][j]');
        value=value.replace("/","~");
        }
    }
   
   var count = product_list[1]['avl_images'].length;
        for(var i=0; i<count; i++){
           var image=product_list[1]['avl_images'][i];
            if(image.search(value) > 0){
              img_path='https://a248.e.akamai.net/f/248/9086/10h/origin-d3.scene7.com/is/image/Golfsmith/' + image+'?hei=405&wid=375&op_sharpen=1';
            chgMainImg(img_path)
                    
            }
        } 
}


function set_drop(change_seg_value, sm_img, change_seg_number){
  var brokenstring=sm_img.split("_"); //Split image name to get segment value that the drop down needs to be
  var passed_value=brokenstring[change_seg_number];    
  if(change_seg_value != '') {
    var dropdown=eval("document." + form_name + "." + change_seg_value);
    count= dropdown.length;
    for(r=0; r<count; r++){ //cycle through drop down values
      var full_name=eval("document." + form_name + "." + change_seg_value+ ".options["+r+"].value");
      var prod_list = eval('product_list[1]["seg' +change_seg_number+'_list"]');   
      var count2 = prod_list.length;
      for(var j=0; j<count2;j++){
        //compare dropdown lables to prod list to obtain values from drop down
        if (prod_list[j]==full_name){         
          //compare dropdown values to value passed if they match use the iteration as an index value to set the drop down to.
          var value= eval('product_list[1]["seg'+change_seg_number+'_val"][j]'); 
          if(value==passed_value){ 
            var change= eval('document.' + form_name + '.' + change_seg_value); 
            change.selectedIndex=r;
          }          
        }
      }
    } //end dropdown lable cycle
  }
}  //end set_drop function


function choose_product( product_number, select_number, form_name) {

/*  var logo_apparel_obj = eval("document." + form_name + ".logo_apparel");
  if (logo_apparel_obj != null){
    var logo_apparel = logo_apparel_obj.value;
  }
*/
  var formobj = eval("document." + form_name);
  bSubmit = 'N';
  if ((group_item == 'N') && (form_name == 'product_form') && (product_list[product_number]['group_item'] == 'Y')){
    if (formobj != null){
      if (formobj.action.indexOf('add_to_cart.php') >= 0){
         formobj.action = formobj.action.replace('add_to_cart.php', 'products.php');
         set_hidden("stynum", product_list[product_number]['stynum']);
         group_item = 'Y';
         bSubmit = 'Y';
      }
    }
  }

  load_product_info( product_number);
  display_next_select(product_number,select_number);

  build_sku(product_number, select_number);
  update_tabs();
  if (bSubmit == 'Y'){
    for (var i = select_number; i <= 3;i++){
      setcurrentselection(product_number, (i+1));
    }
    formobj.submit();
  }
}

function setcurrentselection(sno, curr_idx){
  set_hidden("seg"+(curr_idx+2)+sno, "");
  set_hidden("seg"+(curr_idx+2), "");
  var curr_sel = get_element_name(eval("document." + form_name), attr_types[curr_idx]+sno) ;
  if (curr_sel != null){
    var selected_idx = eval("document." + form_name + "." + attr_types[curr_idx]+sno + ".selectedIndex") ;
    if (selected_idx != null){
       var selected_val = curr_sel.options[selected_idx].value ;
       if (selected_val == "NoSelection"){
       	  selected_val = "";
       }
       set_hidden("seg"+(curr_idx+2)+sno, selected_val);
       set_hidden("seg"+(curr_idx+2), selected_val);
    }
  }
} 

// function to display initial values on the quickbuy_select screen
function init_display(item_cnt) {

  var logo_flag_obj = eval("document." + form_name + ".logo_item");
  if (logo_flag_obj != null){
    var logo_flag = logo_flag_obj.value;
  }
  var logo_apparel_obj = eval("document." + form_name + ".logo_apparel");
  if (logo_apparel_obj != null){
    var logo_apparel = logo_apparel_obj.value;
  }

  for (var sno = 1 ; sno <= item_cnt; sno++) {

    load_product_info(sno);

    // skipping wrong Items line
    aa=sku_prices[0];
    if (aa == '' )
       continue;

    var segments_cnt = attr_values_count.length;
    if (logo_flag == 'Y')
    {
      for (var i = 1 ; i < segments_cnt - 1; i++) 
      {
        var next_sel = get_element_name(eval("document." + form_name), attr_types[i]+sno) ;
        next_sel.options.length = 0 ;
        add_option(next_sel, "NoSelection", attr_names[i]);
      }
    }
    else
    {
      for (var i = 1 ; i < segments_cnt; i++) 
      {
        var next_sel = get_element_name(eval("document." + form_name), attr_types[i]+sno) ;
        next_sel.options.length = 0 ;
        add_option(next_sel, "NoSelection", attr_names[i]);
      }
    }

    if (product_list[sno]['group_item'] != 'Y'){
      if (segments_cnt >= 1){
        set_hidden("iid"+sno, "");
        set_hidden("iid", "");
        set_hidden("seg2"+sno, "");
        set_hidden("seg2", "");
        set_hidden("seg3"+sno, "");
        set_hidden("seg3", "");
        set_hidden("seg4"+sno, "");
        set_hidden("seg4", "");
        set_hidden("seg5"+sno, "");
        set_hidden("seg5", "");
      }
    }

    var seg2_cnt = attr_values_count[0] ;
    if (seg2_cnt == 1) {
      var curr_sel = get_element_name(eval("document." + form_name), attr_types[0]+sno) ;
      var seg_value = seg2_list[0] ;
      add_option(curr_sel, seg_value, seg_value);
      curr_sel.options[1].selected = true ;
      display_next_select(sno,0) ;
    } else {
      if (seg2_cnt > 1) {
        reset_first(sno) ;
      }
    }
    
    var frmobj = eval("document." + form_name);
    if (product_list[sno]['group_item'] == 'Y'){
      if (product_list.length > sno+1){
        grp_seg2 = product_list[sno+1]['group_segment2'];
        if (grp_seg2.length > 0){
      	  set_select(0, grp_seg2, sno);
        }
        grp_seg3 = product_list[sno+1]['group_segment3'];
        if (grp_seg3.length > 0){
    	  set_select(1, grp_seg3, sno);
        }
        grp_seg4 = product_list[sno+1]['group_segment4'];
        if (grp_seg4.length > 0){
    	  set_select(2, grp_seg4, sno);
        }
        grp_seg5 = product_list[sno+1]['group_segment5'];
        if (grp_seg5.length > 0){
    	  set_select(3, grp_seg5, sno);
        }
      }
    }
    
    var seg2obj = frmobj['seg2' + sno];
    if (seg2obj == null){
      seg2obj = frmobj['seg2'];
    }
    var seg2 = '';
    if (seg2obj != null){
      seg2 = seg2obj.value;
    } 
    var seg3obj = frmobj['seg3' + sno];
    if (seg3obj == null){
      seg3obj = frmobj['seg3'];
    }
    var seg3 = '';
    if (seg3obj != null){
      seg3 = seg3obj.value;
    }  

    var seg4obj = frmobj['seg4' + sno];
    if (seg4obj == null){
       seg4obj = frmobj['seg4'];
    }
    var seg4 = '';
    if (seg4obj != null){
      seg4 = seg4obj.value;
    }  

    var seg5obj = frmobj['seg5' + sno];
    if (seg5obj == null){
      seg5obj = frmobj['seg5'];
    }
    var seg5 = '';
    if (seg5obj != null){
  	  seg5 = seg5obj.value;
    }  
   
    if (seg2.length > 0) {
      set_select(0,seg2, sno);
    }
    
    if (seg3.length > 0) {
      set_select(1,seg3, sno);
    } 
    if (seg4.length > 0) {
      set_select(2,seg4, sno);
    }
    if (seg5.length > 0) {
      set_select(3,seg5, sno);
    } 
    set_initial_values (sno) ;
    display_max_price(sno) ;

    // if no segments, and show_price is 'N' display the link for show price
    if (segments_cnt == 0) {
      sku_prc  = sku_prices[0];
      if (sku_prc == 'N'){
        showprc_text = '<a href="javascript:display_sku_price(0)"><b>Click here to show price<b></a>';
        showprc_spacer_text = '&nbsp;';
        //display_text ("showprc", showprc_text) ;
        //display_text ("showprc_spacer", showprc_spacer_text) ;
      }
    }    
    
    // if we have multiple values for the "giftwrappable" option,
    // hide the giftwrap checkbox by default.  (This won't
    // affect the puring checkbox because of an evil hack.)
    if (sku_giftwrap.length > 1){
      display_service_option ('N',sno);
    }
  }

}  // function init_display
 

  function get_current_subtotal() {
    var curprice = parseFloat(eval("document." + form_name + ".price_value.value"));
    var qty = parseInt(eval("document." + form_name + ".qty.value"));
    var subtotal = '';

    var subtotal_field = document.getElementById('subTotal');
    var tax_ship_note = document.getElementById('tax_ship_note');

    if(subtotal_field) {
      if(!isNaN(curprice) && !isNaN(qty)) {
        subtotal = Math.round(qty * curprice * 100);
        subtotal = subtotal / 100;
        document.getElementById('total').value = '$' + subtotal.toFixed(2);
        subtotal_field.style.display = '';
        if(tax_ship_note) {
          tax_ship_note.innerHTML = '<p>&#8224; Excludes Taxes and Shipping Costs</p>';
        }
      } else { //hide subtotal
        subtotal_field.style.display = 'none';
        if(tax_ship_note) {
          tax_ship_note.innerHTML = '<p>&nbsp;</p>';
        }
      }
    }

  }
 
  function display_max_price(sno) {
    arr_idx  = sku_prices.length ;
    sku_prc_tmp = 0 ;
    no_prc      = 0 ;

    for (i=0; i<arr_idx; i++) {
      sku_prc          = sku_prices[i];
      sku_prc_dsp_tmp  = sku_prices[i] ;
      sku_prc_dsp2_tmp = sku_prices2[i] ;
      price_svg_tmp    = price_svg[i] ;

      if (sku_prc != 'N') {
        if (sku_prices[i].substring(0,1) == '') {
          sku_prices[i] = sku_prices[i].substring(1,sku_prices[i].length) ;
        } 
        if (sku_prices[i].substring(0,1) == '$') { 
          sku_prc_val = eval(sku_prices[i].substring(1,sku_prices[i].length)) ;
        } else {
          sku_prc_val = sku_prices[i] ; 
        }
        if ((sku_prc_val > sku_prc_tmp && sku_prc_val > 0) || sku_prc_tmp == 0) {
          sku_prc_tmp   = sku_prc_val ;
          sku_prc_dsp   = sku_prc_dsp_tmp ;
          orig_prc_dsp  = sku_prc_dsp2_tmp ;
          price_svg_dsp = price_svg_tmp ;
        }
      } else {
        no_prc = 1;
      }
    }

    //Price
    if (no_prc == 0) {
      new_text = '<span';
      if(price_svg_dsp != 0) {
        new_text = new_text + ' class="save"';
      }
      new_text = new_text + '>' + sku_prc_dsp ;
      
      if(site == 'CA'){
       new_text = new_text + ' CAD';
      }
      new_text = new_text + '</span>';
      display_text ("currentprice", sno, new_text) ;

      var price_value = parseFloat(sku_prc_dsp.substring(1));
      if(isNaN(price_value)) {
        price_value = '';
      }
      set_hidden('price_value', price_value);


      var qty_field = document.getElementById('qty');

      if(qty_field) {
        var qty = parseInt(document.getElementById('qty').value);
      } else {
        var qty = 1;
      }

      if(isNaN(qty)) {
        qty = 1;
      }

      var total_field = document.getElementById('total');
      if(total_field) {
        var subtotal = qty * parseFloat(sku_prc_dsp.substring(1));

        if(isNaN(subtotal)) {
          document.getElementById('subTotal').style.display = 'none'; 
          document.getElementById('tax_ship_note').innerHTML = '<p>&nbsp;</p>';
        } else {
          subtotal = Math.round(subtotal * 100);
          subtotal = subtotal / 100;
          document.getElementById('total').value = '$' + subtotal.toFixed(2);
        }
      }

      //Orig Price
      if (orig_prc_dsp != 0) {
        new_text = '<del> Was: $' + orig_prc_dsp ;
        if(site == 'CA'){
          new_text = new_text + ' CAD';
        }
       new_text = new_text + '</del>';
        display_text ("originalprice", sno, new_text) ;
      } else {
        display_text ("originalprice", sno, "") ;
      }
      // savings 
      if (price_svg_dsp != 0) {
        prcsvg = '<span class="save"> Save: ' + price_svg_dsp  ;
        if(site == 'CA'){
          prcsvg = prcsvg + ' CAD';
        }
          prcsvg = prcsvg + '</span>';
        display_text ("savingsprice", sno,prcsvg);
      } else {
        display_text ("savingsprice", sno,"");
      }
    } else {
      skuprc_msg = no_price_message ;
      new_text = '<span class="save">' + skuprc_msg + '</span>';
      display_text ("currentprice", sno, new_text) ;
      set_hidden('price_value', '');
      document.getElementById('subTotal').style.display = 'none';
      document.getElementById('tax_ship_note').innerHTML = '<p>&nbsp;</p>';
    }
  }
  
 

  function set_select (curr_idx, curr_val,sno) {
    // Change the selection in the current select
    var curr_sel = get_element_name(eval("document." + form_name), attr_types[curr_idx]+sno) ;
    curr_sel_length = curr_sel.options.length ;
    for (var i = 1 ; i < curr_sel_length; i++) {
      if (curr_sel.options[i].value == curr_val) {
        curr_sel.options[i].selected = true ;
        break;
      }
    }
  }  // display the next select values

  function set_initial_values (sno) {
    var items_cnt = item_ids.length;
    var valid_cnt = 0 ;
    for (var i = 0 ; i < items_cnt; i++) {
     if (item_ids[i] != 0) {
       display_sku_fields(i,sno) ;
       valid_cnt++;
     }
    }
    if (valid_cnt > 1) {
      new_text = '<strong>Shipping:</strong> Select options to see ship date' ; 
      display_text ("shippingDate", sno, new_text) ;
      set_hidden ("shippingDate",new_text);
      //dropship message
      display_text ("dropship_msg", sno,'');
      display_text ("shipping_qualifier", sno, '');
    }
  }


  function reset_first (sno) {
    var start_idx = 0 ;
    var end_idx   = 0 ;
    var attr_incr = 0 ;
    var next_idx  = 0 ;
    start_idx       = get_start_index(sno,-1) ;
    end_idx         = get_end_index() ;
    attr_incr       = get_attr_increment() ;
    var display_cnt = 0 ;
    var curr_sel = get_element_name(eval("document." + form_name), attr_types[0]+sno) ;
    curr_sel.options.length = 0 ;
    var seg_idx  = 2 ;

    arr_length  = eval("seg" + seg_idx + "_list.length") ;

    for (var i = 0 ; i < arr_length; i++) {
      var seg_value = eval("seg" + seg_idx + "_list[" + i + "]") ;
      var attr_value_found = 0 ;
      attr_value_found = check_value_used(start_idx, attr_incr) ;
      start_idx += attr_incr ;
      if (attr_value_found == 1) {
        if (display_cnt == 0) {
          add_option(curr_sel, "NoSelection", attr_names[seg_idx - 2]);
        }
        add_option(curr_sel, seg_value, seg_value);
        display_cnt++;
      }
    } // for loop
    if (display_cnt == 1) {
      // select the only option displayed and go to the next dropdown
      curr_sel.options[1].selected = true ;
      display_next_select(sno,next_idx) ;
    } // only one option in the drop down
  } // reset_first

  function display_gift_tag_entry (available) {
    try 
    {

      var container = document.getElementById('spnGiftWrap');

      if (available)
        container.style.display = 'block';
      else
        container.style.display = 'none';

      var divISP = document.getElementById('divISP');

      if (divISP.style.display == 'none')
        divISP.style.display = 'block';
      else
        divISP.style.display = 'none';

    } 
    catch (e) 
    { 
      //alert(e); 
    }
  }

  function display_service_option (service_available,sno) {

    // GIFTWRAP
    
    var setContainerTo = function (containerName, service_available, sno) {

      try {
        // Try to get a reference to the possibly non-existent <tr> in question
        //var serviceContainer = document.getElementById ('serviceContainer+sno);
        var serviceContainer = document.getElementById (containerName+sno);

        if (!serviceContainer) {
          serviceContainer = document.getElementById('serviceContainer');
        }

        // if we've got something, then try to set its display value.
        if ( typeof ( serviceContainer ) != 'undefined') {

          // First, let's make sure we have the original style.
          // This way, if the serviceContainer is displayed by default...
          // we don't ever hide it.
          if (typeof (original_style) == 'undefined') { 
            original_style = new Object();
          }

          if (typeof (original_style[sno]) == 'undefined') { 
            original_style[sno] = serviceContainer.style.display;
          }

          serviceContainer.style.display = (service_available == 'Y' ? 'block' : original_style[sno]);

          for (var child in serviceContainer.childNodes) { 
            if (serviceContainer.childNodes[child].style && serviceContainer.childNotes[child].style.display) { 
              serviceContainer.childNodes[child].style.display = (service_available == 'Y' ? 'block' : original_style);
            }
          }
        }

      } catch (e) { 
        /* pass */ 
      }
    }
    setContainerTo('headerContainer', service_available, sno);
    setContainerTo('serviceContainer', service_available, sno);

  }

  function display_next_select(sno,curr_idx) {

    if(attr_types[curr_idx]) {
      var selected_idx = eval("document." + form_name + "." + attr_types[curr_idx]+sno + ".selectedIndex") ;
      var curr_sel = get_element_name(eval("document." + form_name), attr_types[curr_idx]+sno) ;
      var selected_val = curr_sel.options[selected_idx].value ;
      set_hidden("seg"+(curr_idx+2)+sno, selected_val);
      set_hidden("seg"+(curr_idx+2), selected_val);

      var giftval = get_element_name(eval("document." + form_name),'giftbox'+sno);

      var start_idx = 0 ;
      var end_idx   = 0 ;
      var attr_incr = 0 ;
      var next_idx = curr_idx + 1 ;
      var segments_cnt = attr_values_count.length;

      start_idx       = get_start_index(sno,curr_idx) ;
      end_idx         = get_end_index() ;
      attr_incr       = get_attr_increment() ;
      var display_cnt = 0 ;

      showprc_text = '';
      showprc_spacer_text = '';

      new_text = '<strong>Shipping:</strong> Select options to see ship date'; 
      display_text ("shippingDate", sno, new_text); // Not required for qb
      set_hidden ("atp_msg",new_text);    
      //dropship message
      display_text ("dropship_msg", sno,'');
      display_text ("shipping_qualifier", sno, '');

      var logo_flag_obj = eval("document." + form_name + ".logo_item");
      if (logo_flag_obj != null){
        var logo_flag = logo_flag_obj.value;
      }

      if (logo_flag == 'Y'){
        segments_cnt = segments_cnt - 1;
      } else {
        segments_cnt = segments_cnt;
      }

      if (next_idx < segments_cnt) {
        set_hidden("iid", "");
        set_hidden("iid"+sno, "");
        set_hidden("sku"+sno, "");
        if (giftval != null)
          giftval.checked=false; 

        // reset all dropdowns after this
        for (var i = curr_idx+1 ; i < segments_cnt; i++) {
          set_hidden("seg"+(i+2)+sno, "");
          set_hidden("seg"+(i+2), "");
          var sel_name = get_element_name(eval("document." + form_name), attr_types[i]+sno) ;
          sel_name.options.length = 0 ;
          add_option(sel_name, "NoSelection", attr_names[i]);
        }

        if (selected_idx == 0) {
          return ;
        }
      
        var seg_idx  = curr_idx + 3 ;
        var next_sel = get_element_name(eval("document." + form_name), attr_types[next_idx]+sno) ;
        next_sel.options.length = 0 ;

        arr_length  = eval("seg" + seg_idx + "_list.length") ;

        for (var i = 0 ; i < arr_length; i++) {
          var seg_value = eval("seg" + seg_idx + "_list[" + i + "]") ;
          var attr_value_found = 0 ;
        
          attr_value_found = check_value_used(start_idx, attr_incr) ;
          start_idx += attr_incr ;

          if (attr_value_found == 1) {

            if (display_cnt == 0) {
              add_option(next_sel, "NoSelection", attr_names[curr_idx + 1]);
            }

            add_option(next_sel, seg_value, seg_value);

            display_cnt++;
          }
        } // for loop
        if (display_cnt == 1) {
          // select the only option displayed and go to the next dropdown
          next_sel.options[1].selected = true ;
          display_next_select(sno,next_idx) ;
        } // only one option in the drop down
      } else {
        if (selected_idx == 0) {
          set_hidden("seg"+(next_idx+1)+sno, "");
          set_hidden("seg"+(next_idx+1), "");
          set_hidden("iid", "");
          set_hidden("iid"+sno, "");
          set_hidden("sku"+sno, "");
          if (giftval != null)
            giftval.checked=false; 
        } else {
          if (item_ids[start_idx] > 0) {
            if (item_ids[start_idx] == 1){
              if ((group_item == 'Y') && (form_name == 'ppage_form')){
                for (var i=3; i <= 5; i++){
              	  if (i+curr_idx <= 5){
 	                set_hidden("seg"+(i+curr_idx)+sno, "");
	                set_hidden("seg"+(i+curr_idx), "");
                  }
                }
                set_hidden("stynum", sku_numbers[start_idx]);
                var objfrm = eval("document." + form_name);

                if (objfrm != null){
                  objfrm.submit();
                }
              }
            }        	
            sku_prc  = sku_prices[start_idx];
            if (sku_prc == 'N'){
               showprc_text = '<span class="PDprice">' + '<a href="javascript:display_sku_price(' + start_idx + ')"><b>Click here to show price<b></a>' + '</span>';
               showprc_spacer_text = '&nbsp;';
            }
            if (giftval != null)
              giftval.checked=false; 
            set_hidden("iid", item_ids[start_idx]);
            set_hidden("iid"+sno, item_ids[start_idx]);
            set_hidden("sku"+sno, sku_numbers[start_idx]);
            display_sku_fields(start_idx,sno) ;
          } 
        }
      }
    }
  }
  function display_sku_price(arr_idx){
     if (arr_idx >= 0){
       sku_prc  = act_sku_prices[arr_idx];
       skuprc_msg = sku_prc ;
       new_text = '<span>' + skuprc_msg + '</span>';
       display_text ("currentprice", sno, new_text) ;

       var price_value = parseFloat(skuprc_msg.substring(1));
       if(isNaN(price_value)) {
         price_value = '';
       }
       set_hidden('price_value', price_value);

       var qty = parseInt(document.getElementById('qty').value);

       if(isNaN(qty)) {
         qty = 1;
       }

       var subtotal = qty * parseFloat(skuprc_msg.substring(1));

       if(isNaN(subtotal)) {
         document.getElementById('subTotal').style.display = 'none';
       } else {
         subtotal = Math.round(subtotal * 100);
         subtotal = subtotal / 100;
         document.getElementById('total').value = '$' + subtotal.toFixed(2);
       }

     }
  }

  function display_sku_fields(arr_idx,sno) {
    var atp_text = "";
    if (arr_idx >= 0) {
      // Original Price
      if (sku_prices2[arr_idx] != 0) {
        orig_prc = sku_prices2[arr_idx];
        new_text = '<del>Was: $' + sku_prices2[arr_idx] ;
        if(site == 'CA'){
          new_text = new_text + ' CAD';
        }
       new_text = new_text + '</del>';
        display_text ("originalprice", sno, new_text) ;
      } else {
        display_text ("originalprice", sno, "") ;
      }

      // Price
      sku_prc  = sku_prices[arr_idx];
      if (sku_prc != 'N'){
        skuprc_msg = sku_prc ;
        new_text = '<span';
        if(price_svg[arr_idx] != 0) {
          new_text = new_text + ' class="save"';
        }
        new_text = new_text + '>' + skuprc_msg ;
        if(site == 'CA'){
          new_text = new_text + ' CAD';
        }
        new_text = new_text + '</span>';
      } else {
      	skuprc_msg = no_price_message ;
        new_text = "<span";
        //class is different if there are savings
        if(price_svg[arr_idx] != 0) {
          new_text = new_text + ' class="save"';
        }
      	new_text = new_text + '>' + skuprc_msg + '</span>';
      }
      display_text ("currentprice", sno, new_text) ;
      var price_value = parseFloat(skuprc_msg.substring(1));
      if(isNaN(price_value)) {
        price_value = '';
      }
      set_hidden('price_value', price_value);

      var qty_field = document.getElementById('qty');

      if(qty_field) {
        var qty = parseInt(qty_field.value);
      } else {
        var qty = 1;
      }

      if(isNaN(qty)) {
        qty = 1;
      }

      var total_field = document.getElementById('total');

      if(total_field) {
        var subtotal = qty * parseFloat(skuprc_msg.substring(1));

        if(isNaN(subtotal)) {
          document.getElementById('subTotal').style.display = 'none';
        } else {
          subtotal = Math.round(subtotal * 100);
          subtotal = subtotal / 100;
          total_field.value = '$' + subtotal.toFixed(2);
        }
      }

      // savings 
      if (price_svg[arr_idx] != 0) {
        prcsvg = '<span class="save"> Save: ' + price_svg[arr_idx]  ;
        if(site == 'CA'){
          prcsvg = prcsvg + ' CAD';
        }
          prcsvg = prcsvg + '</span>';
        display_text ("savingsprice", sno,prcsvg);
      } else {
        display_text ("savingsprice", sno,"");
      }

      // ATP
      max_order_qty = 99999;
      switch(sku_atp[arr_idx]){
         case "AVL":
           //new_text = atp_message ;
           new_text = "<strong>Shipping:</strong> Today, if ordered before 9am CST";
           break;
         case "LQ":
           new_text = "25 or more available"; /* "Limited Quantities" */          
           break;
         default:
           if (sku_atp[arr_idx] != null){
             if (sku_atp[arr_idx].substring(0,1) == 'Q'){
               qty = sku_atp[arr_idx].substring(1,5) ;
               new_text = "Only " + qty + " left!" ;
               max_order_qty = parseInt(qty);
             } else {
                new_text = "<strong>Shipping:</strong> " + sku_atp[arr_idx] ;
             }
           }
           break;
      }
      atp_text = new_text;
      display_text("shippingDate", sno, new_text) ;
      set_hidden('atp_msg', sku_atp[arr_idx]);


      // dropship 
      //removed dropship message AR 03/16/2007
      display_text ("dropship_msg", sno,"");

    }
    display_service_option (sku_giftwrap[arr_idx],sno);
    
  } // display_sku_fields

  function check_value_used(start_idx, attr_incr) {
    var record_found = 0;
    for (var i = start_idx ; i < start_idx + attr_incr; i++) {
     if (item_ids[i] != 0) {
       record_found = 1;
       break ;
     }
    } // for loop 
    return(record_found) ;
  }

  function get_start_index(sno,curr_idx) {
    var start_idx    = 0 ;
    var end_idx      = 0 ;
    var tmp_attr_inc = 0 ;
    var seg2_sel    = 0 ;
    var seg3_sel    = 0 ;
    var seg4_sel    = 0 ;
    var seg2_cnt    = 1 ;
    var seg3_cnt    = 1 ;
    var seg4_cnt    = 1 ;
    var seg5_cnt    = 1 ;

    var segments_cnt = attr_values_count.length;

    for (var i = 0 ; i < segments_cnt; i++) {
      if (i == 0) {
        seg2_cnt = attr_values_count[i] ;
      }
      if (i == 1) {
        seg3_cnt = attr_values_count[i] ;
      }
      if (i == 2) {
        seg4_cnt = attr_values_count[i] ;
      }
      if (i == 3) {
        seg5_cnt = attr_values_count[i] ;
      }
    }

    if (curr_idx == -1) {
      start_idx = 0 ;
      end_idx   = (seg2_cnt * seg3_cnt * seg4_cnt * seg5_cnt) - 1 ;
      tmp_attr_inc = seg3_cnt * seg4_cnt * seg5_cnt ;
    }
    if (curr_idx == 0) {
      seg2_sel  = abs_sel_index(sno,0) ;
      start_idx = (seg2_sel - 1) * seg3_cnt * seg4_cnt * seg5_cnt ;
      end_idx   = (seg2_sel * seg3_cnt * seg4_cnt * seg5_cnt) - 1 ;
      tmp_attr_inc = seg4_cnt * seg5_cnt ;
    }
    if (curr_idx == 1) {
      seg2_sel = abs_sel_index(sno,0) ;
      seg3_sel = abs_sel_index(sno,1) ;
      start_idx = (seg2_sel - 1) * seg3_cnt * seg4_cnt * seg5_cnt ;
      start_idx += (seg3_sel - 1) * seg4_cnt * seg5_cnt ;
      end_idx   = (seg2_sel * seg3_cnt * seg4_cnt * seg5_cnt) - 1 ;
      end_idx   -= (seg3_cnt - seg3_sel) * seg4_cnt * seg5_cnt ;
      tmp_attr_inc = seg5_cnt ;
    }
    if (curr_idx == 2) {
      seg2_sel = abs_sel_index(sno,0) ;
      seg3_sel = abs_sel_index(sno,1) ;
      seg4_sel = abs_sel_index(sno,2) ;
      start_idx = (seg2_sel - 1) * seg3_cnt * seg4_cnt * seg5_cnt ;
      start_idx += (seg3_sel - 1) * seg4_cnt * seg5_cnt ;
      start_idx += (seg4_sel - 1) * seg5_cnt ;
      end_idx   = (seg2_sel * seg3_cnt * seg4_cnt * seg5_cnt) - 1 ;
      end_idx   -= (seg3_cnt - seg3_sel) * seg4_cnt * seg5_cnt ;
      end_idx   -= (seg4_cnt - seg4_sel) * seg5_cnt ;
      tmp_attr_inc = 1 ;
    }
    if (curr_idx == 3) {
      seg2_sel = abs_sel_index(sno,0) ;
      seg3_sel = abs_sel_index(sno,1) ;
      seg4_sel = abs_sel_index(sno,2) ;
      seg5_sel = abs_sel_index(sno,3) ;
      start_idx = (seg2_sel - 1) * seg3_cnt * seg4_cnt * seg5_cnt ;
      start_idx += (seg3_sel - 1) * seg4_cnt * seg5_cnt ;
      start_idx += (seg4_sel - 1) * seg5_cnt ;
      start_idx += (seg5_sel - 1) ;
      end_idx   = start_idx ;
      tmp_attr_inc = 1 ;
    }

    end_pos        = end_idx ;
    attr_increment = tmp_attr_inc ;
    return(start_idx) ;
  }

  function abs_sel_index (sno,idx) {
    var selected_idx = eval("document." + form_name + "." + attr_types[idx]+sno + ".selectedIndex") ;
    var curr_sel = get_element_name(eval("document." + form_name), attr_types[idx]+sno) ;
    var selected_val = curr_sel.options[selected_idx].value ;
    var return_val = 0;

    seg_idx = idx + 2 ;
    arr_length  = eval("seg" + seg_idx + "_list.length") ;
    

    for (var i = 0 ; i < arr_length; i++) {
      var seg_value = eval("seg" + seg_idx + "_list[" + i + "]") ;
      if (seg_value == selected_val) {
        return_val = i + 1;
        break;
      }
    }
    return(return_val);
  }

  function get_end_index() {
    var end_idx = end_pos ;
    return(end_idx) ;
  }

  function get_attr_increment() {
    var tmp_attr_inc = attr_increment ;
    return(tmp_attr_inc) ;
  }

  function get_element_name(form,name) {
    var rtn_value;
    var ind = 0;
    var len = form.elements.length;
    var found = false;
    var eol;

    do {
      eol = ind==len;
      if (!eol) {
        rtn_value = form.elements[ind++];
        found = rtn_value.name==name;
        eol = found;
      }
    } while (!eol)

    if (!found)
      rtn_value = null;
    return (rtn_value);
  }

  function display_text (id, sno, text) {
//  	var v_group = product_list[sno]['group_item'];
//  	if (v_group == null){
//  		v_group = 'N';
//  	}
  	if (group_item == "Y"){
      if (id == "shippingDate"){
          return;
      }
      if (id == "currentprice"){
    	 v_group_price_str = product_list[sno]['group_price_str'];
    	 if (v_group_price_str != null){
           text = '<span class="now_ppage">' + v_group_price_str + '</span>';
    	 } else {
           text = '';
    	 }
      }
      if (id == "originalprice"){
          text ='';
      }
      if (id == "savingsprice"){
         text ='';
      }
    }  	

    if (form_name == 'qb_select_form'){
    	if ((id == 'shippingDate') || (id == 'savingsprice') || (id == 'originalprice')){
    		return;
    	}
    	else{
      	   id = id + sno;
    	}
    }
    if (document.getElementById) { // IE5 and NS6
      divid = document.getElementById(id) ;
      if (divid != null){
        divid.innerHTML = text ;
      }
    } else { // NS4+
      var layer = document.layers["l1_"+id].document.layers["l2_"+id];
      if (layer != null){
        layer.document.open("text/html");
        layer.document.writeln(text);
        layer.document.close();
      }
    }
  }

  function set_hidden (name, value) {
    var fld_name = get_element_name(eval("document." + form_name), name) ;
    if (fld_name != null){
      fld_name.value = value ;
    }
  }

  function validate_qty(myitem,stynum) {
    process = 0 ;
    if (process == 0) {
      var valid = "0123456789";
      var ok = "yes";
      var temp;
      for (var i = 0; i < myitem.value.length; i++) {
        temp = "" + myitem.value.substring(i, i+1);
        if (valid.indexOf(temp) == "-1") ok = "no" ;
      }
      if (ok == "no") {
        alert("Please enter a valid quantity"+"\n Item Number : "+stynum);
        myitem.focus();
        myitem.select();
        process = 1 ;
      }
    }
    if ( (Number(myitem.value) < Number(min_order_qty) && (Number(myitem.value) != 0) )&& process == 0) {
      alert(" Please enter a quantity greater than or equal to " + min_order_qty+"\n Item Number : "+stynum) ;
      process = 1 ;
    }
    if (myitem.value == "" && process == 0) {
      alert("Please enter a quantity."+"\n Item Number : "+stynum) ;
      process = 1 ;
    }
    if (Number(myitem.value) > Number(max_order_qty) && process == 0) {
      alert("Please enter a quantity less than or equal to " + max_order_qty+"\n Item Number : "+stynum) ;
      process = 1 ;
    }
    if (process == 1) {
      return(false) ;
    } else {
      return(true) ;
    }
  }

  function validate_per_text(txt_obj){
    try{
      if (txt_obj!= null){
        var perRegEx = /^[0-9a-zA-Z &,.'\-]+$/;
        if(perRegEx.test(txt_obj.value)==false)  
        {
           return false;
        } 
      }
    }
    catch (e){
      return (false);
    }
    return (true);
  }

  function validate_per_options(){

    var per_item = eval("document." + form_name + ".per_item");
    if (per_item == null){  // not personalization item
       return (true);
    }
    var hc_obj = eval("document." + form_name + ".per_handicap_club");
    if (hc_obj != null) {
      if (hc_obj.selectedIndex == 0){
         alert('Please select Local Golfsmith Golf Club');
         return (false);
      }
    }
    var line_cnt = eval("document." + form_name + ".per_line_cnt");

    if (line_cnt == null)
       return (true);
    if ((line_cnt.value == '') || (line_cnt.value == 0))
       return (true);
    var bReturn = false;
    for (i=1; i<= line_cnt.value;i++){
       var line_obj = eval("document." + form_name + ".per_line_" + i);
       if (line_obj != null) {
          if (line_obj.value.replace(/ /g, '') != ''){
             bReturn = validate_per_text(line_obj);
             if (!bReturn){
               alert("Contains restricted characters. Only the following non-alphanumeric characters are allowed: \n& (ampersand), ' (apostrophe),  - (dash), . (period) and , (comma).");
               return bReturn;
             }
          }
       }
    }
    if (!bReturn){
      alert ('Please enter text for personalization');
    } else {
      bReturn = profanityFilter();
    }

    return bReturn;
  }

  function qb_add_to_cart(item_cnt)
  {
   for (var jj = 1 ; jj <= item_cnt; jj++) 
   {
       load_product_info(jj); 

    // skipping wrong Items line
    aa=sku_prices[0];
    if (aa == '' )
       continue;

       $retun =  add_to_cart(jj);
      if (!$retun)
      {
        return(false) ;
      }
   }
  }

  function add_to_cart(sno) {
//    var iid = document.qb_select_form['iid'+sno].value ;
//    var qty = trim(document.qb_select_form['qty'+sno].value) ;

    v_sno = sno;
    if (form_name == 'product_form'){
    	v_sno = '';
    	sno = product_list.length -1;
    }
    var frmobj = eval("document." + form_name);
    var stynum = frmobj['stynum'+v_sno].value ;
    var xref = frmobj['xref'+v_sno].value ;
    var seg2 = frmobj['seg2'+v_sno].value ;
    var seg3 = frmobj['seg3'+v_sno].value ;
    var seg4 = frmobj['seg4'+v_sno].value ;
    var seg5 = frmobj['seg5'+v_sno].value ;
    var iid = frmobj['iid'+v_sno].value ;
    var qty = frmobj['qty'+v_sno];
    if (iid == ''){
      iid=0;
    }

    if (iid > 0) {
      $ret = validate_per_options() ;
      if (!$ret)
        return(false) ;
      $ret = validate_qty(qty,stynum) ;
      if (!$ret)
        return(false) ;
    } else {

        var segments_cnt = attr_values_count.length;
        var msg_str = "" ;

        for (var i = 0; i < segments_cnt; i++) {
          var selected_idx = eval("document." + form_name + "." + attr_types[i]+sno + ".selectedIndex") ;
          if (selected_idx == 0) {
            msg_str = msg_str + " " + attr_types[i] ;
          }
        }

        if (group_item == 'Y'){
          alert("Please select " + msg_str);
        }
        else{
          alert("Please select " + msg_str+"\n Item Number : "+stynum);
        }
        return(false) ;
   } // all skus are not selected
   return(true);
}
function load_product_info( product_number) {
  // make sure we don't get an undefined error 
  if ( typeof( current_product) == 'undefined')
    current_product = -1;
     
  if (current_product != product_number) {
    // save the old object's current global data
    
    current_product = product_number;
    
    if ( typeof( product_list[product_number] != 'undefined')) {
      // load the new object's old global data
      start_idx = product_list[product_number]['start_idx'];
      end_idx = product_list[product_number]['end_idx'];
      attr_increment         = product_list[product_number]['attr_increment'];
      seg2_list              = product_list[product_number]['seg2_list'];
      seg3_list              = product_list[product_number]['seg3_list'];
      seg4_list              = product_list[product_number]['seg4_list'];
      seg5_list              = product_list[product_number]['seg5_list'];
      attr_values_count      = product_list[product_number]['attr_values_count'];
      sku_prices             = product_list[product_number]['sku_prices'];
      sku_prices2            = product_list[product_number]['sku_prices2'];
      act_sku_prices         = product_list[product_number]['act_sku_prices'];
      price_svg              = product_list[product_number]['price_svg'];
      item_ids               = product_list[product_number]['item_ids'];
      attr_names             = product_list[product_number]['attr_names'];
      attr_types             = product_list[product_number]['attr_types'];
      sku_atp                = product_list[product_number]['sku_atp'];
      sku_giftwrap           = product_list[product_number]['sku_giftwrap'];
      sku_numbers            = product_list[product_number]['sku_numbers'];
      atp_message            = product_list[product_number]['atp_message'];
      no_price_message       = product_list[product_number]['no_price_message'];
      min_order_qty          = product_list[product_number]['min_order_qty'];
      max_order_qty          = product_list[product_number]['max_order_qty'];
      sku_giftwrap           = product_list[product_number]['sku_giftwrap'];            
      lcode                  = product_list[product_number]['lcode'];
      group_price_str        = product_list[product_number]['group_price_str'];
      group_segment2         = product_list[product_number]['group_segment2'];
      group_segment3         = product_list[product_number]['group_segment3'];
      group_segment4         = product_list[product_number]['group_segment4'];
      group_segment5         = product_list[product_number]['group_segment5'];
      dropship               = product_list[product_number]['dropship'];
    }
  }
}

function trim(str) {
   return str.replace('/^\s*|\s*$/g',"");
}

function build_sku(product_number)
{

  var logo_apparel_obj = eval("document." + form_name + ".logo_apparel");
  if (logo_apparel_obj != null){
    var logo_apparel = logo_apparel_obj.value;
  }

  if (logo_apparel != 'Y'){ 

    sku = document.product_form.stynum.value + '-';
    var intControl = product_list[product_number]['attr_types'].length + 1;

    for (i = 2; i <= intControl; i++)
    {
      strValue = ''; 
      //we can safetly assume that control is always going to be a dropdown.
      eval("var control = document." + form_name + "." + product_list[product_number]['attr_types'][i-2] + product_number);
      strValue = control.options[control.selectedIndex].value;
      if (control.selectedIndex > 0)
      {
        eval("intListCount = product_list[" + product_number+ "]['seg" + i + "_list'].length");
        for (j = 0; j < intListCount; j++)
        {
          eval("strListVal = product_list[" + product_number + "]['seg" + i + "_list'][j]");
          if (strListVal == strValue)
          {
            eval("strSegValue = product_list[" + product_number + "]['seg" + i + "_val'][j]");
            sku += strSegValue + '-';
          }
        }
      }
    }
    document.product_form.sku.value = sku;
  }
}

function update_tabs()
{
  if (document.getElementById('hidIndSpecs') != null)
    chg_tab('specs');
}

function redirect_to_oem(base_url) {

  var dex = eval("document." + form_name + ".HAND1.value");
  dex = dex.toLowerCase();

  var url = base_url;

  if(dex != 'noselection') {
    url = url + '&dexterity=' + dex; 
  }


  location = url;

} 

function show_tooltip(message, obj)
{
  var divTooltip = document.getElementById('divTooltip');
  var intTop = 0;
  var intLeft = 10;

  if (divTooltip.style.display == 'none')
  {
    intLeft += obj.offsetWidth;

    if (obj.offsetParent)
    {
      intLeft += obj.offsetLeft;
      intTop += obj.offsetTop;

      while (obj = obj.offsetParent)
      {
        intLeft += obj.offsetLeft;
        intTop += obj.offsetTop;
      }
    }
    divTooltip.innerHTML = message;
    divTooltip.style.display = 'block';
    divTooltip.style.top = intTop;
    divTooltip.style.left = intLeft;
  }
}

function hide_tooltip(obj)
{
  var divTooltip = document.getElementById('divTooltip');

  if (divTooltip.style.display != 'none')
  {
    divTooltip.style.display = 'none';
  }  
}

function check_notes_length(max_length) {
 
  var notes_field = eval("document." + form_name + ".per_logo_name");
  var length = notes_field.value.length;
  if(length > max_length) {
    notes_field.value = notes_field.value.substring(0, max_length);
  }
}
