$(document).ready(
function()
{
  $('.supercheck').change(
  function A1()
  {
    //alert( 'supercheck change' ) ;
    var name = $(this).attr('name') ;
    var id = $(this).attr('id') ;
    var divA = "#divA" + name.substr(6) ;
    var divB = "#divB" + name.substr(6) ;

    if ( $( '#' + id + ':checked' ).val() )
    {
      $( divA ).css( 'visibility', 'visible' ) ;
      $( divB ).css( 'visibility', 'hidden' ) ;
    }
    else
    {      $( divA ).css( 'visibility', 'hidden' ) ;
      $( divB ).css( 'visibility', 'visible' ) ;
    }

    calc_price() ;
  } ) ;


  $('.superradio').change(
  function()
  {    //alert( 'superradio change' ) ;

    var control_name = $(this).attr('name') ;
    var divA_name = "#divA" + $(this).val() ;
    var divB_name = "#divB" + $(this).val() ;
    var divC_name = "#divC" + $(this).val() ;

    $("[name='" + control_name + "']").each(function ()
    {
      $( "#divA" + $(this).val() ).css( 'visibility', 'hidden' ) ;
      $( "#divB" + $(this).val() ).css( 'visibility', 'hidden' ) ;
      $( "#divC" + $(this).val() ).css( 'visibility', 'hidden' ) ;
    });

    $( divA_name ).css( 'visibility', 'visible' ) ;
    $( divB_name ).css( 'visibility', 'visible' ) ;
    $( divC_name ).css( 'visibility', 'visible' ) ;

    calc_price() ;
  } ) ;

  $('.superoption').change(
  function()
  {
    var control_name = $(this).attr('name') ;
    var divA_name = "#divA" + $(this).val() ;
    var divB_name = "#divB" + $(this).val() ;
    var divC_name = "#divC" + $(this).val() ;

    $("[name='" + control_name + "']").each(function ()
    {
      $( "#divA" + $(this).val() ).css( 'visibility', 'hidden' ) ;
      $( "#divB" + $(this).val() ).css( 'visibility', 'hidden' ) ;
      $( "#divC" + $(this).val() ).css( 'visibility', 'hidden' ) ;
    });

    $( divA_name ).css( 'visibility', 'visible' ) ;
    $( divB_name ).css( 'visibility', 'visible' ) ;
    $( divC_name ).css( 'visibility', 'visible' ) ;

    calc_price() ;
  } ) ;


  if ( typeof userboat != "undefined" )
  {
    restore_result( userboat ) ;
  }

  calc_price() ;


} ) ;




function calc_price()
{  var price=0 ;

  $("div[name*='divA']").each( function()
  {
    if ( $(this).css('visibility') == 'visible' )
    {
      price = price + parseFloat( $(this).text() ) ;
    }
  }) ;


  price = price + parseFloat( $('#divAPrice').text() ) ;
  $( '.divAtotal' ).html( '<b>' + price + '</b>' + '<br>' ) ;
  $( '#finalprice' ).val( price ) ;
  $( '#allselected' ).val( prepare_result() ) ;}


function prepare_result()
{
  var vals = '' ;
  var selected  ;

  $('.superradio').each( function()
  {
    selected = $(this).attr('checked') ;
    if ( selected )
    {      vals = vals + $(this).val() + ', ' ;
    }  }) ;

  $('.supercheck').each( function()
  {
    selected = $(this).attr('checked') ;
    if ( selected )
    {
      vals = vals + $(this).val() + ', ' ;
    }
  }) ;

  $('.superoption').each( function()
  {
    vals = vals + $(this).val() + ', ' ;
  }) ;

  //if ( vals.length > 0 ) vals = vals.substr( 0, vals.length - 2 ) ;

  return vals ;
}


function restore_result( vals )
{
  var vals_arr = vals.split(',') ;
  var vals2 = ',' + vals.replace( / /g, '' ) ;

  $('.superradio').each( function()
  {
    val = ',' + $(this).val() + ',' ;
    if ( vals2.indexOf( val ) >=0 )
    {      $(this).attr( 'checked', 'Y' ) ;      $(this).trigger('change') ;
    }
  }) ;

  $('.supercheck').each( function()
  {
    val = ',' + $(this).val() + ',' ;
    if ( vals2.indexOf( val ) >=0 )
    {
       $(this).attr( 'checked', 'Y' ) ;
    }
    else
    {       $(this).attr( 'checked', null ) ;
    }
    $(this).trigger('change') ;

  }) ;

  $('.superoption').each( function()
  {    name = $(this).attr('name') ;
    $("[name='" + name + "']").each( function()
    {      val = ',' + $(this).val() + ',' ;
      if ( vals2.indexOf( val ) >=0 )
      {
         $('#' + name).val( $(this).val() ) ;
      }
    }) ;
    $(this).trigger('change') ;
  }) ;

}
