function llhtrim(){
  var form = document.llhappl ;
  if ( parseInt( form.qty1.value ) == 0 ) {
    form.name1.value = "" ;
    form.age1.selectedIndex = -1 ;
    form.pck1.selectedIndex = -1 ;
    form.pcode1.value = "" ;
    form.period1.selectedIndex = -1 ;
    form.start1.value = "" ;
    form.end1.value = "" ;
    form.days1.selectedIndex = -1 ;
    form.qty1.value = "" ;
    form.rate1.value = "" ;
    form.total1.value = "" ;
    form.net1.value = "" ;
    form.com1.value = "" ;
  }
  if ( parseInt( form.qty2.value ) == 0 ) {
    form.name2.value = "" ;
    form.age2.selectedIndex = -1 ;
    form.pck2.selectedIndex = -1 ;
    form.pcode2.value = "" ;
    form.period2.selectedIndex = -1 ;
    form.start2.value = "" ;
    form.end2.value = "" ;
    form.days2.selectedIndex = -1 ;
    form.qty2.value = "" ;
    form.rate2.value = "" ;
    form.total2.value = "" ;
    form.net2.value = "" ;
    form.com2.value = "" ;
  }
  if ( parseInt( form.qty3.value ) == 0 ) {
    form.name3.value = "" ;
    form.age3.selectedIndex = -1 ;
    form.pck3.selectedIndex = -1 ;
    form.pcode3.value = "" ;
    form.period3.selectedIndex = -1 ;
    form.start3.value = "" ;
    form.end3.value = "" ;
    form.days3.selectedIndex = -1 ;
    form.qty3.value = "" ;
    form.rate3.value = "" ;
    form.total3.value = "" ;
    form.net3.value = "" ;
    form.com3.value = "" ;
  }
  if ( parseInt( form.qty4.value ) == 0 ) {
    form.name4.value = "" ;
    form.age4.selectedIndex = -1 ;
    form.pck4.selectedIndex = -1 ;
    form.pcode4.value = "" ;
    form.period4.selectedIndex = -1 ;
    form.start4.value = "" ;
    form.end4.value = "" ;
    form.days4.selectedIndex = -1 ;
    form.qty4.value = "" ;
    form.rate4.value = "" ;
    form.total4.value = "" ;
    form.net4.value = "" ;
    form.com4.value = "" ;
  }
  if ( parseInt( form.qty5.value ) == 0 ) {
    form.name5.value = "" ;
    form.age5.selectedIndex = -1 ;
    form.pck5.selectedIndex = -1 ;
    form.pcode5.value = "" ;
    form.period5.selectedIndex = -1 ;
    form.start5.value = "" ;
    form.end5.value = "" ;
    form.days5.selectedIndex = -1 ;
    form.qty5.value = "" ;
    form.rate5.value = "" ;
    form.total5.value = "" ;
    form.net5.value = "" ;
    form.com5.value = "" ;
  }
} 
var llhinvalid = 0 ;
function llherror( r ){
  if ( r == 1 ) alert( "Sorry, a 50% child discount is not offered during this period." ) ;
  else if ( r == 2 ) alert( "Indicate who is collecting each ticket package." ) ;
  else if ( r == 3 ) alert( "A valid start date must be given for each ticket package." ) ;
  llhinvalid = 1 ;
}
function llhend( s, d ){
  var sarr = s.split( "-" ) ;
  var dat = new Date( parseInt( sarr[2], 10 ), parseInt( sarr[1], 10)-1, parseInt( sarr[0], 10)) ;
  if ( parseInt( sarr[ 0 ], 10) == dat.getDate() && 
       parseInt( sarr[ 1 ], 10) == ( 1 + dat.getMonth()) && 
       parseInt( sarr[ 2 ], 10) == dat.getFullYear()) {
    dat.setDate( dat.getDate() + parseInt( d ) - 1 ) ;
    return (( dat.getDate() < 10 ? '0' : '' ) + dat.getDate() + '-' +
             ( dat.getMonth() < 9 ? '0' : '' ) + ( 1 + dat.getMonth()) + '-' +
               dat.getFullYear()) ;
  }
  else {
    llherror( 3 ) ;
    return '' ;
  }
}
function llhcalc(){
   llhinvalid = 0 ;
   var na = 'n/a' ;
   var who = 'collects' ;
   // 2011 
   var llhrates = [[[[220,277,328,372,409,446,483],[307,388,460,521,573,625,677],[351,444,525,595,655,715,775],[439,555,656,744,819,894,1069]],[[187,236,279,316,348,380,412],[261,330,391,443,487,531,575],[299,377,446,506,557,608,659],[373,472,558,633,696,759,822]],[[na,na,na,na,na,na,na],[267,344,417,482,530,578,626],[305,394,477,551,606,658,710],[382,492,596,689,757,825,893]],[[na,na,na,na,na,na,na],[210,21,327,377,423,469,515],[240,310,373,430,483,536,589],[300,387,467,538,604,670,736]]],
[[[298,361,416,465,508,550,592],[417,505,583,651,711,770,829],[476,577,666,745,812,880,948],[595,721,833,931,1015,1100,1185]],[[265,319,367,409,446,483,520],[371,447,514,573,625,676,727],[424,510,587,655,714,771,828],[530,638,734,819,892,965,1038]],[[na,na,na,na,na,na,na],[316,395,40,532,584,635,686],[361,452,537,608,667,726,785],[451,565,672,760,834,908,982]],[[na,na,na,na,na,na,na],[261,325,385,435,484,531,578],[299,372,440,497,553,609,665],[373,465,550,622,692,762,832]]]] ;
   var a, p, d, t ;
   var ages = [ "A", "Y", "C", "AMC" ];
   var periods = [ "50%", "30%", "20%", "peak" ];
   var days = [ '3', '4', '5', '6', '7', '8', '9' ];
   var pcks = [ "LL", "LLH" ] ;
   var total = 0.0 ;
   var com = 0.0 ;
   var net = 0.0 ;
   var x, tot ;
   var form = document.llhappl ;

   if ( isNaN( parseInt( form.qty1.value ))) form.qty1.value = "0" ;
   if ( isNaN( parseInt( form.qty2.value ))) form.qty2.value = "0" ;
   if ( isNaN( parseInt( form.qty3.value ))) form.qty3.value = "0" ;
   if ( isNaN( parseInt( form.qty4.value ))) form.qty4.value = "0" ;
   if ( isNaN( parseInt( form.qty5.value ))) form.qty5.value = "0" ;

   for ( p = 0; p < periods.length; p++ )
     if ( form.period1.value.indexOf( periods[ p ]) == 0 ) break ;   
   for ( a = 0; a < ages.length; a++ )
     if ( form.age1.value == ages[ a ] ) break ;   
   for ( d = 0; d < days.length; d++ )
     if ( form.days1.value.indexOf( days[ d ]) == 0 ) break ;   
   for ( t = 0; t < pcks.length; t++ )
     if ( form.pck1.value == pcks[ t ] ) break ;   
   form.rate1.value = llhrates[ t ][ a ][ p ][ d ] ;
   if ( form.rate1.value == na ) {
     llherror( 1 ) ;
     form.rate1.value = 0 ;
   }
   tot = parseInt( form.qty1.value ) * parseInt( form.rate1.value );
   if ( tot ) {
     if ( form.name1.value.indexOf( who ) >= 0 ) llherror( 2 ) ;
     form.end1.value = llhend( form.start1.value, form.days1.value ) ;
     x = tot / 10.0 ;
     form.com1.value = x.toFixed( 2 ) ;
     com += parseFloat( form.com1.value ) ;
     x = tot - x ;
     form.net1.value = x.toFixed( 2 ) ;
     net += parseFloat( form.net1.value ) ;
   }
   form.total1.value = tot ;
   total += tot ;
   form.pcode1.value = form.days1.value + form.pck1.value + form.age1.value ;

   for ( p = 0; p < periods.length; p++ )
     if ( form.period2.value.indexOf( periods[ p ]) == 0 ) break ;   
   for ( a = 0; a < ages.length; a++ )
     if ( form.age2.value == ages[ a ] ) break ;   
   for ( d = 0; d < days.length; d++ )
     if ( form.days2.value.indexOf( days[ d ]) == 0 ) break ;   
   for ( t = 0; t < pcks.length; t++ )
     if ( form.pck2.value == pcks[ t ] ) break ;   
   form.rate2.value = llhrates[ t ][ a ][ p ][ d ] ;
   if ( form.rate2.value == na ) {
     llherror( 1 ) ;
     form.rate2.value = 0 ;
   }
   tot = parseInt( form.qty2.value ) * parseInt( form.rate2.value );
   if ( tot ) {
     if ( form.name2.value.indexOf( who ) >= 0 ) llherror( 2 ) ;
     form.end2.value = llhend( form.start2.value, form.days2.value ) ;
     x = tot / 10.0 ;
     form.com2.value = x.toFixed( 2 ) ;
     com += parseFloat( form.com2.value ) ;
     x = tot - x ;
     form.net2.value = x.toFixed( 2 ) ;
     net += parseFloat( form.net2.value ) ;
   }
   form.total2.value = tot ;
   total += tot ;
   form.pcode2.value = form.days2.value + form.pck2.value + form.age2.value ;

   for ( p = 0; p < periods.length; p++ )
     if ( form.period3.value.indexOf( periods[ p ]) == 0 ) break ;   
   for ( a = 0; a < ages.length; a++ )
     if ( form.age3.value == ages[ a ] ) break ;   
   for ( d = 0; d < days.length; d++ )
     if ( form.days3.value.indexOf( days[ d ]) == 0 ) break ;   
   for ( t = 0; t < pcks.length; t++ )
     if ( form.pck3.value == pcks[ t ] ) break ;   
   form.rate3.value = llhrates[ t ][ a ][ p ][ d ] ;
   if ( form.rate3.value == na ) {
     llherror( 1 ) ;
     form.rate3.value = 0 ;
   }
   tot = parseInt( form.qty3.value ) * parseInt( form.rate3.value );
   if ( tot ) {
     if ( form.name3.value.indexOf( who ) >= 0 ) llherror( 2 ) ;
     form.end3.value = llhend( form.start3.value, form.days3.value ) ;
     x = tot / 10.0 ;
     form.com3.value = x.toFixed( 2 ) ;
     com += parseFloat( form.com3.value ) ;
     x = tot - x ;
     form.net3.value = x.toFixed( 2 ) ;
     net += parseFloat( form.net3.value ) ;
   }
   form.total3.value = tot ;
   total += tot ;
   form.pcode3.value = form.days3.value + form.pck3.value + form.age3.value ;

   for ( p = 0; p < periods.length; p++ )
     if ( form.period4.value.indexOf( periods[ p ]) == 0 ) break ;   
   for ( a = 0; a < ages.length; a++ )
     if ( form.age4.value == ages[ a ] ) break ;   
   for ( d = 0; d < days.length; d++ )
     if ( form.days4.value.indexOf( days[ d ]) == 0 ) break ;   
   for ( t = 0; t < pcks.length; t++ )
     if ( form.pck4.value == pcks[ t ] ) break ;   
   form.rate4.value = llhrates[ t ][ a ][ p ][ d ] ;
   if ( form.rate4.value == na ) {
     llherror( 1 ) ;
     form.rate4.value = 0 ;
   }
   tot = parseInt( form.qty4.value ) * parseInt( form.rate4.value );
   if ( tot ) {
     if ( form.name4.value.indexOf( who ) >= 0 ) llherror( 2 ) ;
     form.end4.value = llhend( form.start4.value, form.days4.value ) ;
     x = tot / 10.0 ;
     form.com4.value = x.toFixed( 2 ) ;
     com += parseFloat( form.com4.value ) ;
     x = tot - x ;
     form.net4.value = x.toFixed( 2 ) ;
     net += parseFloat( form.net4.value ) ;
   }
   form.total4.value = tot ;
   total += tot ;
   form.pcode4.value = form.days4.value + form.pck4.value + form.age4.value ;

   for ( p = 0; p < periods.length; p++ )
     if ( form.period5.value.indexOf( periods[ p ]) == 0 ) break ;   
   for ( a = 0; a < ages.length; a++ )
     if ( form.age5.value == ages[ a ] ) break ;   
   for ( d = 0; d < days.length; d++ )
     if ( form.days5.value.indexOf( days[ d ]) == 0 ) break ;   
   for ( t = 0; t < pcks.length; t++ )
     if ( form.pck5.value == pcks[ t ] ) break ;   
   form.rate5.value = llhrates[ t ][ a ][ p ][ d ] ;
   if ( form.rate5.value == na ) {
     llherror( 1 ) ;
     form.rate5.value = 0 ;
   }
   tot = parseInt( form.qty5.value ) * parseInt( form.rate5.value );
   if ( tot ) {
     if ( form.name5.value.indexOf( who ) >= 0 ) llherror( 2 ) ;
     form.end5.value = llhend( form.start5.value, form.days5.value ) ;
     x = tot / 10.0 ;
     form.com5.value = x.toFixed( 2 ) ;
     com += parseFloat( form.com5.value ) ;
     x = tot - x ;
     form.net5.value = x.toFixed( 2 ) ;
     net += parseFloat( form.net5.value ) ;
   }
   form.total5.value = tot ;
   total += tot ;
   form.pcode5.value = form.days5.value + form.pck5.value + form.age5.value ;

   if ( total == 0 || llhinvalid ) {
     form.total.value = "nil" ;
     form.net.value = "" ;
     form.com.value = "" ;
   }
   else {
     form.total.value = total.toFixed( 2 ) ;
     form.com.value = com.toFixed( 2 ) ;
     form.net.value = net.toFixed( 2 ) ;
   }
}
