var MarchePublicClass=new Class({options:{starturl:null,nbperpage:5,resumemax:512,liste:"liste",bpsuivant:"",bpprecedent:"",nbpage:"",offre:"",question:"",abonnementform:"form",questionform:"form",rechercheform:"form",questioncaptcha:"",abonnementcaptcha:"",questionbp:""},initialize:function(panel,mode,options){if($defined(options)){this.setOptions(options);}this.panel=$(panel);ApplySimplePanel(this.panel);this.mode=mode;this.questionmatcher=new InputMatcher(this.options.questionform,{autostart:false,timout:700});this.abonnementmatcher=new InputMatcher(this.options.abonnementform,{autostart:false,timout:700});this.data=-1;this.recherchedata={keywork:"",type:false,organisme:null,categorie:null};this.step="init";},doAction:function(action,index){switch(this.step){case"attenteliste":switch(action){case"ok":this.data=index;d=$(this.options.liste);d.empty();this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");if(this.data.liste.length==0){this.panel.maximizePanel("pasderesultat");break;}tmp=$(this.options.nbpage);tmp.empty();tmp.appendText("Page : "+(Math.ceil(index.index/this.options.nbperpage)+1));tmp=$(this.options.nbpage2);tmp.empty();tmp.appendText("Page : "+(Math.ceil(index.index/this.options.nbperpage)+1));$(this.options.bpprecedent).setStyle("visibility",index.index>0?"visible":"hidden");$(this.options.bpsuivant).setStyle("visibility",index.more?"visible":"hidden");$(this.options.bpprecedent2).setStyle("visibility",index.index>0?"visible":"hidden");$(this.options.bpsuivant2).setStyle("visibility",index.more?"visible":"hidden");new Element("hr").injectInside(d);this.data.liste.each(function(item){try{p=item.path.match(/(.*)\/[^\/]+$/)[1];for(i in OrganismeListe){if(OrganismeListe[i].id==p){new Element("div").addClass(OrganismeListe[i].css).injectInside(d);new Element("strong").appendText("Organisme : ").injectInside(d);d.appendText(OrganismeListe[i].content);new Element("br").injectInside(d);break;}}}catch(e){}new Element("strong").appendText("Référence : ").injectInside(d);d.appendText(item.reference);new Element("br").injectInside(d);new Element("strong").appendText("Date et heure de clôture :").injectInside(d);d.appendText(" le "+item.cloture.formatDate()+" à "+item.cloture.formatTime(false));new Element("br").injectInside(d);new Element("br").injectInside(d);new Element("strong").appendText("Objet : ").injectInside(d);item.object.split("\n").each(function(item){d.appendText(item);new Element("br").injectInside(d);});new Element("strong").appendText("Catégorie : ").injectInside(d);d.appendText(CategorieEnum[item.category]);new Element("br").injectInside(d);new Element("br").injectInside(d);new Element("strong").appendText("Description : ").injectInside(d);(item.resume.length>this.options.resumemax?item.resume.substr(0,this.options.resumemax).substr(0,item.resume.substr(0,this.options.resumemax).lastIndexOf(" "))+"...":item.resume).split("\n").each(function(item){d.appendText(item);new Element("br").injectInside(d);});new Element("br").injectInside(d);new Element("strong").appendText("Documents à télécharger : ").injectInside(d);new Element("br").injectInside(d);new Element("br").injectInside(d);a=new Element("a").addClass("voir_offre");a.setProperty("href","#");a.addEvent("click",function(el,i){el.stop();obj.doAction("offre",i);}.bindWithEvent(this,item.path));a.injectInside(d);a=new Element("a").addClass("bouton_dl_avis");a.setProperty("href",baseOption.servletMedia.substitute({path:item.avispublication}));a.injectInside(d);if(item.dce.length>0){a=new Element("a").addClass("bouton_dl_dce");if(new Date().getTime()<item.cloture.getTime()){a.setProperty("href","#");a.addEvent("click",function(el,i){el.stop();obj.doAction("abonnement",i);}.bindWithEvent(this,item.path));}else{a.setProperty("href",baseOption.servletMedia.substitute({path:item.dce}));}a.injectInside(d);}else{d.appendText("Le DCE n'est pas encore disponible");new Element("br").injectInside(d);}if(item.avisattribution.length>0){a=new Element("a").addClass("bouton_dl_attribution");a.setProperty("href",baseOption.servletMedia.substitute({path:item.avisattribution}));a.injectInside(d);}new Element("hr").injectInside(d);},this);this.panel.maximizePanel("liste");break;case"exception":switch(this.mode){case"recherche":break;default:JMarchePublic.getOffresAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,false,0,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;}break;default:this.step="erreur";this.panel.maximizePanel("erreur");}break;case"attenteenintro":break;case"attenteenliste":switch(action){case"suivant":try{if(!this.data.more){break;}}catch(e){break;}this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.getOffresAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,false,this.data.index+this.options.nbperpage,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"precedent":try{if(this.data.index==0){break;}}catch(e){break;}this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.getOffresAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,false,(this.data.index-this.options.nbperpage>0?this.data.index-this.options.nbperpage:0),this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"combo":this.recherchedata=index;this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.getOffresAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,false,0,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"offre":this.step="attenteoffre";this.panel.maximizePanel("attente");JMarchePublic.getOffreAsAnonymous(index,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"abonnement":this.pathoffre=index;d=$(this.options.abonnementform);d.mail.value="";d.nom.value="";d.prenom.value="";d.fonction.value="";d.entreprise.value="";d.raison.value="";d.codepostal.value="";d.ville.value="";d.telephone.value="";d.fax.value="";d.adresse.value="";d.captchaanswer.value="";this.step="abonnement";this.panel.maximizePanel("abonnement");this.pushCaptcha($(this.options.abonnementcaptcha),"mpabonnement","captcha");this.abonnementmatcher.setActivate(true);break;}break;case"attenteenrecherche":switch(action){case"suivant":try{if(!this.data.more){break;}if(this.keyword==""){break;}}catch(e){break;}this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.findOffreAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,this.recherchedata.type,this.recherchedata.keywork,this.data.index+this.options.nbperpage,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"precedent":try{if(this.data.index==0){break;}if(this.keyword==""){break;}}catch(e){break;}this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.findOffreAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,this.recherchedata.type,this.recherchedata.keywork,(this.data.index-this.options.nbperpage>0?this.data.index-this.options.nbperpage:0),this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"recherche":if(index==null){this.panel.maximizePanel("erreurformulaire");break;}this.recherchedata=index;this.step="attenteliste";this.panel.maximizePanel("attente");JMarchePublic.findOffreAsAnonymous(index.organisme,index.categorie,index.type,index.keywork,0,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"retourerreur":this.panel.maximizePanel("liste");break;case"offre":this.step="attenteoffre";this.panel.maximizePanel("attente");JMarchePublic.getOffreAsAnonymous(index,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"abonnement":this.pathoffre=index;d=$(this.options.abonnementform);d.mail.value="";d.nom.value="";d.prenom.value="";d.fonction.value="";d.entreprise.value="";d.raison.value="";d.codepostal.value="";d.ville.value="";d.telephone.value="";d.fax.value="";d.adresse.value="";d.captchaanswer.value="";this.step="abonnement";this.panel.maximizePanel("abonnement");this.pushCaptcha($(this.options.abonnementcaptcha),"mpabonnement","captcha");this.abonnementmatcher.setActivate(true);break;default:}break;case"attenteenintro":break;case"attenteoffre":switch(action){case"ok":d=$(this.options.offre);d.empty();this.pathoffre=(new Date().getTime()<index.cloture.getTime()?index.path:null);try{p=index.path.match(/(.*)\/[^\/]+$/)[1];for(i in OrganismeListe){if(OrganismeListe[i].id==p){new Element("div").addClass(OrganismeListe[i].css).injectInside(d);new Element("strong").appendText("Organisme : ").injectInside(d);d.appendText(OrganismeListe[i].content);new Element("br").injectInside(d);break;}}}catch(e){}new Element("strong").appendText("Référence : ").injectInside(d);d.appendText(index.reference);new Element("br").injectInside(d);new Element("strong").appendText("Date et heure de clôture :").injectInside(d);d.appendText(" le "+index.cloture.formatDate()+" à "+index.cloture.formatTime(false));new Element("br").injectInside(d);new Element("br").injectInside(d);new Element("div").addClass("icon_offre1").injectInside(d);new Element("strong").appendText("Objet : ").injectInside(d);index.object.split("\n").each(function(item){d.appendText(item);new Element("br").injectInside(d);});new Element("strong").appendText("Catégorie : ").injectInside(d);d.appendText(CategorieEnum[index.category]);new Element("br").injectInside(d);new Element("br").injectInside(d);new Element("strong").appendText("Description : ").injectInside(d);index.resume.split("\n").each(function(item){d.appendText(item);new Element("br").injectInside(d);});new Element("br").injectInside(d);new Element("strong").appendText("Documents à télécharger : ").injectInside(d);new Element("br").injectInside(d);new Element("br").injectInside(d);a=new Element("a").addClass("retour_liste");a.setProperty("href","#");a.addEvent("click",function(el){el.stop();obj.doAction("cancel");}.bindWithEvent(this));a.injectInside(d);a=new Element("a").addClass("bouton_dl_avis");a.setProperty("href",baseOption.servletMedia.substitute({path:index.avispublication}));a.injectInside(d);if(index.dce.length>0){a=new Element("a").addClass("bouton_dl_dce");if(new Date().getTime()<index.cloture.getTime()){a.setProperty("href","#");a.addEvent("click",function(el,i){el.stop();obj.doAction("abonnement",i);}.bindWithEvent(this,index.path));}else{a.setProperty("href",baseOption.servletMedia.substitute({path:index.dce}));}a.injectInside(d);}else{d.appendText("Le DCE n'est pas encore disponible");new Element("br").injectInside(d);}if(index.avisattribution.length>0){a=new Element("a").addClass("bouton_dl_attribution");a.setProperty("href",baseOption.servletMedia.substitute({path:index.avisattribution}));a.injectInside(d);}d=$(this.options.question);d.empty();if(index.question.length==0){di=new Element("div").injectInside(d);di.appendText("Pas de question existante pour cette offre");new Element("br").injectInside(d);}else{index.question.each(function(item){di=new Element("div").addClass("zone_question").injectInside(d);new Element("div").addClass("icon_question").injectInside(di);new Element("strong").appendText(item.question).injectInside(di);new Element("br").injectInside(di);di.appendText(item.reponse);new Element("br").injectInside(di);});}d=$(this.options.questionform);d.setStyle("display","none");if(new Date().getTime()<index.cloture.getTime()){d.setStyle("display","block");d.mail.value="";d.question.value="";d.captchaanswer.value="";this.pushCaptcha($(this.options.questioncaptcha),"mpquestion","captcha");this.questionmatcher.setActivate(true);}this.step="offre";this.panel.maximizePanel("offre");break;default:this.step="erreur";this.panel.maximizePanel("erreur");}break;case"offre":switch(action){case"combo":case"recherche":this.questionmatcher.setActivate(false);this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.doAction(action,index);break;case"captcha":this.pushCaptcha($(this.options.questioncaptcha),"mpquestion","captcha");break;case"question":if(!this.questionmatcher.isFormOk()){this.panel.maximizePanel("erreurformulaire");break;}this.step="attentequestion";this.panel.maximizePanel("attente");this.questionmatcher.setActivate(false);d=$(this.options.questionform);JMarchePublic.addQuestion(this.pathoffre,d.mail.value,new RegExp(d.question.getProperty("matcher"),"g").exec(d.question.value)[1],"mpquestion",d.captchaanswer.value,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this),exceptionHandler:function(data){this.doAction("captcha",data);}.bind(this)});break;case"retourerreur":this.panel.maximizePanel("offre");break;case"abonnement":d=$(this.options.abonnementform);d.mail.value="";d.nom.value="";d.prenom.value="";d.fonction.value="";d.entreprise.value="";d.raison.value="";d.codepostal.value="";d.ville.value="";d.telephone.value="";d.fax.value="";d.adresse.value="";d.captchaanswer.value="";this.step="abonnement";this.panel.maximizePanel("abonnement");this.pushCaptcha($(this.options.abonnementcaptcha),"mpabonnement","captcha");this.abonnementmatcher.setActivate(true);break;case"cancel":this.questionmatcher.setActivate(false);if(this.data==-1){this.setMode("liste",this.recherchedata);break;}this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.panel.maximizePanel("liste");break;default:break;}break;case"attentequestion":switch(action){case"ok":if(index==false){this.panel.maximizePanel("erreurcaptcha");break;}this.panel.maximizePanel("questionok");break;case"retour":this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.panel.maximizePanel("liste");break;case"retourcaptcha":$(this.options.questionform).captchaanswer.value="";this.pushCaptcha($(this.options.questioncaptcha),"mpquestion","captcha");this.questionmatcher.setActivate(true);this.step="offre";this.panel.maximizePanel("offre");break;default:this.step="erreur";this.panel.maximizePanel("erreur");break;}break;case"abonnement":switch(action){case"ok":if(!this.abonnementmatcher.isFormOk()){this.panel.maximizePanel("erreurformulaire");break;}this.abonnementmatcher.setActivate(false);this.step="attenteabonnement";this.panel.maximizePanel("attente");d=$(this.options.abonnementform);JMarchePublic.addAbonnement(this.pathoffre,d.mail.value,d.nom.value,d.prenom.value,d.fonction.value,d.entreprise.value,d.raison.value,d.adresse.value,d.ville.value,d.codepostal.value,d.telephone.value,d.fax.value,"mpabonnement",d.captchaanswer.value,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this),exceptionHandler:function(data){this.doAction("captcha",data);}.bind(this)});break;case"retourerreur":this.panel.maximizePanel("abonnement");break;case"retourcaptcha":$(this.options.abonnementform).captchaanswer.value="";this.pushCaptcha($(this.options.abonnementcaptcha),"mpabonnement","captcha");this.abonnementmatcher.setActivate(true);this.panel.maximizePanel("abonnement");break;case"captcha":this.pushCaptcha($(this.options.abonnementcaptcha),"mpabonnement","captcha");break;case"combo":this.abonnementmatcher.setActivate(false);this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.panel.maximizePanel("liste");this.doAction(action,index);break;default:this.abonnementmatcher.setActivate(false);this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.panel.maximizePanel("liste");}break;case"attenteabonnement":switch(action){case"ok":if(index==false){this.panel.maximizePanel("erreurcaptcha");break;}this.panel.maximizePanel("abonnementok");break;case"retourcaptcha":this.abonnementmatcher.setActivate(true);this.step="abonnement";this.panel.maximizePanel("abonnement");break;case"retour":this.step=(this.mode=="recherche"?"attenteenrecherche":"attenteenliste");this.panel.maximizePanel("liste");break;default:this.step="erreur";this.panel.maximizePanel("erreur");break;}break;default:break;}},pushCaptcha:function(place,group,callback){$(place).empty();i=new Element("img").setProperties({src:baseOption.captchaurl.substitute({group:group,random:Math.ceil(Math.random()*100000)}),title:"cliquez pour obtenir un nouveau code"});i.injectInside($(place));i.addEvent("click",function(el,c){el.stop();obj.doAction(c);}.bindWithEvent(this,callback));},setMode:function(mode,index){this.questionmatcher.setActivate(false);switch(mode){case"recherche":this.mode="recherche";this.step="attenteenrecherche";this.data=-1;this.panel.maximizePanel("attenterecherche");break;case"aide":this.step="attenteenaide";this.panel.maximizePanel("aide");break;case"liste":this.mode="liste";this.step="attenteliste";this.recherchedata=index;this.panel.maximizePanel("attente");JMarchePublic.getOffresAsAnonymous(this.recherchedata.organisme,this.recherchedata.categorie,false,0,this.options.nbperpage,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;case"offre":this.step="attenteoffre";this.panel.maximizePanel("attente");JMarchePublic.getOffreAsAnonymous(index,{callback:function(data){this.doAction("ok",data);}.bind(this),errorHandler:function(data){this.doAction("error",data);}.bind(this)});break;default:this.step="attenteenintro";this.panel.maximizePanel("intro");break;}},convertToHtml:function(s){s=s.replace(/\n/g,"<br/>");return s;}});MarchePublicClass.implement(new Events,new Options);
