
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - abcmpros_folderpro.js - */
// http://www.abcmariage.com/portal_javascripts/abcmpros_folderpro.js?original=1
function popupOpen(u){window.open(u,'new_window')}
function displayBigPicture(u,w,h){window.open(u,"width:"+w+",height:"+h)}


/* - folderpro_services.js - */
// http://www.abcmariage.com/portal_javascripts/folderpro_services.js?original=1
var serviceList=new Array();var basketContent=new Array();
function getServiceObject(serviceName){for(var idx=0 ;idx<serviceList.length ;idx++){if(serviceName==serviceList[idx].name){return serviceList[idx]}}}
function isSubscribed(obj){if(obj.startDate==-1&&obj.endDate==-1){return obj.currentlyBought}
return true}
function service(name,title,price,startDate,endDate,serviceType,serviceMandatory){this.name=name;this.title=title;this.price=price;this.startDate=startDate;this.endDate=endDate;this.serviceType=serviceType;this.serviceMandatory=serviceMandatory;this.currentlyBought=false}
function appendService(obj){serviceList[serviceList.length]=obj}
function serviceWritePrice(service){var code=new String;if(service.price==0.0){code='<span style="color: red;">Gratuit</span>'}
else{code=service.price+' Euros / ans'}
return code}
function serviceWriteSubscribed(service){var code=new String();if((-1==service.startDate)&&(-1==service.endDate)){code='Vous ne possedez pas ce service'}
else{code=service.endDate}
return code}
function serviceWriteSubscription(service){if(service.currentlyBought){return '<div id="LINK_'+service.name+'">En cours d\'achat</div>'}
var code=new String();var listMandatory=service.serviceMandatory.split(',');var allowed=true;for(var idx=0;allowed&&idx<serviceList.length ;idx++){for(var j=0;j<listMandatory.length;j++){if(serviceList[idx].name==listMandatory[j]){if(!isSubscribed(serviceList[idx])){allowed=false;break}}}}
var code=new String();if(allowed){code='<div id="LINK_'+service.name+'"><a style="font-weight:bold;" href="javascript:void(0)" onclick="handleAddService(\''+service.name+'\')">Souscrire</a></div>'}
else{code='<div id="LINK_'+service.name+'"><a style="color:grey;" href="javascript:void(0)" onclick="handleRequireService()">Souscrire</a></div>'}
return code}
function serviceWriteHelp(service){var code=new String();code='<a href=""><img src="help.gif" alt="Aide" /></a>';return code}
function serviceWrite(serviceList){var code=new String();code+='<table class="serviceDesc">\n';for(var idx=0 ;idx<serviceList.length ;idx++){code+='<tr>\n';code+='<td class="title">'+serviceList[idx].title+'</td>\n';code+='<td>'+serviceWritePrice(serviceList[idx])+'</td>\n';code+='<td>'+serviceWriteSubscribed(serviceList[idx])+'</td>\n';code+='<td>'+serviceWriteSubscription(serviceList[idx])+'</td>\n';code+='<td>'+serviceWriteHelp(serviceList[idx])+'</td>\n';code+='</tr\n'}
code+='</table>\n';code+='Longueur '+serviceList.length;document.getElementById("serviceTable").innerHTML=code}
function displayBasket(){var total=0.0;var code="<ul class=\"visualNoMarker\"><li>";for(i=0;i<basketContent.length;i++){code+="<div style=\"float:right;\"><a href=\"javascript:void(0)\" onclick=\"handleRemoveService('"+basketContent[i].name+"')\"><img src=\"delete.gif\" alt=\"\" /></a></div>";code+='<strong style="font-size:10px;">'+basketContent[i].title+"</strong><br />";code+="<div style=\"width:100%; text-align:right;\">"+basketContent[i].price+" Euro</div><br />";total+=basketContent[i].price}
code+="</li></ul>";document.getElementById("basket").innerHTML=code;var v=Math.round(total*100.0)/100.0;var codeTotal="<ul class=\"visualNoMarker\"><li><strong>Total : "+v+" Euro</strong></li></ul>";document.getElementById("basketSummary").innerHTML=codeTotal}
function updateBasket(obj){basketContent[basketContent.length]=obj;displayBasket()}
function updateBasketLink(obj,direction){obj.currentlyBought=true}
function hasNoEmptyCell(a){for(var i=0;i<a.length;i++){if(a[i]==0) return true}
return false}
function updateBasketIntegrity(){for(var idx=0;idx<basketContent.length ;idx++){var basketObj=basketContent[idx];if(""==basketObj.serviceMandatory) continue;var required=basketObj.serviceMandatory.split(',');for(var j=0;j<required.length;j++){var allowed=true;var obj=getServiceObject(required[j]);if(obj.currentlyBought) continue;for(var k=0 ;k<serviceList.length;k++){if(serviceList[k].name==basketObj.name){serviceList[k].currentlyBought=false;allowed=false;break}}
if(allowed) continue;basketContent[idx]=0;break}}
do{for(var k=0;k<basketContent.length;k++){if(basketContent[k]==0){var s1=basketContent.slice(0,k);if(k<basketContent.length){var s2=basketContent.slice(k+1,basketContent.length);s1=s1.concat(s2)}
basketContent=s1;break}}} while(hasNoEmptyCell(basketContent))}
function handleAddService(serviceName){var obj=getServiceObject(serviceName);updateBasket(obj);updateBasketLink(obj,'ADD');serviceWrite(serviceList)}
function handleRequireService(){alert("Attention, le service 'Service Principal' est necessaire pour pouvoir souscrire a cette offre.")}
function handleRemoveService(serviceName){for(var idx=0;idx<basketContent.length ;idx++){if(serviceName==basketContent[idx].name){var s1=basketContent.slice(0,idx);if(idx<basketContent.length){var s2=basketContent.slice(idx+1,basketContent.length);s1=s1.concat(s2)}
basketContent=s1;for(var j=0;j<serviceList.length;j++){if(serviceName==serviceList[j].name){serviceList[j].currentlyBought=false;break}}
updateBasketIntegrity();displayBasket();serviceWrite(serviceList);return}}}
function sendToPayPal(){document.forms['paypalform'].submit()}
