Fix an unstranslatable string in JavaScript
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / serials / subscription-add.tmpl
index f957358..26337f1 100644 (file)
@@ -1,22 +1,26 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha &rsaquo; Serials &rsaquo; <!-- TMPL_IF name="mod" --> Modify subscription to <!-- TMPL_VAR name="bibliotitle" --><!-- TMPL_ELSE -->New subscription<!-- /TMPL_IF --></title>
+<title>Koha &rsaquo; Serials &rsaquo; <!-- TMPL_IF name="mod" --><!-- TMPL_VAR name="bibliotitle" escape="html" --> &rsaquo; Modify subscription<!-- TMPL_ELSE -->New subscription<!-- /TMPL_IF --></title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 <!-- TMPL_INCLUDE NAME="calendar.inc" -->
 
+<style type="text/css">
+fieldset.rows li.radio { width: 100%; } /* override staff-global.css */
+.yui-u li p label.widelabel {
+    width: 300px;  /* not enough for IE7 apparently */
+    /* height: 2.4em; background-color: pink; */
+}
+</style>
 <script type="text/javascript">
-<!--
+//<![CDATA[
 
 // the english words used in display purposes
 var text = new Array(_("Number"),_("Volume"),_("Issue"),_("Month"),_("Week"),_("Starting with:"),_("Rollover at:"),_("Choose Hemisphere:"),_("Northern"),_("Southern"),
 _("Autumn"),_("Winter"),_("Spring"),_("Summer"),_("Fall"),_("Season"),_("Year"));
+var weekno_label = _("Week # ");
 var is_season = 0;
 var is_hemisphere = 1;
 var irregular_issues;   // will hold irregularity object.
 
-<!-- TMPL_IF NAME="weekarrayjs" -->
-    var weeks = new Array(<!-- TMPL_VAR NAME="weekarrayjs" -->); 
-<!-- /TMPL_IF -->
-
 function formatDate(myDate) {
     var d = new Array( myDate.getFullYear(), myDate.getMonth() + 1 ,myDate.getDate());
     if(d[1].toString().length == 1) { d[1] = '0'+d[1] };
@@ -34,13 +38,24 @@ Date.prototype.addDays = function(days) {
     this.setDate(this.getDate()+days);
 }
 
-function getWeeksArray(startDate) {
-// returns a 52 element array with dates starting with startDate.
+function getWeeksArray(startDate,periodicity) {
+// returns an array of syspref-formatted dates starting at the first day of startDate's year.
+// This prediction method will not accurately predict irregularites beyond the first year.
+// FIXME : Should replace with ajax query to get the first Monday of the year so that week numbers have correct dates.
+    var incr=1;
+    if(periodicity==3) {  // 1/2 wks
+        incr=2;
+    } else if(periodicity == 4) { // 1/3 wks
+        incr=3;
+    }
     var weeksArray = new Array;
-    var myDate = new Date;
+    var jan01 = new Date();
+    jan01.setDate(1);
+    jan01.setMonth(0);
+    jan01.setFullYear(startDate.getFullYear());
     for(var i=0;i<52;i++) {
-        startDate.addDays( 7 ); 
-        weeksArray[i] = formatDate(startDate);
+        weeksArray[i] = formatDate(jan01) + ' ' + weekno_label + (i + 1);
+        jan01.addDays( 7 ); 
     }
     return weeksArray;
 }
@@ -71,13 +86,18 @@ function IrregularPattern() {
        this.months = new Array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December"));
        this.seasons = new Array(_("Autumn"),_("Winter"),_("Spring"),_("Summer"),_("Fall"));
     this.daynames = new Array(_("Monday"),_("Tuesday"),_("Wednesday"),_("Thursday"),_("Friday"),_("Saturday"),_("Sunday"));
-       <!-- TMPL_IF NAME="weekarrayjs" -->
-       this.weeks = new Array(<!-- TMPL_VAR NAME="weekarrayjs" -->); 
-       <!-- /TMPL_IF -->
-       this.numskipped = 0;
+    // create weeks irregularity selection array:
+    this.firstissue = new Date();
+    this.firstissue.setDate(1);
+    this.firstissue.setMonth(0);
+    <!-- TMPL_IF NAME='firstacquiyear' --> // it's a mod, we already have a start date.
+        this.firstissue.setFullYear( <!-- TMPL_VAR NAME="firstacquiyear" --> );
+    <!-- /TMPL_IF -->
+       this.weeks = getWeeksArray(this.firstissue); 
+
+    this.numskipped = 0;
     // init:
        var irregular = '<!-- TMPL_VAR NAME="irregularity" -->';
-   //  var periodicity = document.f.periodicity.value;
     this.skipped = irregular.split(',');
 }
 
@@ -85,10 +105,12 @@ IrregularPattern.prototype.update = function() {
                this.skipped= new Array;
                var cnt = 0;
                // daily periodicity, we interpret irregular array as which days of week to skip.
-               // else irregular array is list of issues to skip
+               // else if weekly periodicity, week numbers (starting from 01 Jan) to skip.
+        // else  irregular array is list of issues to skip
                var summary_str = '';
                this.numskipped = 0;
         if(document.f.irregularity_select) {
+            //$("#irregularity_select option:selected").each(...); //jquery can combine both conditionals and the for loop
             for( var i in document.f.irregularity_select.options ) {
                 if( document.f.irregularity_select.options[i].selected ) {
                     this.skipped[cnt] = document.f.irregularity_select.options[i].value ;
@@ -100,7 +122,7 @@ IrregularPattern.prototype.update = function() {
                    var summary = document.getElementById("irregularity_summary");
                    if(summary) {
                            summary.value = summary_str;
-                           summary.rows= ( cnt > 6 ) ? cnt : 6 ;
+                           summary.rows= ( cnt > 6 ) ? cnt : 6 ; // textarea will bre resized, but not more than 6 lines will show.
                    }
         }
 }
@@ -119,11 +141,11 @@ function init_pattern() {
 }
 function reset_pattern() {
        document.getElementById("numberpattern").value = '';
-//     document.getElementById("numberpattern").value = '';
+    document.getElementById("irregularity").innerHTML = '';
        init_pattern();
        reset_num_pattern();
-
 }
+
 // common pre defined number patterns
 function reset_num_pattern() {
 var patternchoice = document.getElementById("numberpattern").value;
@@ -225,10 +247,10 @@ var patternchoice = document.getElementById("numberpattern").value;
         document.f.setto1.value=0;
         document.f.setto2.value='1';
         document.f.setto3.value='';
-        document.f.lastvalue1temp.value=sYear;
         document.f.periodicity.value='8';
         document.f.numberingmethod.value=_("{Y} {X}");
         moreoptions_seasons(text[15],sYear);
+        document.f.lastvalue1temp.value=document.f.lastvalue1.value=sYear;
         display_table(0);
         is_season = 1;
         break;
@@ -237,8 +259,8 @@ var patternchoice = document.getElementById("numberpattern").value;
         document.getElementById("more_options").innerHTML = '';
         document.f.irreg_check.value=1; 
         break;
-    case "8":
-        var d = new Date(document.f.startdate.value);
+    case "8":  // Year/Number
+        var d = (document.f.firstacquidate.value) ? new Date( document.f.firstacquidate.value) : new Date() ;
         var sYear = d.getFullYear();
         document.f.add1.value=1;
         document.f.add2.value=1;
@@ -252,29 +274,22 @@ var patternchoice = document.getElementById("numberpattern").value;
         document.f.setto1.value=0;
         document.f.setto2.value=1;
         document.f.setto3.value='';
-        if (document.f.lastvalue1.value==0){document.f.lastvalue1.value=sYear};
-        if (document.f.lastvalue2.value==0 ||document.f.lastvalue2.value=='' ){    
+        document.f.lastvalue1.value=sYear;
           switch (document.f.periodicity.value){
             case 1:              
               var doy = dayofyear(d);
-              //var Weeknumber=YWDA[1];
               document.f.lastvalue2.value=doy; 
+              document.f.whenmorethan2.value=365; 
               break;      
             case 12:     
               var doy = dayofyear(d);
-              //var Weeknumber=YWDA[1];
               document.f.lastvalue2.value=doy*2; 
-              break;      
-            case 13:     
-              var doy = dayofyear(d);
-              //var Weeknumber=YWDA[1];
-              document.f.lastvalue2.value=doy/3; 
+              document.f.whenmorethan2.value=730; 
               break;      
             case 2:
             case 3:
             case 4:
               var YWDa = YMDaToYWDa(d);
-              //var Weeknumber=YWDA[1];
               document.f.lastvalue2.value=YWDA[1]/(document.f.periodicity.value-1); 
               break;      
             case 5:
@@ -284,23 +299,26 @@ var patternchoice = document.getElementById("numberpattern").value;
             case 6:
               var smonth = d.getMonth();
               document.f.lastvalue2.value=smonth/2;
+              document.f.whenmorethan2.value=6;
               break;      
             case 7:
             case 8:      
               var smonth = d.getMonth();
               document.f.lastvalue2.value=smonth/3;
+              document.f.whenmorethan2.value=4;
               break;      
             case 9:                        
               var smonth = d.getMonth();
               document.f.lastvalue2.value=smonth/6;
+              document.f.whenmorethan2.value=2;
               break;      
             default:
           } 
-        }    
-        //         document.f.lastvalue2.value=document.f.lastvalue2temp.value;
         document.f.lastvalue3.value='';
-        document.f.numberingmethod.value=_("{X}/{Y}");
+        document.f.numberingmethod.value=_("{X} / {Y}");
         moreoptions(text[16],text[0]);
+     //   document.f.lastvalue1temp.value=sYear;
+     //   document.f.lastvalue2temp.value=document.f.lastvalue2.value;
         display_table(0);
         break;
     default:
@@ -385,7 +403,6 @@ function set_num_pattern_from_template_vars() {
 }
 
 // a pre check with more options to see if 'number' and '1/day' are chosen
-
 function moreoptions_daily_check(x) {
     var periodicity = document.f.periodicity.value;
     var errortext='';
@@ -405,7 +422,6 @@ function moreoptions_daily_check(x) {
     }
 }
 
-
 // to dispaly the more options section
 function moreoptions(x,y,z){
 document.getElementById("irregularity").innerHTML = '';
@@ -413,7 +429,7 @@ document.getElementById("more_options").innerHTML = '';
 var textbox = '';
     // alert("X: "+x+"Y: "+y+"Z: "+z);
     if(x){
-        textbox +="<table>\n<tr><th>&nbsp;<\/th><th>"+x+"<\/th>";
+        textbox +="<table id='irregularity_table'>\n<tr><th>&nbsp;<\/th><th>"+x+"<\/th>";
         if(y){
             textbox +="<th>"+y+"<\/th>";
             if(z){
@@ -438,7 +454,7 @@ var textbox = '';
             }
             textbox +="<\/tr>";
         } else {
-          textbox +="<tr> <td>"+_("issues expected")+"</td><td><input type='text' name='issuesexpected1temp' id='issuesexpected1temp' size='4' onkeyup='moreoptionsupdate(this,0)' value=\"" + document.f.issuesexpected1.value + "\" ></td></tr>";
+          textbox +="<tr> <td>"+_("issues expected")+"<\/td><td><input type='text' name='issuesexpected1temp' id='issuesexpected1temp' size='4' onkeyup='moreoptionsupdate(this,0)' value=\"" + document.f.issuesexpected1.value + "\" ><\/td><\/tr>";
         }
         textbox +="<\/table>\n";
     }
@@ -473,6 +489,7 @@ var selbox = document.getElementById("season1");
 
 // to display the more options section for seasons
 function moreoptions_seasons(x,y){
+// x = 'Season'.  y = 'Year'.
 document.getElementById("irregularity").innerHTML = '';
 document.getElementById("more_options").innerHTML = '';
 var textbox = '';
@@ -488,22 +505,19 @@ var textbox = '';
             textbox +=">"+text[i+7]+"<\/option>";
         }
         textbox +="<\/li>\n";
-        textbox +="<table><tr><th>&nbsp;<\/th><th>"+x+"<\/th>";
+        textbox +="<table id='seasonal_irregularity'><tr><th>&nbsp;<\/th><th>"+x+"<\/th>";
         textbox +="<th>"+text[16]+"<\/th>";
         textbox +="<\/tr>\n";
         textbox +="<tr><th scope=\"row\">"+text[5]+"<\/th><td><select name='lastvalue2temp' id='lastvalue2temp' id='season1' onchange='moreoptionsupdate(this)'>";
         for(var j = 1; j <= 4; j++){
-            textbox +="<option value='"+j+"'>"+text[j+10]+"<\/option>";
-        }
-        textbox +="<\/select><\/td><td><select name='lastvalue1temp' id='lastvalue1temp' onchange='moreoptionsupdate(this)'>";
-        for(var k = parseInt(y); k <= parseInt(y)+15; k++){
-            textbox +="<option value='"+k+"'>"+k+"<\/option>";
+            textbox +="<option value='"+j+"'>"+text[j+9]+"<\/option>";
         }
-        textbox +="<\/select><\/td><\/tr>\n";
+        textbox +="<\/select><\/td>";
+        var isyr = irregular_issues.firstissue;
+        textbox += "<td>" + irregular_issues.firstissue.getFullYear() + "<\/td><\/tr>\n";
         textbox +="<tr><th scope=\"row\">"+text[6]+"<\/th>";
         textbox +="<td><input type='text' name='whenmorethan2temp' id='whenmorethan2temp' size='4' onkeyup='moreoptionsupdate(this,1)'><\/td>\n";
-                textbox +="<\/tr><\/table>\n";
-
+        textbox +="<\/tr><\/table>\n";
     }
     document.getElementById("more_options").innerHTML = textbox;
 }
@@ -542,13 +556,6 @@ function irregularity_check(){
             toobig=1;
         }
         break;
-    case "13":
-        if(rollover < 156) expected =156;
-        if(rollover > 156) {
-            expectedover=156;
-            toobig=1;
-        }
-        break;
     case "2":
         if(rollover < 52) expected =52;
         if(rollover > 52){
@@ -625,13 +632,13 @@ function irregularity_check(){
             errortext +=expected+_(" issues expected, ")+rollover+_(" were entered. <br \/>Please indicate which date(s) an issue is not expected<br \/>");
             irregular_issues.numskipped = expected - rollover;
                }
-        errortext +="<select multiple id='irregularity_select' name='irregularity_select' onchange='irregular_issues.update();'>\n"; 
+        errortext +="<select multiple id='irregularity_select' name='irregularity_select' onchange='irregular_issues.update();'>\n";
                errortext +=irregular_options(periodicity);
-               errortext += "</select>\n <textarea rows='6' width='18' id='irregularity_summary' name='irregularity_summary' value='foo' />";
+               errortext += "<\/select>\n <textarea rows='6' width='18' id='irregularity_summary' name='irregularity_summary' value='foo' />";
         error=errortext;
     }
     if(toobig){
-        errortext +=expectedover+_(" issues expected, ")+rollover+_(" were entered.<br \/> You seem to have indicated more issues per year than expected.");
+        errortext +=expectedover+_(" issues expected, ")+rollover+_(" were entered.<p class='warning'> You seem to have indicated more issues per year than expected.<\/p>");
         error=errortext;
     }
     if(error.length ==0){
@@ -646,24 +653,25 @@ function irregular_options(periodicity){
     var titles;
     var count;
     var errortext='';
+    var numberpattern = document.getElementById('numberpattern').value;
     if(periodicity == 1) {
-        expected = 366;
-        titles = "Day";
+        expected = 7;
+        titles = irregular_issues.daynames;
         count = 1;
     }
     if(periodicity == 2 || periodicity == 3 || periodicity == 4) { 
-        expected = 52;
         titles = irregular_issues.weeks;
-        <!-- TMPL_IF NAME="weekno" -->
-               count = 1;  // This doesn't make sense given the behavior of the script.
-               // we should count from the first serial date, not from this week!
-               // <!-- TMPL_VAR NAME="weekno" -->;
-               <!-- TMPL_ELSE -->
                count = 1;
-               <!-- /TMPL_IF -->
+        if(periodicity==3) {  // 1/2 wks
+            expected = 26;
+        } else if(periodicity == 4) { // 1/3 wks
+            expected = 17;
+        } else {
+            expected = 52;
+        }
     }
     if(periodicity == 5 || periodicity == 6 || periodicity == 7 || periodicity == 8 || periodicity == 9) {
-        if(periodicity == 8) {
+        if(periodicity == 8 && numberpattern==8) {
             is_season = 1; // setting up from edit page
         } 
         if(is_season){
@@ -683,7 +691,7 @@ function irregular_options(periodicity){
        if( !expected) {
                return '';   // don't know how to deal with irregularity.
        }       
-    for(var j=1;j<=expected;j++){
+    for(var j=0;j<expected;j++){   // rch - changed frrom (1..expected).
         if(isArray(titles)){
             if(count>expected){
                 count = count-expected;
@@ -694,12 +702,18 @@ function irregular_options(periodicity){
             } else if(is_season && is_hemisphere == 2){
                 errortext +="<option value='"+((count*3)-2)+"'>"+titles[j-1]+"<\/option>\n";
 // alert("value: "+((count*3)-2)+" title: "+titles[j-1]);
-            } else {
-                errortext += "<option value='" + count ;
-                               if(irregular_issues.irregular(j)) {
+            } else {  // all non-seasonal periodicities:
+                var incr=1; // multiplier for ( 1/n weeks)  patterns; in this case the irreg calc relies on the week# , not the issue#.
+                if(periodicity==3) {  // 1/2 wks
+                    incr=2;
+                } else if(periodicity == 4) { // 1/3 wks
+                    incr=3;
+                }
+                errortext += "<option value='" + (1+j*incr) ;  
+                               if(irregular_issues.irregular(1+incr*j)) {
                                        errortext += "' selected='selected" ;
                                }
-                               errortext += "'>"+titles[j-1]+"<\/option>\n";
+                               errortext += "'>"+titles[incr*j]+"<\/option>\n";
             }
             count++;
         } else { 
@@ -722,7 +736,7 @@ function display_example(expected){
     var whenmorethan3 = parseInt(document.f.whenmorethan3.value);
     var setto2 = parseInt(document.f.setto2.value);
     var setto3 = parseInt(document.f.setto3.value);
-    var displaytext = _("Based on the information entered, the Numbering Pattern will look like this: <br \/><ul class=\"numpattern_preview\">");
+    var displaytext = _("Based on the information entered, the Numbering Pattern will look like this: ") + "<br \/><ul class=\"numpattern_preview\">";
     if(startfrom3>0){
         var count=startfrom3-1;
         var count2=startfrom2;
@@ -738,7 +752,7 @@ function display_example(expected){
             } else {
                 count++;
             }
-            displaytext += '<li>' + numberpattern.replace(/{Z}/,count) + '</li>\n';
+            displaytext += '<li>' + numberpattern.replace(/{Z}/,count) + '<\/li>\n';
             displaytext = displaytext.replace(/{Y}/,count2);
             displaytext = displaytext.replace(/{X}/,startfrom1);
 
@@ -796,29 +810,46 @@ function moreoptionsupdate(inputfield,rollover){
     basefield = document.getElementById(fieldname.slice(0,-4));
     var fieldnumber = fieldname.slice(-5,-4);
 
-//    fieldnametemp = fieldname.slice(0,-1)+"temp"+fieldnametempnumber;
-//    eval("document.f."+fieldname+".value = document.f."+fieldnametemp+".value");
     basefield.value = inputfield.value;
     var patternchoice = document.getElementById("numberpattern").value;
     switch(patternchoice){
     case "2":
     case "4":
     case "5":
-    case "8":
-       if (document.f.lastvalue2temp.value>0){document.f.innerloop1.value = document.f.lastvalue2temp.value - 1;}
+    case "8": // Year, Number.  -- Why not just use Vol, Number withvol==year??
+                //  FIXME: this my conflict with innerloop calc below.
+       if (document.f.lastvalue2temp.value > 0){document.f.innerloop1.value = document.f.lastvalue2temp.value - 1;}
       break;   
     }  
-    if(rollover){
-//        eval("document.f.every"+(fieldnametempnumber-1)+".value = document.f."+fieldnametemp+".value");
+    if(basefield.name.slice(0,-1) == 'lastvalue' || 'whenmorethan' ) {
+        // The enumeration string is held in a positional numeral notation with three positions, X,Y,Z.
+        // The last values lastvalue1, lastvalue2,lastvalue3 should match the last received serial's X,Y,Z enumeration.
+        // make array indexes start with 1 for consistency with variable names.
+        var innerloop = new Array( undefined, document.getElementById('innerloop1'), document.getElementById('innerloop2'), document.getElementById('innerloop3') );
+        var lastvalue = new Array( undefined, document.getElementById('lastvalue1').value *1 , document.getElementById('lastvalue2').value *1 , document.getElementById('lastvalue3').value *1  );
+        var every = new Array( undefined, document.getElementById('every1').value *1 , document.getElementById('every2').value *1 , document.getElementById('every3').value *1  );
+        var add = new Array( undefined, document.getElementById('add1').value *1 , document.getElementById('add2').value *1 , document.getElementById('add3').value *1  );
+        var whenmorethan = new Array( undefined, document.getElementById('whenmorethan1').value *1 , document.getElementById('whenmorethan2').value *1 , document.getElementById('whenmorethan3').value *1  );
+        
+       if(rollover){
        // calculate rollover  for higher level of periodicity.
-       // FIXME: This calculation only works if addN = 1 , that is, the X,Y,and Z each only increment by zero or one on each issue.
-
-       // if there are two levels of periodicity, (e.g. vol{X},num{Y},issue{Z}, then every1=every2*whenmorethan2 
-       // otherwise, every2 == 1.
-       var addN = (document.getElementById('add'+fieldnumber)) ? document.getElementById('add'+fieldnumber).value : 1 ;
-       var everyN = (document.getElementById('every'+fieldnumber)) ? document.getElementById('every'+fieldnumber).value : 1 ;
-       document.getElementById('every'+(fieldnumber-1)).value = basefield.value * everyN / addN ;
-     }
+       // if there are two levels of periodicity, (e.g. vol{X},num{Y},issue{Z}, then every1=every2*whenmorethan2 / add2 .
+          for(var N=3;N>1;N--){
+            if( add[N] > 0){
+                var addN = (add[N]) ? add[N] : 1 ;
+                var everyN = (document.getElementById('every'+N)) ? document.getElementById('every'+N).value : 1 ;
+                document.getElementById('every'+(N-1)).value = whenmorethan[N] * everyN / addN ;
+            }
+          }
+        }
+        innerloop[3].value = ( every[3] > 1 ) ? lastvalue[3] % every[3] : 0 ;
+        innerloop[2].value = ( every[2] > 1 ) ? lastvalue[3] - 1 : 0 ;
+        innerloop[1].value = ( every[1] > 1 ) ? 
+                                    ( whenmorethan[3] > 0 ) ?  (lastvalue[2] - 1) * every[2] + 1* innerloop[2].value 
+                                                            : lastvalue[2] - 1
+                                               : 0 ;
+    }
+     //FIXME : add checks for innerloop || lastvalue .gt. rollover  
 }
 
 
@@ -885,6 +916,7 @@ function Check(f) {
 }
 
 $(document).ready(function() {
+    init_pattern();
 <!-- TMPL_IF name="mod" -->
     set_num_pattern_from_template_vars();
     <!-- TMPL_IF name="hemisphere" -->
@@ -895,25 +927,24 @@ $(document).ready(function() {
 <!-- TMPL_IF name="irregularity" -->
     irregularity_check();
 <!-- /TMPL_IF -->
-init_pattern();
-$('#numberpattern').change( function() { 
-    reset_num_pattern(); 
+    $('#numberpattern').change( function() { 
+        reset_num_pattern(); 
     });
 });
--->
+//]]>
 </script>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
 <!-- TMPL_INCLUDE NAME="serials-search.inc" -->
 
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; <!-- TMPL_IF name="mod" --> Modify subscription for <span class="title"><!-- TMPL_VAR name="bibliotitle" --></span><!-- TMPL_ELSE -->New subscription<!-- /TMPL_IF --></div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; <!-- TMPL_IF name="mod" --><a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=<!-- TMPL_VAR NAME="subscriptionid" -->"><i><!-- TMPL_VAR NAME="bibliotitle" escape="html" --></i></a> &rsaquo; Modify subscription<!-- TMPL_ELSE -->New subscription<!-- /TMPL_IF --></div>
 
 <div id="doc3" class="yui-t7">
    
    <div id="bd">
    <div class="yui-g">
-<h1><!-- TMPL_IF name="mod" --> Modify subscription for <i><!-- TMPL_VAR name="bibliotitle" --></i><!-- TMPL_ELSE -->Add a new subscription<!-- /TMPL_IF --></h1>
+<h1><!-- TMPL_IF name="mod" --> Modify subscription for <i><!-- TMPL_VAR name="bibliotitle" escape="html" --></i><!-- TMPL_ELSE -->Add a new subscription<!-- /TMPL_IF --></h1>
     <form method="post" name="f" action="/cgi-bin/koha/serials/subscription-add.pl">
 <!-- TMPL_IF name="mod" -->
         <input type="hidden" name="op" value="modsubscription" />
@@ -930,9 +961,7 @@ $('#numberpattern').change( function() {
        <legend>Subscription details</legend>
        <ol>
         <li><span class="label">Subscription #</span> <!--TMPL_VAR name="subscriptionid"--></li>
-        <li>
-            <span class="label">Librarian: </span>            <!-- TMPL_VAR name="loggedinusername" -->
-        </li>
+        <li><span class="label">Librarian: </span> <!-- TMPL_VAR name="loggedinusername" --></li>
         <li>
             <label for="aqbooksellerid">Vendor: </label>
             <input type="text" name="aqbooksellerid" id="aqbooksellerid" value="<!-- TMPL_VAR name="aqbooksellerid" -->" size="8" /> (<input type="text" name="aqbooksellername" value="<!-- TMPL_VAR name="aqbooksellername" -->" disabled="disabled" readonly="readonly" />) <div class="inputnote"><a href="#" onclick="FindAcqui(f)">Search for a vendor</a></div>
@@ -948,14 +977,18 @@ $('#numberpattern').change( function() {
         </li>
         <li class="radio">
             <!-- TMPL_IF name="serialsadditems" -->
-                <p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1" checked="checked" /><label for="serialsadditems-yes">create an item record when receiving this serial</label></p>
-                <p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" /><label for="serialsadditems-no">do not create an item record when receiving this serial </label></p>
+                <p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1" checked="checked" /><label class="widelabel" for="serialsadditems-yes">create an item record when receiving this serial</label></p>
+                <p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" /><label class="widelabel" for="serialsadditems-no">do not create an item record when receiving this serial </label></p>
             <!-- TMPL_ELSE -->
-                <p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1"/><label for="serialsadditems-yes">create an item record when receiving this serial</label></p>
-                <p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" checked="checked" /><label for="serialsadditems-no">do not create an item record when receiving this serial</label></p>
+                <p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1"/><label class="widelabel" for="serialsadditems-yes">create an item record when receiving this serial</label></p>
+                <p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" checked="checked" /><label class="widelabel" for="serialsadditems-no">do not create an item record when receiving this serial</label></p>
             <!-- /TMPL_IF -->
         </li>
         <li>
+            <label for="location">Location:</label>
+            <input type="text" name="location" id="location" value="<!-- TMPL_VAR name="location" -->" size="30" />
+        </li>
+         <li>
             <label for="callnumber">Call Number:</label>
             <input type="text" name="callnumber" id="callnumber" value="<!-- TMPL_VAR name="callnumber" -->" size="20" />
         </li>
@@ -972,6 +1005,9 @@ $('#numberpattern').change( function() {
                 </select> (select a library)
             
         </li>
+        <li>
+               <label for="graceperiod">Grace period:</label> <input type="text" name="graceperiod" id="graceperiod" value="<!-- TMPL_VAR name="graceperiod" -->" /> day(s)
+           </li>
         <li>
             <label for="notes">Public note:</label>
             <textarea name="notes" id="notes" cols="30" rows="2"><!-- TMPL_VAR name="notes" --></textarea>
@@ -999,6 +1035,17 @@ $('#numberpattern').change( function() {
                                <div class="hint">To notify patrons of new serial issues, you must <a href="/cgi-bin/koha/tools/letter.pl">define a notice</a>.</div>
                                <!-- /TMPL_IF -->
         </li>
+               <li class="radio">
+                       <label for="staffdisplaycount">Staff and Public Display</label>
+                       <p>
+                        <label class="widelabel" for="staffdisplaycount">Number of issues to display to staff: </label>
+                        <input type="text" name="staffdisplaycount" id="staffdisplaycount" value="<!-- TMPL_VAR NAME="staffdisplaycount" -->" size="4"/>
+                       </p>
+                       <p>
+                       <label class="widelabel" for="opacdisplaycount">Number of issues to display to the public: </label>
+                       <input type="text" name="opacdisplaycount" id="opacdisplaycount" value="<!-- TMPL_VAR NAME="opacdisplaycount" -->" size="4"/>
+                       </p>
+               </li>
        </ol>
 
             <div style="float:left;clear:left;margin:1em;"><strong>Note:</strong>
@@ -1018,32 +1065,49 @@ $('#numberpattern').change( function() {
        <legend>Serials planning</legend>
     <ol>
         <li>
-           <label for="firstacquidate"> First issue publication date:</label>
-            
-                <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="button2" style="cursor: pointer;" alt="Show Calendar" title="Show Calendar" />
-                <input type="text" name="firstacquidate" value="<!-- TMPL_VAR name="firstacquidate" -->" size="13" maxlength="10" id="acqui_date" style="border-width: 0px;"  />
-                <!-- both scripts for calendar must follow the input field --> 
+           <label for="acqui_date"> First issue publication date:</label>
+                <!-- TMPL_UNLESS NAME="mod" --><img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="acqui_button" style="cursor: pointer;" alt="Show Calendar" title="Show Calendar" /><!-- /TMPL_UNLESS -->
+                <input type="text" name="firstacquidate" value="<!-- TMPL_VAR name="firstacquidate" -->"  size="13" maxlength="10" id="acqui_date" <!-- TMPL_IF NAME="mod" -->disabled="disabled"<!-- /TMPL_IF --> style="border-width: 0px;"  />
+        </li>
+           <!-- TMPL_IF NAME="mod" --><li><label for="next_acqui_date"> Next issue publication date:</label>
+                <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="next_acqui_button" style="cursor: pointer;" alt="Show Calendar" title="Show Calendar" />
+                <input type="text" name="nextacquidate" value="<!-- TMPL_VAR name="nextacquidate" -->" size="13" maxlength="10" id="next_acqui_date" style="border-width: 0px;"  />
+                </li><!-- /TMPL_IF -->
+                
+        <li><!-- both scripts for calendar must follow the input field --> 
                 <script type="text/javascript">
                     Calendar.setup({
-                        inputField:"acqui_date",
+                        inputField      :   "<!-- TMPL_IF NAME="mod" -->next_<!-- /TMPL_IF -->acqui_date",
                         ifFormat       :   "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
-                        button         :   "button2",
-                        align          :   "Tl"
-                    });
-                </script>
-                <script type="text/javascript">
+                        button         :   "<!-- TMPL_IF NAME="mod" -->next_<!-- /TMPL_IF -->acqui_button",
+                        align          :   "Tl",
+                        onUpdate        :    function(cal) { 
+                                                             irregular_issues.weeks = getWeeksArray(cal.date);
+                                                            irregular_issues.firstissue = cal.date;
+                                                            if(document.irregularity_summary) {
+                                                                irregular_issues.update();
+                                                            }
+                                                            if(document.getElementById("seasonal_irregularity")) {
+                                                                moreoptions_seasons(text[15]);
+                                                            }
+                                                        } 
+                        });
                     Calendar.setup({
-                        inputField     :   "acqui_date",
+                        inputField      :   "<!-- TMPL_IF NAME="mod" -->next_<!-- /TMPL_IF -->acqui_date",
                         ifFormat       :   "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
-                        button         :   "acqui_date",
+                        button         :   "<!-- TMPL_IF NAME="mod" -->next_<!-- /TMPL_IF -->acqui_date",
                         align          :   "Tl",
-                        onUpdate        :    function(cal) { weeks = getWeeksArray(cal.date);
+                        onUpdate        :    function(cal) { irregular_issues.weeks = getWeeksArray(cal.date);
+                                                            irregular_issues.firstissue = cal.date;
+                                                            if(document.irregularity_summary) {
+                                                                irregular_issues.update();
+                                                            }
+                                                            if(document.getElementById("seasonal_irregularity")) {
+                                                                moreoptions_seasons(text[15]);
+                                                            }
                                                         } 
                         });
                 </script>
-           
-        </li>
-        <li>
             <label for="periodicity" class="required">Frequency:</label>
             
                 <select name="periodicity" size="1" id="periodicity" onchange="javascript:document.getElementsByName('manualhist')[0].checked=(this.value==1); reset_num_pattern();">
@@ -1070,14 +1134,9 @@ $('#numberpattern').change( function() {
                     <option value="12">2/day</option>
                 <!-- /TMPL_IF -->
                 <!-- TMPL_IF name="periodicity1" -->
-                    <option value="1" selected="selected">1/day</option>
+                    <option value="1" selected="selected">daily (n/week)</option>
                 <!-- TMPL_ELSE -->
-                    <option value="1">1/day</option>
-                <!-- /TMPL_IF -->
-                <!-- TMPL_IF name="periodicity13" -->
-                    <option value="13" selected="selected">3/week</option>
-                <!-- TMPL_ELSE -->
-                    <option value="13">3/week</option>
+                    <option value="1">daily (n/week)</option>
                 <!-- /TMPL_IF -->
                 <!-- TMPL_IF name="periodicity2" -->
                     <option value="2" selected="selected">1/week</option>
@@ -1132,11 +1191,18 @@ $('#numberpattern').change( function() {
                     <option value="11">1/2 years</option>
                 <!-- /TMPL_IF -->
                 </select> <span class="required">Required</span></li>
-                               <li><label for="manuallist"> Manual history:</label> <input type="checkbox" name="manualhist" id="manuallist" value="1" /></li>
+                <li>
+                    <label for="manuallist"> Manual history:</label>
+                    <!-- TMPL_IF name="manualhistory" -->
+                        <input type="checkbox" name="manualhist" id="manuallist" value="1" checked="checked" />
+                    <!-- TMPL_ELSE -->
+                        <input type="checkbox" name="manualhist" id="manuallist" value="1" />
+                    <!-- /TMPL_IF -->
+                </li>
         <li>
            <label for="numberpattern"> Numbering pattern:</label>
             
-                <select name="numbering_pattern" size="1" id="numberpattern" onchange="reset_num_pattern()">
+                <select name="numbering_pattern" size="1" id="numberpattern" >
                     <option value="" selected="selected">-- please choose --</option>
                     <!-- TMPL_IF name="numberpattern1" -->
                         <option value="1" selected="selected">Number</option>
@@ -1184,7 +1250,7 @@ $('#numberpattern').change( function() {
                 <li id="irregularity"></li>
                   <li id="displayexample"></li>
         <li>
-           <label for="startdate" class="required"> Subscription start date:</label>
+           <label for="beginning_date" class="required"> Subscription start date:</label>
             
                 <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="button1" style="cursor: pointer;" alt="Show Calendar" title="Show Calendar" />
                 <input type="text" name="startdate" value="<!-- TMPL_VAR name="startdate" -->" size="13" maxlength="10" id="beginning_date" style="border-width: 0px;" />
@@ -1196,8 +1262,6 @@ $('#numberpattern').change( function() {
                         button       : "button1",
                         align        : "Tl"
                     });
-                </script>
-                <script type="text/javascript">
                     Calendar.setup({
                         inputField   : "beginning_date",
                         ifFormat     : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
@@ -1310,33 +1374,35 @@ $('#numberpattern').change( function() {
         <input type="hidden" name="subscriptionid" value="<!-- TMPL_VAR name="subscriptionid" -->" />
         <input type="hidden" name="history_only" value="1" />
         <p>Hint : you can update the serial history manually. This can be useful for an old subscription or to clean the existing history. Modify these fields with care, as future serial receive will continue to update them automatically.</p>
-        <table>
-            <tr>
-            <td>Subscription start date</td>
-            <td><input type="text" name="histstartdate" value="<!-- TMPL_VAR name="histstartdate" -->" /> (start date of the 1st subscription)</td>
-            </tr>
-            <tr>
-            <td>Subscription end date</td>
-            <td><input type="text" name="histenddate" value="<!-- TMPL_VAR name="histenddate" -->" />(if empty, subscription is still active)</td>
-            </tr>
-            <tr>
-                <td>Received issues</td>
-                <td><textarea name="recievedlist" cols="60" rows="5"><!-- TMPL_VAR name="recievedlist" --></textarea></td>
-            </tr>
-            <tr>
-                <td>Missing issues</td>
-                <td><textarea name="missinglist" cols="60" rows="5"><!-- TMPL_VAR name="missinglist" --></textarea></td>
-            </tr>
-            <tr>
-                <td>Note for OPAC</td>
-                <td><textarea name="opacnote" cols="60" rows="5"><!-- TMPL_VAR name="opacnote" --></textarea></td>
-            </tr>
-            <tr>
-                <td>Note for staff</td>
-                <td><textarea name="librariannote" cols="60" rows="5"><!-- TMPL_VAR name="librariannote" --></textarea></td>
-            </tr>
-        </table>
-    <input type="submit" value="Save subscription history"  />
+        <fieldset class="rows">
+               <ol>
+            <li>
+            <label for="histstartdate">Subscription start date</label>
+            <input type="text" name="histstartdate" id="histstartdate" value="<!-- TMPL_VAR name="histstartdate" -->" /><div class="hint"> (start date of the 1st subscription)</div>
+            </li>
+            <li>
+            <label for="histenddate">Subscription end date</label>
+            <input type="text" name="histenddate" id="histenddate" value="<!-- TMPL_VAR name="histenddate" -->" /> <div class="hint">(if empty, subscription is still active)</div>
+            </li>
+            <li>
+                <label for="recievedlist">Received issues</label>
+            <textarea name="recievedlist" id="recievedlist" cols="60" rows="5"><!-- TMPL_VAR name="recievedlist" --></textarea>
+            </li>
+            <li>
+                <label for="missinglist">Missing issues</label>
+            <textarea name="missinglist" id="missinglist" cols="60" rows="5"><!-- TMPL_VAR name="missinglist" --></textarea>
+            </li>
+            <li>
+                <label for="opacnote">Note for OPAC</label>
+            <textarea name="opacnote" id="opacnote" cols="60" rows="5"><!-- TMPL_VAR name="opacnote" --></textarea>
+            </li>
+            <li>
+                <label for="librariannote">Note for staff</label>
+            <textarea name="librariannote" id="librariannote" cols="60" rows="5"><!-- TMPL_VAR name="librariannote" --></textarea>
+            </li>
+               </ol>
+        </fieldset>
+    <fieldset class="action"><input type="submit" value="Save subscription history"  /></fieldset>
     </form>
 </div>
 <!--/TMPL_IF-->