Merge commit 'origin/master' into fusionax
[platal.git] / htdocs / javascript / profile.js
index 7f49044..8d1544a 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *  Copyright (C) 2003-2008 Polytechnique.org                              *
+ *  Copyright (C) 2003-2009 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -29,6 +29,7 @@ function wizPage_onLoad(id)
         while ($('.' + prefix + i).length != 0) {
             i++;
         }
+        i--;
         for (var j = 0; j < i; j++) {
             prepareType(j);
         }
@@ -50,8 +51,10 @@ function wizPage_onLoad(id)
         for (var i = 0 ; document.getElementById('job_' + i) != null ; ++i) {
             updateJobSecteur(i, 'job_' + i, 'jobs[' + i + ']',
                              document.forms.prof_annu["jobs[" + i + "][ss_secteur]"].value);
+            updateJobSousSecteur(i, 'job_' + i, 'jobs[' + i + ']',
+                             document.forms.prof_annu["jobs[" + i + "][sss_secteur]"].value);
         }
-        registerEnterpriseAutocomplete(-1);
+        setTimeout('registerEnterpriseAutocomplete(-1)', 100);
         break;
     }
 }
@@ -104,25 +107,63 @@ function prepareType(i)
     selectType(document.forms.prof_annu["edus[" + i + "][degreeid]"], document.forms.prof_annu["edu_" + i + "_tmp"].value);
 }
 
+function displayNamesAdvanced()
+{
+    $('.names_advanced').show();
+}
+
 function addSearchName()
 {
-  var i = 0;
-  while (document.getElementById('search_name_' + i) != null) {
-      i++;
-  }
-  $('#add_search_name').before('<div id="search_name_' + i + '" style="padding:2px" class="center"></div>');
-  Ajax.update_html('search_name_' + i, 'profile/ajax/searchname/' + i,function(){
-    $('#search_name_'+i+' input')[1].focus();
-  });
+    var i = 0;
+    while ($('#search_name_' + i).length != 0) {
+        i++;
+    }
+    Ajax.update_html('search_name_' + i, 'profile/ajax/searchname/' + i, function(data){
+        $('#searchname').before(data);
+        changeNameFlag(i);
+    });
 }
 
 function removeSearchName(i)
 {
-  if (document.getElementById('search_name_'+i+'_new') != null) {
-    $('#search_name_'+i).remove();
-  } else {
-    removeObject('search_name_'+i, 'search_name['+i+']');
-  }
+    $('#search_name_' + i).remove();
+    updateNameDisplay();
+}
+
+function changeNameFlag(i)
+{
+    $('#flag_' + i).remove();
+    var typeid = $('#search_name_' + i).find('select').val();
+    var type   = $('#search_name_' + i).find('select :selected').text();
+    if ($('[@name=sn_type_' + typeid + '_' + i + ']').val() > 0) {
+        $('#flag_cb_' + i).after('<span id="flag_' + i + '">&nbsp;' +
+            '<img src="images/icons/flag_green.gif" alt="site public" title="site public" />' +
+            '<input type="hidden" name="search_names[' + i + '][pub]" value="1"/>' +
+            '<input type="hidden" name="search_names[' + i + '][typeid]" value="' + typeid + '"/>' +
+            '<input type="hidden" name="search_names[' + i + '][type]" value="' + type + '"/></span>');
+    } else {
+        $('#flag_cb_' + i).after('<span id="flag_' + i + '">&nbsp;' +
+            '<img src="images/icons/flag_red.gif" alt="site privĂ©" title="site privĂ©" />' +
+            '<input type="hidden" name="search_names[' + i + '][typeid]" value="' + typeid + '"/>' +
+            '<input type="hidden" name="search_names[' + i + '][type]" value="' + type + '"/></span>');
+    }
+}
+
+function updateNameDisplay()
+{
+    var searchnames = '';
+    for (var i = 0; i < 10; i++) {
+        if ($('#search_name_' + i).find(':text').val()) {
+            searchnames += $('#search_name_' + i).find('[name*=typeid]').val() + ';';
+            searchnames += $('#search_name_' + i).find(':checked').length-1 + ';';
+            searchnames += $('#search_name_' + i).find(':text').val() + ';;';
+        }
+    }
+    Ajax.update_html(null, 'profile/ajax/buildnames/' + searchnames, function(data){
+        var name = data.split(';');
+        $('#public_name').html(name[0]);
+        $('#private_name').html(name[0] + name[1]);
+    });
 }
 
 function delNationality(i)
@@ -349,8 +390,7 @@ function validGeoloc(id, pref)
     document.forms.prof_annu[pref + "[parsevalid]"].value = "1";
     document.forms.prof_annu[pref + "[text]"].value = document.forms.prof_annu[pref + "[geoloc]"].value;
     document.forms.prof_annu[pref + "[cityid]"].value = document.forms.prof_annu[pref + "[geoloc_cityid]"].value;
-    attachEvent(document.forms.prof_annu[pref + "[text]"], "click",
-                function() { document.forms.prof_annu[pref + "[text]"].blur(); });
+    $(document.forms.prof_annu[pref + "[text]"]).click(function() { document.forms.prof_annu[pref + "[text]"].blur(); });
     document.forms.prof_annu[pref + "[text]"].className = '';
 }
 
@@ -360,8 +400,7 @@ function validAddress(id, pref)
     document.getElementById(id + '_geoloc_error').style.display = 'none';
     document.getElementById(id + '_geoloc_valid').style.display = 'none';
     document.forms.prof_annu[pref + "[parsevalid]"].value = "1";
-    attachEvent(document.forms.prof_annu[pref + "[text]"], "click",
-                function() { document.forms.prof_annu[pref + "[text]"].blur(); });
+    $(document.forms.prof_annu[pref + "[text]"]).click(function() { document.forms.prof_annu[pref + "[text]"].blur(); });
     document.forms.prof_annu[pref + "[text]"].className = '';
 }
 
@@ -503,7 +542,22 @@ function updateJobSecteur(nb, id, pref, sel)
     if (secteur == '') {
         secteur = '-1';
     }
-    Ajax.update_html(id + '_ss_secteur', 'profile/ajax/secteur/' +nb + '/' + secteur + '/' + sel);
+    Ajax.update_html(id + '_ss_secteur', 'profile/ajax/secteur/' + nb + '/' + id + '/' + pref + '/' + secteur + '/' + sel);
+}
+
+function updateJobSousSecteur(nb, id, pref, sel)
+{
+    var ssecteur = document.forms.prof_annu[pref + '[ss_secteur]'].value;
+    if (ssecteur == '') {
+        ssecteur = '-1';
+    }
+    Ajax.update_html(id + '_sss_secteur', 'profile/ajax/ssecteur/' + nb + '/' + ssecteur + '/' + sel);
+}
+
+function displayAllSector(id)
+{
+    $('.sector_text_' + id).remove();
+    $('.sector_' + id).show();
 }
 
 function makeAddJob(id)
@@ -525,6 +579,10 @@ function addJob()
     $.get(platal_baseurl + 'profile/ajax/job/' + i, makeAddJob(i));
 }
 
+function addEntreprise(id)
+{
+    $('.entreprise_' + id).toggle();
+}
 
 // Skills
 
@@ -619,13 +677,13 @@ function updateSecteur()
         document.getElementById('ss_secteur_sel').innerHTML = '';
         return;
     }
-    $.get(platal_baseurl + 'profile/ajax/secteur/-1/' + secteur,
+    $.get(platal_baseurl + 'profile/ajax/secteur/-1/0/0/' + secteur,
           function(data) {
-          data = '<a href="javascript:addSecteur()" style="display: none; float: right" id="secteurs_add">'
-          +  '  <img src="images/icons/add.gif" alt="" title="Ajouter ce secteur" />'
-          +  '</a>' + data;
-          document.getElementById('ss_secteur_sel').innerHTML = data;
-          attachEvent(document.forms.prof_annu['jobs[-1][ss_secteur]'], 'change', updateSSecteur);
+              data = '<a href="javascript:addSecteur()" style="display: none; float: right" id="secteurs_add">'
+                     +  '  <img src="images/icons/add.gif" alt="" title="Ajouter ce secteur" />'
+                     +  '</a>' + data;
+              document.getElementById('ss_secteur_sel').innerHTML = data;
+              $(document.forms.prof_annu['jobs[-1][ss_secteur]']).change(updateSSecteur);
           });
 }
 
@@ -671,6 +729,20 @@ function registerEnterpriseAutocomplete(id)
         }
       }
     );
+
+    $(".sector_name").each(
+      function() {
+        if (id == -1 || this.name == "jobs[" + id + "][sss_secteur_name]") {
+            $(this).autocomplete(platal_baseurl + "search/autocomplete/sss_secteur",
+                                 {
+                                   selectOnly:1,
+                                   field:this.name,
+                                   matchSubset:0,
+                                   width:$(this).width()
+                                 });
+        }
+      }
+    );
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: