merge conference registration from drzb2011 branch
[angular-mojolicious.git] / templates / conference / Registration.html.ep
index 1d148a6..cc639a1 100644 (file)
-<script>
-
-if (typeof (console) === 'undefined') console = { debug: function() {} }; // mock console.debug
-
-function Registration($resource){
-       this.master = {
-               person: {
-                       name: '', surname: '', inst: '', email: '',
-               },
-               type: '', // just attending
-               work: {
-                       title: '',
-                       abstract: '',
-                       authors:[ { name:'', surname:'', inst:'', email:'' } ],
-               },
-               symposium: { organizers: [ {name:'', surname:'', inst:'', email:'' } ], work_nr: 1, },
-       };
-       this.last_saved = {};
-       this.Registration = $resource( '/data/conference/Registration/:id', { id:'' } );
-       this.Symposium = $resource( '/data/conference/Symposium/:id', { id:'' } );
-       this.reset();
-       this.$watch('$location.hashPath', this.hash_change);
-}
-Registration.$inject=['$resource'];
-
-Registration.prototype = {
-       hash_change: function() {
-               var id = this.$location.hashPath;
-console.debug( 'hash_change', id, this.registration.$id );
-               if ( id != this.registration.$id ) {
-                       if (id) {
-                               var self = this;
-                               this.registration = this.Registration.get({ id: id }, function(registration) {
-                                       self.last_saved = angular.copy(registration);
-                                       if ( registration.type == 'symposium' ) {
-                                               var s_id = registration.symposium.$id || registration.$id;
-                                               // first registration doesn't have symposium.$id, but we used same $id
-console.debug( 'load symposium ', s_id );
-                                               self.symposium = self.Symposium.get({ id: s_id });
-                                       }
-                               });
+       <script>
+
+       if (typeof (console) === 'undefined') console = { debug: function() {} }; // mock console.debug
+
+       function Registration($resource){
+               this.master = {
+                       person: {
+                               name: '', surname: '', inst: '', email: ''
+                       },
+                       type: 'participant',
+                       work: {
+                               title: '',
+                               abstract: '',
+                               authors:[ { name:'', surname:'', inst:'', email:'' } ],
+                               organizers: []
+                       },
+                       symposium: { 
+                               //organizers: [ {name:'', surname:'', inst:'', email:'' } ], 
+                               organizers: [],
+                               work_nr: 1
                        }
-                       else this.reset();
-               }
-       },
-       reset: function() {
-               console.debug( this.Registration );
-               var last = this.registration;
-               if ( last && last.type == 'symposium' ) {
-                       if ( last.$id ) last.symposium.work_nr++; // only if saved
-               }
-               this.registration = new this.Registration( this.master );
-               if ( last ) {
-                       this.registration.category  = last.category;
-                       this.registration.type      = last.type;
-                       this.registration.person    = last.person;
-
-                       if ( last.type == 'symposium' )
-                       this.registration.symposium = last.symposium;
-               }
-               this.last_saved = {};
-console.debug( 'reset', this.registration, this.$location.hashPath, last );
-       },
-       save: function(){
-               var self = this;
-               this.registration.$save(function(registration){
-                       self.$location.hashPath = registration.$id;
-
-                       // save symposium to separate resource
-                       if ( registration.type == 'symposium' ) {
-                               if ( ! self.symposium ) { 
-                                       self.registration.symposium.$id = registration.$id; // reuse $id of first work for symposium
-                                       self.symposium = new self.Symposium( registration.symposium );
-                                       self.symposium.works = [];
+               };
+               this.Registration = $resource( '/data/conference/Registration/:id', { id:'' } );
+               this.Symposium = $resource( '/data/conference/Symposium/:id', { id:'' } );
+               this.reset();
+               this.$watch('$location.hashPath', this.hash_change);
+       }
+       Registration.$inject=['$resource'];
+
+       Registration.prototype = {
+               hash_change: function() {
+                       var id = this.$location.hashPath;
+       console.debug( 'hash_change', id, this.registration.$id );
+                       if ( id != this.registration.$id ) {
+                               if (id) {
+                                       var self = this;
+                                       this.registration = this.Registration.get({ id: id }, function(registration) {
+                                               self.last_saved = angular.copy(registration);
+                                               if ( registration.type == 'symposium' ) {
+                                                       var s_id = registration.symposium.$id || registration.$id;
+                                                       // first registration doesn't have symposium.$id, but we used same $id
+       console.debug( 'load symposium ', s_id );
+                                                       self.symposium = self.Symposium.get({ id: s_id });
+                                               }
+                                       });
                                }
-                               registration.work.$id = registration.$id; // preserve $id
-                               self.symposium.works[ registration.symposium.work_nr - 1 ] = registration.work;
-console.debug('save_symposium', self.symposium );
-                               self.symposium.$save();
+                               else this.reset();
                        }
+               },
+               reset: function() {
+                       console.debug( this.Registration );
+                       var last = this.registration;
+                       if ( last && last.type == 'symposium' ) {
+                               if ( last.$id ) last.symposium.work_nr++; // only if saved
+                       }
+                       this.registration = new this.Registration( this.master );
+                       if ( last ) {
+                               this.registration.type      = last.type;
+                               this.registration.person    = last.person;
 
-                       self.last_saved = angular.copy(registration);
-               });
-       },
-};
-
-angular.validator.max_length = function(input, len) {
-       var ok = input.length <= len;
-console.debug( 'max_length', ok, input.length, len );
-       return ok ? '' : 'must be shorter than '+len+' characters';
-}
-
-</script>
-
+                               if ( last.type == 'symposium' )
+                               this.registration.symposium = last.symposium;
+                       }
+                       this.last_saved = angular.copy( this.registration ); // FIXME was: {};
+       console.debug( 'reset', this.registration, this.$location.hashPath, last );
+               },
+               save: function(){
+                       var self = this;
+                       this.registration.$save(function(registration){
+                               self.$location.hashPath = registration.$id;
+
+                               // save symposium to separate resource
+                               if ( registration.type == 'symposium' ) {
+                                       if ( ! self.symposium ) { 
+                                               self.registration.symposium.$id = registration.$id; // reuse $id of first work for symposium
+                                               self.symposium = new self.Symposium( registration.symposium );
+                                               self.symposium.works = [];
+                                       }
+                                       registration.work.$id = registration.$id; // preserve $id
+                                       self.symposium.works[ registration.symposium.work_nr - 1 ] = registration.work;
+       console.debug('save_symposium', self.symposium );
+                                       self.symposium.$save();
+                               }
 
-<style type="text/css">
+                               self.last_saved = angular.copy(registration);
+                       });
+               }
+       };
 
-body {
-       background: #F6F6F6;
-       margin: 40px;
-       font-family: Arial;
-       color: #374E5A;
+       angular.validator.max_length = function(input, len) {
+               var ok = input.length <= len;
+       console.debug( 'max_length', ok, input.length, len );
+               return ok ? '' : 'must be shorter than '+len+' characters';
+       }
+
+       </script>
+
+
+       <style type="text/css">
+
+       body {
+               background: #F6F6F6;
+               margin: 40px;
+               font-family: Arial;
+               color: #374E5A;
+               font-size: 14px;
+               line-height: 16px;
+       }
+
+
+       label {
+               display: block;
+               color: #D74F25;
+               color: #374E5A;
+               color: #afafaf;
+               margin-top: 10px;
+               font-size: 14px;
+               font-family: Arial;
+       }
+       h1 {
+       /*      margin-bottom: 6px;     */
+               padding-left: 20px;
+               font: 18px arial;
+               color: #0c1426;
+               text-decoration: none;
+               display: block;
+               background: url(http://mjesec.ffzg.hr/drzb2011/images/kvadrat.gif) no-repeat left;
+               border-bottom: 1px solid #CCC;
+       }
+h2, h3 {
+       margin-top: 60px;
        font-size: 14px;
-       line-height: 16px;
-}
-label, h2 {
-       display: block;
-       color: #D74F25;
-       color: #374E5A;
-       color: #afafaf;
-       margin-top: 10px;
-       font-size: 14px;
-       font-family: Arial;
+       padding: 2px 0;
+       border-bottom: 2px solid #D74F25;
+       border-bottom: 1px solid #46d0fe;
 }
 
-h2 {
-       margin-top: 40px;
-       color: #374E5A;
-       color: #D74F25;
+h3 {
+       margin-top: 20px;
 }
 
 a {
@@ -127,59 +147,43 @@ label {
        color: #374E5A;
 }
 
-.fl {
+.input, .inputOrg {
        color: #afafaf;
        float: left;
        margin: 2px;
        padding: 0 6px;
 }
 
-.fl1 {
+.inputOrg {
+       color:  #374E5A;
+}
+
+.input1 {
        width: 40.8em;
 }
 
-.fl2 {
+.input2 {
        width: 8em;
 }
 
-.fl3 {
+.input3 {
        width: 13em;
 }
-
-.flClear {
-       clear: both;
-}
-
-.labelTop .pname, .labelTop .name, .labelTop .surname, .labelTop .pinst, .labelTop .email, .labelTop .city, .labelTop .address, .labelTop .contact {
-       color: #afafaf;
-       float: left;
-       margin: 2px;
-       padding: 0 6px;
-}
-
-.pname, .name, .surname, .email {
+.input4 {
        width: 10em;
 }
 
-.pinst {
+.input5 {
        width: 21.4em;
 }
-
-.address {
-       width: 14.1em;
-}
-
-.city {
-       width: 9em;
+.input6 {
+       width: 6.3em;
 }
 
-.contact {
-       width: 10em;
+.clear {
+       clear: both;
 }
 
-.title, .summary {
-       width: 93%;
-}
 
 .authors {
        clear: both;
@@ -193,8 +197,7 @@ label {
        font-size: 90%;
 }
 
-input, textarea
-{
+input, textarea {
        font: 14px arial;
        color: #000000;
        border: solid 1px #dedede;
@@ -208,31 +211,35 @@ input:focus, textarea:focus
        background: #ffffff;
        font-family: arial;
        color: #000000;
-       border: 1px solid #46d0fe;
+/*     border: 1px solid #46d0fe; */
 }
 
-input.ng-validation-error {
-       border: 1px solid #D74F25;
+.ng-validation-error {
        border: 1px solid #FF6666;
        border: 1px solid #EDC8BC;
        border: 1px solid #FF9966;
        border: 1px solid #EAB3A2;
+       border: 1px solid #D74F25;
+       border: 1px solid #DC6844;
+       border: 1px solid #DE7F61;
 }
 
-.warrning {
-       color: #FF6666;
+.ng-exception {
+       border: 0;
 }
 
-.sworks {
-       margin-top: 20px;
+
+#work, #submission {
+       margin-bottom: 20px;
 }
 
-.save {
-       margin-top: 10px;
+.button {
+       margin-top: 20px;
+       width: 40.8em;
 }
 
-.save input 
-{
+.button input {
+       margin-bottom: 10px;
        float: left;
        color: #ffffff;
        display: block;
@@ -240,189 +247,428 @@ input.ng-validation-error {
        background: #d74f25;
 }
 
-.save input:hover
-{
-       background: #dc6844;
+.button input:hover, .gohome:hover {
+       /* background: #dc6844; */
 }
 
+.button2 input {
+       background: #F6F6F6;
+       color: #374E5A;
+       border: 1px solid #d74f25;
+       display: inline;
+}
+
+
+.gohome  {
+       float: left;
+       color: #374E5A;
+       border: 1px solid #d74f25;
+       text-decoration: none;
+       background: #f6f6f6;
+       padding: 7px;
+       margin-top: 20px;
+       font: 14px arial;
+       border: solid 1px #dedede;
+       border: solid 1px #f6f6f6;
+}
+
+.gohome a {
+}
+
+.gohome a:hover {
+       text-decoration: none;
+}
+
+.list {
+       margin-top: 20px;
+       font-weight: bold;
+}
+
+.warrning {
+       color: #FF6666;
+}
+
+.sworks {
+       margin-top: 20px;
+}
+
+
 .newWork {
        clear: left;
        margin-top: 50px;
 }
 .saved {
-       color: #D74F25; 
+       margin-bottom: 20px;
        margin-top: 20px;
 }
-#buttons {
+.saved2 {
+       color: #374E5A;
+       color: #d74f25;
+       font-weight: bold;
+       font-style: italic;
+       display: block;
+}
+.saved3 {
+       color: #374E5A;
+       font-weight: normal;
        margin-top: 20px;
 }
+.footer {
+       height: 10px;
+}
+hr {
+       border: 1px solid #ccc;
+}
 </style>
 
 
 
 <h1>Registration and Proposal Submission</h1>
 
-<div ng:controller="Registration" ng:init="$window.$root = this;">
 
-<div id="choose" ng:show="! registration.symposium.$id">
-       <h2>Please choose:</h2>
-       <input type="radio" name="registration.category" value="participant">Just attending the conference<br/>
-       <input type="radio" name="registration.category" value="submission">I want to submit a work<br/>
+
+
+<div class="root" ng:controller="Registration" ng:init="$window.$root = this;">
+
+
+<div ng:show="! registration.$id && ! symposium.$id">
+<p>
+All participants (presenters, coauthors and visitors) have to register via on-line register system.
+</p>
+
+<p>
+Abstract of oral presentation/poster has to be submitted only by first author or by presenting coauthor. Other coauthors do not have to submit the abstract, only register.
+</p>
+
+<p>
+The organizers of symposia have to submit not only the symposium’s abstract, but the abstracts of every single paper within it (it has to be four of them). Authors of papers within symposium DO NOT submit their abstracts on their own, but register as symposium participants.
+</p>
+
+<p>
+The organizers of round tables have to submit only abstract of the round table, while its participants have to register as round table participants.
+</p>
+
+<p>
+The abstracts length should be between 1800 and 2000 characters (space included). 
+</p>
+
+<p>
+One person can be author of maximum three papers, only one of them as first/presenting/single author.
+</p>
+
+
+
 </div>
 
-<div id="submission" ng:show="registration.category == 'submission'">
-       <div ng:show="! registration.symposium.$id">
-               <h2>Choose submittion type:</h2>
-               <input type="radio" name="registration.type" value="symposium" ng:required>Symposia<br/>
-               <input type="radio" name="registration.type" value="lecture" ng:required>Oral presentation<br/>
-               <input type="radio" name="registration.type" value="poster" ng:required>Poster presentation<br/>
-               <input type="radio" name="registration.type" value="round" ng:required>Round table discussion<br/>
+<!--
+<a name="{{$location.hash}}" >bla</a>
+-->
+
+<div style="margin-bottom: 40px" ng:show="registration.$id && last_saved.$equals(registration)">
+
+
+</div>
+<div ng:show="registration.$id || symposium">
+       <h2>{{registration.person.name}} {{registration.person.surname}}</h2>
+       <!--
+       <label>Institution: {{registration.person.inst}}</label>
+       <label>Address: {{registration.person.address1}}, {{registration.person.city}}, {{registration.person.zip}}, {{registration.person.country}}</label>
+       -->
+       <label ng:show="registration.type == 'participant'">Registration type: Registration only</label>
+       <label ng:show="registration.type == 'accomp'">Registration type: Accompanying person</label>
+       <label ng:show="registration.type == 'student'">Registration type: Student</label>
+       <label ng:show="registration.type == 'sparticipant'">Registration type: Symposium participant<span ng:show="registration.student == true">, student</span></label>
+       <label ng:show="registration.type == 'round'">Registration type: Round table organizer<span ng:show="registration.student == true">, student</span><p><b>Round table topic:</b> {{registration.work.title}}</label>
+       <label ng:show="registration.type == 'lecture'">Registration type: Oral presentation<span ng:show="registration.student == true">, student</span></label>
+       <label ng:show="registration.type == 'poster'">Registration type: Poster presentation<span ng:show="registration.student == true">, student</span></label>
+       <label ng:show="registration.type == 'poster' || registration.type == 'lecture'"><b>Title: </b>{{registration.work.title}}</label>
+       <div ng:show="registration.type == 'symposium'">
+               <p>Symposium organizer</p>
+               <label><b>Symposium topic: </b><i>{{registration.symposium.title}}</i></label>
+               <!--
+               <label>Summary:</label> {{registration.symposium.abstract}}
+               <br><br>
+               -->
+               <blockquote>
+               <label>Submitted papers:</label>
+               <ol>
+               <li ng:repeat="w in symposium.works">
+               <!--
+               <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
+               -->
+               <span ng:show="registration.$id != w.$id">{{w.title}}</span>
+               <b ng:show="registration.$id == w.$id">{{w.title}}</b>
+               </li>
+               </ol>
+               </blockquote>
+       </div>
+</div>
+<!--
+<div ng:show="registration.$id || symposium">
+       <h2>Contact Information</h2>
+       <label>{{registration.person.name}} {{registration.person.surname}}</label>
+       <label>{{registration.person.inst}}</label>
+       <label>{{registration.person.address1}}</label>
+       <label>{{registration.person.city}}, {{registration.person.zip}}, {{registration.person.country}}</label>
+       <label ng:show="registration.type == 'participant'"><h3>Registration type</h3> no paper</label>
+       <div ng:show="registration.type == 'symposium'">
+               <p>Symposium organizer</p>
+               <h3>Symposium</h3>
+               <label>Topic:</label><i>{{registration.symposium.title}}</i>
+               <label>Summary:</label> {{registration.symposium.abstract}}
+               <br><br>
+               <label>Submitted papers for this symposium:</label>
+               <ol>
+               <li ng:repeat="w in symposium.works">
+               <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
+               <span ng:show="registration.$id != w.$id">{{w.title}}</span>
+               <b ng:show="registration.$id == w.$id">{{w.title}}</b>
+               </li>
+               </ol>
+       </div>
+</div>
+-->
+
+
+<div id="submission" ng:show="! registration.$id && ! symposium.$id">
+       <div>
+               <h2>Registration Type</h2>
+               <label><input type="radio" name="registration.type" value="participant" ng:required>Registration only</label>
+               <label><input type="radio" name="registration.type" value="sparticipant" ng:required>Symposium/round table participant</label>
+               <label><input type="radio" name="registration.type" value="symposium" ng:required>Symposium organizer</label>
+               <label><input type="radio" name="registration.type" value="round" ng:required>Round table organizer</label>
+               <label><input type="radio" name="registration.type" value="lecture" ng:required>Oral presentation</label>
+               <label><input type="radio" name="registration.type" value="poster" ng:required>Poster presentation</label>
        </div>
+               <label><input type="radio" name="registration.type" value="student" ng:required ng:change="registration.dinner = 'no'">Student registration only</label>
+               <label><input type="radio" name="registration.type" value="accomp" ng:required>Accompanying person</label>
 </div>
-<div id="participant" ng:show="registration.category == 'participant' || registration.type">
+
+<div id="participant" ng:show="! registration.$id && ! symposium.$id">
+
+       
        <h2>Contact Information</h2>
        <div class="labelTop">
-               <div class="pname">First name</div>
-               <div class="pname">Surname</div>
+               <div class="input input4">First name</div>
+               <div class="input input4">Surname</div>
        </div>
        <div style="clear: both">
-               <input class="pname" name="registration.person.name" ng:required>
-               <input class="pname" name="registration.person.surname">
+               <input class="input4" name="registration.person.name" ng:required>
+               <input class="input4" name="registration.person.surname" ng:required>
        </div>
        <div class="labelTop">
-               <div class="pinst">Institution</div>
+               <div class="input input5">Institution</div>
        </div>  
        <div style="clear: both">
-               <input class="pinst" name="registration.person.inst">
+               <input class="input5" name="registration.person.inst">
        </div>
        <div class="labelTop">
-               <div class="address">Address</div>
+               <div class="input input5">Address</div>
        </div>  
        <div style="clear: both">
-               <input class="address" name="registration.person.address1">
-               <input class="address" name="registration.person.address2">
+               <input class="input5" name="registration.person.address1" ng:required>
        </div>
        <div class="labelTop">
-               <div class="city">City</div>
-               <div class="city">ZIP</div>
-               <div class="city">Country</div>
+               <div class="input input6">City</div>
+               <div class="input input6">ZIP</div>
+               <div class="input input6">Country</div>
        </div>
        <div style="clear: both">
-               <input class="city" name="registration.person.city">
-               <input class="city" name="registration.person.zip">
-               <input class="city" name="registration.person.country">
+               <input class="input6" name="registration.person.city" ng:required>
+               <input class="input6" name="registration.person.zip">
+               <input class="input6" name="registration.person.country">
        </div>
        <div class="labelTop">
-               <div class="contact">E-mail</div>
-               <div class="contact">Phone number</div>
+               <div class="input input4">E-mail</div>
+               <div class="input input4">Phone number</div>
        </div>
        <div style="clear: both">
-               <input class="contact" name="registration.person.email" ng:validate="email" ng:required>
-               <input class="contact" name="registration.person.phone">
+               <input class="input4" name="registration.person.email" ng:validate="email" ng:required>
+               <input class="input4" name="registration.person.phone">
+       </div>
+       <div ng:show="registration.type == 'lecture' || registration.type == 'poster' || registration.type == 'sparticipant' || registration.type == 'symposium' || registration.type == 'round'">
+               <br><input type="checkbox" name="registration.student">Check this box if you are student.
+       </div>
+       <div style="clear: both; margin-top: 20px;">
+               Will you join us for the welcome reception on Thursday at 20 hrs?<br/>
+               <input type="radio" name="registration.reception" value="yes">Yes
+               <input type="radio" name="registration.reception" value="no">No
+       </div>
+       <div ng:show="registration.type != 'student'" style="clear: both; margin-top: 20px;">
+               Will you join us for the conference dinner on Friday at 20 hrs? (Dinner is included in the regostration fee.)<br/>
+               <input type="radio" name="registration.dinner" value="yes">Yes
+               <input type="radio" name="registration.dinner" value="no">No
        </div>
+       
 </div>
 
 
+       
+       <div ng:show="registration.type == 'sparticipant' && ! last_saved.$id">
+               <h2>Symposium/round table topic</h2>
+               <input class="input1" name="registration.sympattend" ng:required>
+       </div>
 
-<div id="work" ng:show="registration.type">
-       <div ng:show="registration.type == 'symposium'">
 
-               <h2>Symposia Submission</h2>
-               <label>Topic:</label>
-                       <input class="fl1" name="registration.symposium.title" ng:required>
-               <label>Organizer:</label>
-               <div>
-                       <div class="fl fl2">First name</div><div class="fl fl2">Surname</div><div class="fl fl3">Institution</div><div class="fl fl2">E-mail</div>
+<div id="work" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp'">
+<div ng:show="registration.type == 'symposium' && registration.symposium.work_nr < 4 && ! symposium.$id">
+
+       <h2>Symposium</h2>
+       <label for="registration.symposium.title">Topic:</label>
+               <input class="input1" name="registration.symposium.title" ng:required>
+       <label>Organizer:</label>
+               <!--
+               <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
+               -->
+               <div class="inputOrg"><span ng:show="registration.person.name">{{registration.person.name}} {{registration.person.surname}}</span><span ng:show="registration.person.inst">, {{registration.person.inst}}</span><span ng:show="registration.person.email">, {{registration.person.email}}</span></div>
+               <div class="clear" ng:repeat="organizer in registration.symposium.organizers">
+               <input class="input2" name="organizer.name" ng:required>
+               <input class="input2" name="organizer.surname" ng:required>
+               <input class="input3" name="organizer.inst" >
+               <input class="input2" name="organizer.email" ng:required ng:validate="email">
+               <a href="" ng:click="registration.symposium.organizers.$remove(organizer)">X</a>
                </div>
-               <div class="flClear" ng:repeat="organizer in registration.symposium.organizers">
-                       <input class="fl2" name="organizer.name" ng:required>
-                       <input class="fl2" name="organizer.surname" ng:required>
-                       <input class="fl3" name="organizer.inst" >
-                       <input class="fl2" name="organizer.email" ng:required>
-                       <a href="" ng:click="registration.symposium.organizers.$remove(organizer)">X</a>
+               <div class="clear"><a class="addPerson" href="" ng:click="registration.symposium.organizers.$add()">Add another organizer</a></div>
+       <label>Summary (2000 characters max.)</label>
+               <textarea class="input1" name="registration.symposium.abstract" rows="10" ng:validate="max_length:2000" ng:required></textarea>
+               
+               <div ng:show="symposium">
+                       <b>Symposium:</b> {{registration.symposium.title}}
+                       <blockquote>
+                       <label>Submitted papers for this symposium:</label>
+                       <ol>
+                       <li ng:repeat="w in symposium.works">
+                       <!--
+                       <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
+                       -->
+                       <span ng:show="registration.$id != w.$id">{{w.title}}</span>
+                       <b ng:show="registration.$id == w.$id">{{w.title}}</b>
+                       </li>
+                       </ol>
+                       </blockquote>
                </div>
-               <a class="addPerson" href="" ng:click="registration.symposium.organizers.$add()">Add another organizer</a>
-               <label>Summary:</label>
-                       <textarea class="fl1" name="registration.symposium.abstract" rows="5" ng:validate="max_length:2000"></textarea>
+</div>
+
+<div ng:show="registration.type && ! last_saved.$id">
+
+<!--
                <div ng:show="symposium">
-                       <label>List of already submitted works</label>
+                       <b>Symposium:</b> {{registration.symposium.title}}
+                       <blockquote>
+                       <label>Submitted papers for this symposium:</label>
                        <ol>
                        <li ng:repeat="w in symposium.works">
                        <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
                        <b ng:show="registration.$id == w.$id">{{w.title}}</b>
                        </li>
                        </ol>
+                       </blockquote>
                </div>
-       </div>
-        <h2 ng:show="registration.type == 'symposium'">Work no. {{registration.symposium.work_nr}}.  in <i>{{registration.symposium.title}}</i> </h2>
-        <h2 ng:show="registration.type == 'lecture'">Oral Presentation Sumbission</h2>
-        <h2 ng:show="registration.type == 'poster'">Poster Presentation Sumbission</h2>
-        <h2 ng:show="registration.type == 'round'">Round Table Disscussion Sumbission</h2>
-
-       <label>Title:</label>
-               <input class="fl1" name="registration.work.title" ng:required>
-       <label>Authors</label>
+-->
+<h3 ng:show="registration.type == 'symposium'">Add Symposium Paper ({{registration.symposium.work_nr}})</h3>
+<h2 ng:show="registration.type == 'lecture'">Oral Presentation Sumbission</h2>
+<h2 ng:show="registration.type == 'poster'">Poster Presentation Sumbission</h2>
+<h2 ng:show="registration.type == 'round'">Round Table Disscussion Sumbission</h2>
+
+
+<label>Title:</label>
+       <input class="input1" name="registration.work.title" ng:required>
+<div ng:show="registration.type != 'round'">
+<label>Authors</label>
        <div>
-               <div class="fl fl2">First name</div><div class="fl fl2">Surname</div><div class="fl fl3">Institution</div><div class="fl fl2">E-mail</div>
+               <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
        </div>
-       <div class="flClear" ng:repeat="author in registration.work.authors">
-               <input class="fl2" name="author.name" ng:required>
-               <input class="fl2" name="author.surname" ng:required>
-               <input class="fl3" name="author.inst" >
-               <input class="fl2" name="author.email" ng:required>
+       <div class="clear" ng:repeat="author in registration.work.authors">
+               <input class="input2" name="author.name" ng:required>
+               <input class="input2" name="author.surname" ng:required>
+               <input class="input3" name="author.inst" >
+               <input class="input2" name="author.email" ng:required ng:validate="email">
                <a href="" ng:click="registration.work.authors.$remove(author)">X</a>
        </div>
        <a class="addPerson" href="" ng:click="registration.work.authors.$add()">Add another author</a>
+</div>
+<div ng:show="registration.type == 'round'">
+<label>Organizer:</label>
+       <!--
+       <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
+       -->
+               <div class="inputOrg"><span ng:show="registration.person.name">{{registration.person.name}} {{registration.person.surname}}</span><span ng:show="registration.person.inst">, {{registration.person.inst}}</span><span ng:show="registration.person.email">, {{registration.person.email}}</span></div>
+       <div class="clear" ng:repeat="organizer in registration.work.organizers">
+               <input class="input2" name="organizer.name" ng:required>
+               <input class="input2" name="organizer.surname" ng:required>
+               <input class="input3" name="organizer.inst" >
+               <input class="input2" name="organizer.email" ng:required ng:validate="email">
+               <a href="" ng:click="registration.work.organizers.$remove(organizer)">X</a>
+       </div>
+       <div class="clear"><a class="addPerson" href="" ng:click="registration.work.organizers.$add()">Add another organizer</a></div>
+</div>
 
+<label>Abstract (2000 characters max.):</label>
+       <textarea class="input1" name="registration.work.abstract" rows="10" ng:validate="max_length:2000" ng:required></textarea>
 
-       <label>Summary:</label>
-               <textarea class="fl1" name="registration.work.abstract" rows="5" ng:validate="max_length:2000"></textarea>
-</div>
-<div ng:show="registration.$id && registration.type == 'symposium'" class="saved">
-       <i>{{registration.symposium.work_nr}}. {{registration.work.title}}</i> has been submited successfully.<br>
+
+</div> <!-- ng:show="registration.type" -->
 </div>
 
-<!--
-<div id="buttons" ng:show="registration.category == 'participant' || registration.type">
--->
-<div id="buttons" ng:show="registration.category == 'participant' || registration.type">
-       <span ng:show="$invalidWidgets.visible() == 0">
-       <input type="submit" value="Save" ng:click="save();" ng:show="! last_saved.$equals(registration)">
-       </span>
-       <span ng:show="registration.work && registration.work.$id">
-               <input type="reset" value="Add another work" ng:click="reset()">
-               or <a href="http://psihologija.ffzg.hr/drzb2011/">go to conference home page</a>.<br>
-       </span>
-
-       <div ng:show="$invalidWidgets.visible() &gt; 0" style="color:red; margin-top: 20px">Please fill all required fields ({{$invalidWidgets.visible()}} fields left).
-       </div>
+<div class="button" ng:show="! last_saved.$equals(registration) && $invalidWidgets.visible() == 0 && (symposium.$id || (registration.reception != null && registration.dinner != null))">
+<input type="submit" value="Save" ng:click="save();" ng:show="! last_saved.$equals(registration) && $invalidWidgets.visible() == 0" >
 </div>
 
-<div ng:show="registration.$id" style="margin-bottom: 40px">
-       <span class="saved" ng:show="registration.category == 'participant'">Your registration has been submitted successfully.<br><br>
-       </span>
-       <span class="saved" ng:show="registration.type != 'symposium' && registration.category != 'participant'">
-       Your work has been submitted successfully.<br><br>
-       </span>
-       Please review your data, correct and save if needed or <a href="http://psihologija.ffzg.hr/drzb2011/">go to conference home page</a>.<br><br>
-       Registration ID: <a href="#{{registration.$id}}">{{registration.$id}}</a>.<br>You can bookmark this page and review it later.
+<div ng:show="$invalidWidgets.visible() &gt; 0 || (! symposium.$id && (registration.dinner == null || registration.reception == null))" style="color:red; margin-top: 20px">Please fill all required fields correctly. 
+<span ng:show="$invalidWidgets.visible() &gt; 0">Fields with orange border call for your attention. <!-- - {{$invalidWidgets.visible()}} left. --></span>
+<span ng:show="(registration.reception == null || registration.dinner == null) && ! symposium.$id && registration.type != 'student'">
+Decide about going to welcome reception and dinner.</span>
+<span ng:show="(registration.reception == null || registration.dinner == null) && ! symposium.$id && registration.type == 'student'">
+Decide about going to welcome reception.</span>
 </div>
 
-<input type="reset" value="Another work proposal to submit?" ng:click="reset()" ng:show="registration.$id">
 
+<div style="margin-bottom: 40px" ng:show="registration.$id && last_saved.$equals(registration)">
+
+       <div class="saved" ng:show="registration.type == 'participant' || registration.type == 'sparticipant' || registration.type == 'student' || registration.type == 'accomp' && ! symposium">
+               <span class="saved2">Thank you! Your registration has been submitted successfully!</span>
+               <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read registration fee payment instructions</a></div>
+               <div class="gohome" ng:show="registration.type == 'student' || registration.student == true">
+                       You must provide a proof of your student status by e-mail sent to <a href="mailto:drzb@ffzg.hr">drzb@ffzg.hr</a>
+               </div>
+               <br><br>
+       </div>
+       <div class="saved" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp' && registration.symposium.work_nr == 4 && last_saved.$id">
+               <span class="saved2">Thank you. Your proposal has been submitted successfully! <br></span>
+               <span class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read conference fee payment instructions</a></span>
+               
+       </div>
+       <div class="button button2" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp' && last_saved.$id && ! symposium">
+               <span class="saved2">Thank you. Your proposal has been submitted successfully! <br></span>
+               <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read registration fee payment instructions</a></div>
+               <div class="gohome" ng:show="registration.type == 'student' || registration.student == true">
+                       You must provide a proof of your student status by e-mail sent to <a href="mailto:drzb@ffzg.hr">drzb@ffzg.hr</a>
+               <br>
+       </div>
+       
+</div>
+       <div class="button button2" ng:show="last_saved.$id && symposium.$id && registration.symposium.work_nr < 4">
+               <input type="reset" value="Submit another paper" ng:click="reset()"> 
+       </div>
+<!--
+<div class="button2" ng:show="registration.$id && registration.type != 'participant' && registration.type != 'sparticipant' && last_saved.$equals(registration)">
+       <input type="reset" value="Submit another paper" ng:click="reset()">
+       <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011/">Go to conference home page</a></div>
+</div>
+-->
+
+</div>
 <!--
 <div ng:show="registration.$id">
 Permalink to <a href="#{{registration.$id}}">DRZB2011 registration</a> which you can bookmark
 </div>
 -->
+<input type=checkbox name=debug style="float: right; clear: both">
+<pre ng:show="debug">
 
-<hr>
-Debug Information:
-{{$window.location.href}}
-<pre>
-registration = {{registration}}
+dirty={{! last_saved.$equals(registration)}} invalid={{$invalidWidgets.visible()}}
 
-dirty={{! last_saved.$equals(registration)}}
+registration = {{registration}}
 
 last_saved = {{last_saved}}
 
@@ -433,5 +679,3 @@ symposium = {{symposium}}
 $id={{$id}}
 registration.$id={{registration.$id}}
 </pre>
-
-</div>