NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name France - callbridge
// @description Ce script ajoute un bouton "Appeler" qui envoie+compose directement l'appel sur le smartphone (IOS/Android) de son choix. Nécessite un compte CallBridge Pro ou CallBridge
// @namespace *
// @version 1.02
// @include http://www.pap.fr/annonce/*
// @include https://www.pap.fr/annonce/*
// @include https://www.pagesjaunes.fr/recherche/*
// @include https://www.pagesjaunes.fr/pagesblanches/*
// @include https://www.pagesjaunes.fr/annuaire/*
// @include https://www.pagesjaunes.fr/carte/*
// @include http://www.partenaire-europeen.fr/Annonces*
// @include https://www.leboncoin.fr/*
// @include http://www.seloger.com/annonces/*
// @include https://www.paruvendu.fr/*
// @include http://www.lesparticuliers.fr/*
// @include http://www.vivastreet.com/*
// @include http://www.topannonces.fr/*
// @include https://zoomcar.fr/*
// @include http://www.lacentrale.fr/*
// @include https://occasion.autoplus.fr/*
// @include http://occasion.321auto.com/*
// @author mcleed
// @require http://code.jquery.com/jquery-3.1.0.min.js
// @resource icon28 https://getcallbridge.com/wp-content/uploads/2017/01/call28.png
// @resource icon28W https://getcallbridge.com/wp-content/uploads/2017/01/call28white.png
// @resource settings28 https://getcallbridge.com/wp-content/uploads/2017/01/settings28.png
// @resource settings28W https://getcallbridge.com/wp-content/uploads/2017/01/settings28W.png
// @grant GM_getResourceText
// @grant GM_getResourceURL
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
$("head").append("<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css\">");
// Quel Site
var quSite=0;
var lUrl = document.location.href;
if (lUrl.lastIndexOf("//www.pap.fr/")>=0 ) quSite=1; // de particutiers à particuliers
if (lUrl.lastIndexOf("//www.pagesjaunes.fr/")>=0) quSite=2; // pagesjaunes ET pagesblanches
if (lUrl.lastIndexOf("//www.partenaire-europeen.fr/")>=0) quSite=3; // partenaire-europeen
if (lUrl.lastIndexOf("//www.leboncoin.fr/")>=0) quSite=4; // leboncoin
if (lUrl.lastIndexOf("/www.seloger.com/")>=0) quSite=5; // seloger.com
if (lUrl.lastIndexOf("/www.paruvendu.fr/")>=0) quSite=6; // paruvendu.fr
if (lUrl.lastIndexOf("/www.lesparticuliers.fr/")>=0) quSite=7; // lesparticuliers.fr
if (lUrl.lastIndexOf("/www.vivastreet.com/")>=0) quSite=8; // vivastreet.com
if (lUrl.lastIndexOf("/www.topannonces.fr/")>=0) quSite=9; // topannonces.fr
if (lUrl.lastIndexOf("/zoomcar.fr/")>=0) quSite=10; // zoomcar
if (lUrl.lastIndexOf("/www.lacentrale.fr/")>=0) quSite=11; // lacentrale
if (lUrl.lastIndexOf("/occasion.autoplus.fr/")>=0) quSite=12; // occasion.autoplus
if (lUrl.lastIndexOf(".321auto.com/")>=0) quSite=13; // 321auto
if (lUrl.lastIndexOf("//www.pagesjaunes.fr/carte")>=0) quSite=14; // pagesjaunes CARTE
// Bouton APPELER long
var btnAppeler = document.createElement( 'button' );
btnAppeler.setAttribute( 'type', 'button' );
btnAppeler.setAttribute( 'style', 'margin-top : 1rem;' );
btnAppeler.setAttribute( 'title', 'avec CallBridge');
btnAppeler.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
// Bouton APPELER court
var btnAppel = document.createElement( 'button' );
btnAppel.setAttribute( 'type', 'button' );
btnAppel.setAttribute( 'style', 'margin-top : 1rem;' );
btnAppel.setAttribute( 'title', 'avec CallBridge');
btnAppel.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '">';
// Bouton APPELER court
var btnAppel2 = document.createElement( 'button' );
btnAppel2.setAttribute( 'type', 'button' );
btnAppel2.setAttribute( 'style', 'margin-top : 1rem;' );
btnAppel2.setAttribute( 'title', 'avec CallBridge');
btnAppel2.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '">';
// create button ----SMS ----
var btnSms = document.createElement( 'button' );
btnSms.setAttribute( 'value', 'SMS' );
btnSms.setAttribute( 'type', 'button' );
btnSms.setAttribute( 'style', 'margin-top : 1rem;' );
btnSms.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '">sms';
var btnParametres = document.createElement( 'button' );
btnParametres.setAttribute( 'value', 'Parametre compte CallBridge' );
//btnParametres.setAttribute( 'type', 'button' );
btnParametres.setAttribute( 'id', 'settings' );
btnParametres.setAttribute( 'style', 'margin-top : 1rem;' );
btnParametres.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("settings28") + '"> Paramètres CallBridge';
// 1 ligne
var UneLigne = document.createElement( 'button' );
UneLigne.setAttribute( 'value', 'UneLigne' );
UneLigne.setAttribute( 'id', 'UneLigne' );
UneLigne.setAttribute( 'style', 'margin-top : 1rem;' );
UneLigne.innerHTML = "<br>";
var cbuser = GM_getValue("cbuser", '');
switch (quSite){
case 1: // pap.fr ------------------------------------------------------------------------------
btnAppeler.innerHTML = '<img src="'+ GM_getResourceURL("icon28") + '"> Appeler le numéro';
btnAppel.innerHTML = '<img src="'+ GM_getResourceURL("icon28") + '"> Appeler le numéro';
btnAppel2.innerHTML = '<img src="'+ GM_getResourceURL("icon28") + '"> Appeler le numéro';
btnSms.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28") + '"> SMS';
btnSms.setAttribute( 'class', 'btn btn-small btn-type-1 btn-icon' );
btnAppeler.setAttribute( 'class', 'btn btn-small btn-type-1 btn-icon' );
btnAppel.setAttribute( 'class', 'btn btn-small btn-type-1 btn-icon' );
btnAppel2.setAttribute( 'class', 'btn btn-small btn-type-1 btn-icon' );
btnParametres.setAttribute( 'class', 'btn btn-small btn-type-1 btn-icon' );
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var mbouton = document.getElementsByClassName("btn-display-phone btn-telephone");
mbouton[0].appendChild( btnAppeler );
mbouton[0].appendChild( btnSms );
mbouton[0].appendChild( btnParametres );
if (mbouton.length>1) {mbouton[1].appendChild( btnAppel );mbouton[1].appendChild( btnParametres );} else {mbouton[0].appendChild( btnParametres );}
if (mbouton.length>2) {mbouton[2].appendChild( btnAppel2)}
// Clic sur "appeler le numéro"
btnAppeler.onclick=function () {jAppelle1("Call");}
btnAppel.onclick=function () {jAppelle1("Call");}
btnAppel2.onclick=function () {jAppelle1("Call");}
btnSms.onclick=function () {jAppelle1("SMS");}
function jAppelle1(pCall){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var mbouton = document.getElementsByClassName('tel-wrapper hidden')[0];
if (!mbouton) {return;}
var lText=mbouton.innerHTML;
var sTel=extraitChaine(lText,1,"<");
var mText = document.getElementsByClassName('title')[0].innerHTML;
var sText=sansBlanc(mText);
if (sTel>'') {Put_Notification(pCall,sTel,1,sText);}
if (m==2) location.reload();
};
break;
case 2: // pagesjaunes.fr ------------------------------------------------------------------------------
// 1 bouton "j'appelle" par ligne du tableau
var uls = document.querySelectorAll('.barre-liens-contact ');
var markers = [];
for (let i = 0; i < uls.length; i++) {
markers[i] = document.createElement('li');
markers[i].setAttribute( 'class', 'item plan value');
markers[i].setAttribute( 'id', 'appeler'+i);
markers[i].setAttribute( 'title', 'Avec CallBridge');
markers[i].innerHTML = '<a class="pj-link"><img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28") + '"><span class="value">Appeler</span></a>';
uls[i].appendChild(markers[i]);
markers[i].onclick = function(){ ClicAppeler(i);}; // <----- !!!
}
btnParametres.style.position = 'fixed';
btnParametres.style.textTransform = 'uppercase';
btnParametres.style.fontWeight = '700';
btnParametres.style.color = '#303030';
btnParametres.style.fontFamily = '"Open Sans","Arial","Helvetica",sans-serif';
btnParametres.style.padding = '10px';
btnParametres.style.border = 'thin solid rgb(199,199,199)';
btnParametres.style.boxShadow = '0 0 3rem rgba(48,48,48,0.4)';
btnParametres.style.borderRadius = '3rem 3rem 3rem 3rem';
btnParametres.style.bottom = '100px';
btnParametres.style.right = '10px';
body = document.getElementsByTagName('body')[0];
body.appendChild(btnParametres);
// Clic sur "j'appelle" AfficherMap:map-actions hidden-phone hidden-tablet ClassN°Tel:item bi-contact-tel ClassDuBouton:item-cta bi-contact-tel
function ClicAppeler(pi){
var ni = 0; ni = pi * 2 + 1;
var iTit = 0, sTel = '', sText = '', iAdrD = 0, iAdrF = 0, sSep = "", s1='', sRue='', sVille='';
// Nom du contact
var lDenomination = document.getElementsByClassName('denomination-links');
var lNom = sansBlanc(lDenomination[pi].innerHTML);
// Adresse (rue et ville) du Contact
var lAdresse = document.getElementsByClassName('adresse-container');
var sAdr=sansBlanc(chAffichages(lAdresse[pi].innerHTML));
// Extraction du n° TEL, MOBILE et FAX
var lNumero = document.getElementsByClassName('item bi-contact-tel');
var lArcep = document.getElementsByClassName('main-contact-container clearfix');
var lTel = sansBlanc(chAffichages(lArcep[pi].innerHTML));
var sTel = leNumerique(lTel);
var lTels=sansBlanc(chAffichages(lNumero[ni].innerHTML));
if (sTel>'') {Put_Notification("Call",sTel,1,sAdr);} else {alert("sans n° Tel : "+sAdr);}
}
function quTitle(pi,pText){
var iDeb=0, iFin=0, F=1;
for (i=pi;i<pText.length;i++)
if (F==1 && pText.substr(i,12)=='"num" title=') {iDeb=i+13;F=2;}
if (iDeb===0) return '';
for (i=iDeb;i<pText.length;i++)
if (F==2 && pText.substr(i,1)=='"') {iFin=i;F=3;}
if (iFin===0) return '';
var i=iFin-iDeb;
return pText.substr(iDeb,i);
}
break;
case 3: // partenaire-europeen ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'phone' );
btnParametres.setAttribute( 'class', 'phone' );
btnParametres.style.zIndex = '120';
// Création des boutons callbridge
var mbouton = document.getElementsByClassName('phone-container')[0];
document.getElementsByClassName('phone-container')[ 0 ].appendChild( btnAppeler );
document.getElementsByClassName('phone-container')[ 0 ].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler.onclick=function Notification_Call(){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var mbouton = document.getElementsByClassName('phone-container')[0];
if (!mbouton) {return;}
var lText=mbouton.outerHTML;
var sTx1=chBalise(lText,"href");
var sTel=extraitChaine(sTx1,2,":");
var mText = document.getElementsByClassName('product-name')[0].innerHTML;
var sText=sansBlanc(mText);
if (sTel>'') {Put_Notification("Call",sTel,1,sText);}
};
break;
case 4: // leboncoin ------------------------------------------------------------------------------
btnAppeler.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28") + '"> Appeler le numéro';
btnAppeler.setAttribute( 'class', 'button-lightgrey large trackable' );
btnParametres.setAttribute( 'class', 'button-mediumgrey large' );
btnParametres.setAttribute( 'style', 'margin : 1rem;' );
var mbouton = document.getElementsByClassName('button-orange large phoneNumber trackable')[0];
var sClass=document.getElementsByClassName('box-grey-light mbs align-center')
var m=sClass.length-1;
sClass[m].appendChild( btnAppeler );
sClass[m].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
var mbouton = document.getElementsByClassName('button-orange large phoneNumber trackable');
if (mbouton.length=0) mbouton = document.getElementsByClassName('button-blue large trackable');
if (mbouton.length>0) mbouton[0].firstElementChild.click();
setTimeout(function() {
var Notel = document.getElementsByClassName('phone_number font-size-up');
var sText = document.getElementsByClassName('no-border');
var sTex2 = document.getElementsByClassName('item_price clearfix')
var sTex3 = document.getElementsByClassName('line line_city');
var sTex4 = chAffichageClass(sTex3[0].innerHTML,"value");
if (Notel) {Put_Notification("Call",Notel[0].firstElementChild.innerHTML,1,sansBlanc(sText[0].innerHTML)+' '+sansBlanc(chAffichages(sTex2[0].innerHTML))+" "+sTex4);}
}, 2000);
};
break;
case 5 : // seloger.com ------------------------------------------------------------------------------
btnAppeler.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
btnAppeler.setAttribute( 'class', 'b-btn tagClick ' );
btnParametres.setAttribute( 'class', 'b-btn b-warn tagClick ' );
// Création des boutons callbridge
var mbouton = document.getElementsByClassName('form-contact jsLockSubmit')[0];
document.getElementsByClassName('form-contact jsLockSubmit')[ 0 ].appendChild( btnAppeler );
document.getElementsByClassName('form-contact jsLockSubmit')[ 0 ].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var mbouton = document.getElementsByClassName('btn-phone b-btn b-second fi fi-phone tagClick')[0];
if (!mbouton) {return;}
var lText=mbouton.outerHTML;
var sTel=chBalise(lText,"data-phone");
var mText = document.getElementsByClassName('detail-title title1')[0].innerHTML;
var sText=sansBlanc(mText);
if (sTel>'') {Put_Notification("Call",sTel,1,sText);}
};
break;
case 6 : // paruvendu ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'im12_cp_form_submit btndetails14_contact a' );
btnAppel.setAttribute( 'class', 'im12_cp_form_submit btndetails14_contact a' );
btnAppel.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
btnAppel2.setAttribute( 'class', 'app' );
btnParametres.setAttribute( 'class', 'im12_cp_form_submit btndetails14_contact a' );
btnParametres.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("settings28W") + '"> Paramètres CallBridge';
var sClass=document.getElementsByClassName('btndetails14_contact tel_contact')
sClass[0].appendChild( btnAppeler );
sClass[0].appendChild( btnParametres );
if (sClass.length>1) {sClass[1].appendChild( btnAppel );sClass[1].appendChild( btnParametres );}
// document.getElementsByClassName('head17-rappelcrit head17-rappelcrit-shrink')[ 0 ].appendChild( btnAppel );
var sClas2=document.getElementsByClassName('imdet15-LiensContact');
if (sClas2.length>0) sClas2[0].appendChild( btnAppel2 );
// Clic dans le header
var BtnHeaderApp=document.getElementById('Header_btn_app')
BtnHeaderApp.innerHTML="Appel+";
BtnHeaderApp.onclick=function() {jAppelle6(0)};
// Clic sur "recherche et envoi du N° de téléphone"
btnAppeler.onclick=function (){jAppelle6(1)};
btnAppel.onclick=function (){jAppelle6(1)};
btnAppel2.onclick=function (){jAppelle6(1)};
function jAppelle6(nOuvre){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
var mbouton = document.getElementsByClassName('btndetails14_contact tel_contact');
// if (mbouton.length<1) mbouton = document.getElementsByClassName('btndetails14_contact tel_contact basauto_contact flol');
if (mbouton.length>0 && nOuvre) {mbouton[0].firstElementChild.click();}
setTimeout(function() {
var Notel = document.getElementsByClassName('newpop13-numtel');
if (Notel.length>0) {
var sText = document.getElementsByClassName('newpop13-limitann');
var mText = extraitChaine(sText[0].innerHTML,1,"<span");}
else {
Notel = document.getElementsByClassName('im12_tel');
var sText = document.getElementsByClassName('newpop13-limitann newpop13-txtann flol');
var mText = (sansBlanc(chAffichages(sText[0].innerHTML)))
}
sText = sansRC(mText);
if (Notel) {Put_Notification("Call",Notel[0].firstElementChild.innerHTML,1,sText);}
document.getElementsByClassName('fancybox-item fancybox-close')[ 0 ].click();
}, 2000);
};
break;
case 7 : // lesparticuliers ------------------------------------------------------------------------------
$(document).ready(function() {
var sLien0 = document.getElementsByClassName('showNumberBtn');
if (sLien0.length>0) {fBtnAppeler(sLien0,'showNumberBtn');}
var sLien2 = document.getElementsByClassName('showNumber1Btn');
if (sLien2.length>0) {fBtnAppeler(sLien2,'showNumber1Btn');}
var sLien3 = document.getElementsByClassName('showNumber2Btn');
if (sLien3.length>0) {fBtnAppeler(sLien3,'showNumber2Btn');}
var sLien4 = document.getElementsByClassName('showMailBtn');
if (sLien4.length>0) {fBtnSetting(sLien4,'showMailBtn');}
});
function fBtnAppeler(pLiens,pClass){
var makers = [];
for (let i = 0; i < pLiens.length; i++) {
makers[i] = document.createElement( 'button' );
makers[i].setAttribute( 'type', 'button' );
makers[i].setAttribute( 'style', 'margin-top : 1rem;' );
makers[i].setAttribute( 'title', 'avec CallBridge');
makers[i].innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler Numéro';
makers[i].setAttribute( 'class', 'btn green icn-only poplight scrollToTopButton' );
makers[i].style.fontWeight = '300';
makers[i].style.display = 'block';
//makers[i].style.backgroundColor = '#a50f78';
makers[i].style.padding = '7px 14px';
makers[i].style.color = 'white';
makers[i].style.border = '0px';
pLiens[i].appendChild(makers[i]);
makers[i].onclick=function (){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
var mbouton = document.getElementsByClassName(pClass)[i];
if (mbouton) {mbouton.firstElementChild.click();}
setTimeout(function() {
var Notel = pLiens[i].getElementsByClassName('btnText')[0].innerHTML;
var Notel2 = document.getElementsByClassName('rsva_number');
if (Notel2[0]) {var s1=extraitChaine(Notel2[0].innerHTML,2,">");Notel=extraitChaine(s1,1,"<");} // Cas 0899...
var sText = document.getElementById('scrollcontent');
var mText = sansBlanc(sText.innerHTML);
if (Notel) {Put_Notification("Call",Notel,1,mText);}
}, 2000);
};
}
}
function fBtnSetting(pLiens,pVoir){
var makers = [];
for (let i = 0; i < pLiens.length; i++) {
makers[i] = document.createElement( 'button' );
makers[i].setAttribute( 'type', 'button' );
makers[i].setAttribute( 'style', 'margin-top : 1rem;' );
makers[i].innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("settings28W") + '"> Settings';
makers[i].setAttribute( 'class', 'btn green icn-only poplight scrollToTopButton' );
makers[i].style.fontWeight = '300';
makers[i].style.display = 'block';
makers[i].style.backgroundColor = '#f68c21';
makers[i].style.padding = '7px 14px';
makers[i].style.color = 'white';
makers[i].style.border = '0px';
// pLiens[i].appendChild(UneLigne);
pLiens[i].appendChild(makers[i]);
makers[i].onclick=function (){
if (menuobj.style.visibility == 'hidden') {
menuobj.style.visibility = 'visible';
document.activeElement.blur();
menuobj.style.transition = 'right 1s ease-in-out';
menuobj.style.WebkitTransition = 'right 1s ease-in-out';
menuobj.style.MozTransition = 'right 1s ease-in-out';
menuobj.style.right = '1px';
}
else {
menuobj.style.visibility = 'hidden';
document.activeElement.blur();
}
};
}
}
break;
case 8 : // vivastreet.com ------------------------------------------------------------------------------
var btnAppeler1 = document.createElement( 'button' );
btnAppeler1.setAttribute( 'type', 'button' );
btnAppeler1.setAttribute( 'style', 'margin-top : 0rem;' );
btnAppeler1.setAttribute( 'title', 'avec CallBridge');
btnAppeler1.setAttribute( 'class', 'kiwii-btn kiwii-btn-large' );
btnAppeler1.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28") + '"><a> Appeler le numéro</a>';
var btnAppeler2 = document.createElement( 'button' );
btnAppeler2.setAttribute( 'type', 'button' );
btnAppeler2.setAttribute( 'style', 'margin-top : 0rem;' );
btnAppeler2.setAttribute( 'title', 'avec CallBridge');
btnAppeler2.setAttribute( 'class', 'kiwii-btn kiwii-btn-large' );
btnAppeler2.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28") + '"><a> Appeler le numéro</a>';
btnParametres.setAttribute( 'class', 'kiwii-btn kiwii-btn-large' );
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var lClass="kiwii-margin-ver-xxsmall kiwii-table-cell";
document.getElementsByClassName(lClass)[0].appendChild( btnAppeler1 );
document.getElementsByClassName(lClass)[1].appendChild( btnAppeler2 );
document.getElementsByClassName(lClass)[1].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler1.onclick=function (){ Appeler()}
btnAppeler2.onclick=function (){ Appeler()}
function Appeler(){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var bbouton = document.getElementsByClassName('phone_link phone_link_right')[0];
bbouton.click();
var mbouton = document.getElementsByClassName('vs-phone-button kiwii-font-weight-bold kiwii-position-relative kiwii-padding-left-large')[0];
if (!mbouton) {return;}
var lText=mbouton.outerHTML;
var sTel=chBalise(lText,"data-phone-number");
var mText = document.getElementsByClassName('kiwii-float-left kiwii-span-10')[0].innerHTML;
var mText2= document.getElementsByClassName('kiwii-breadcrumbs mmlightgrey mmchevron')[0].lastElementChild.innerHTML;
var sText1 = chBalise(mText2,"title",4);
if (sText1==='') {sText1 = chBalise(mText2,"title",3);}
var s1=extraitChaine(mText,2,">");sText=extraitChaine(s1,1,"<");
if (sTel>'') {Put_Notification("Call",sTel,1,sText+' '+sText1);}
document.activeElement.blur();
};
break;
case 9 : // topannonces.fr ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'btn-secondary w-275 h-40 blue contacterAdv w-190 w-border' );
btnAppeler.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"><b> Appeler le numéro</b>';
btnParametres.setAttribute( 'class', 'btn-secondary w-275 h-40 blue contacterAdv w-190 w-border' );
btnParametres.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("settings28W") + '"><b> Paramètres CallBridge</b>';
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var lClass="span12 border-button-zone";
var m=0;
var mbouton = document.getElementsByClassName(lClass)[m];
if (!mbouton) {m=1;mbouton = document.getElementsByClassName(lClass)[m];}
if (!mbouton) return;
document.getElementsByClassName(lClass)[m].appendChild( btnAppeler );
document.getElementsByClassName(lClass)[m].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var mbouton = document.getElementsByClassName('seeNumber btn-secondary w-275 h-40 blue contacterAdv w-190 w-border')[0];
if (mbouton) {mbouton.firstElementChild.click();}
setTimeout(function() {
var Notel = document.getElementsByClassName('font-15 tatiana')[1].innerHTML;
var sText = document.getElementsByClassName('spanTitle')[0].innerHTML;
var s1=extraitChaine(sText,3,">");var s2=extraitChaine(s1,1,"<");
var s3=extraitChaine(sText,7,">");var s4=extraitChaine(s3,1,"<");
if (Notel) {Put_Notification("Call",Notel,1,s2+" "+sansBlanc(s4));}
}, 2000);
};
break;
case 10 : // zoomcar.fr ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'btn btn-flat telephone ' ); // modal-trigger
btnParametres.setAttribute( 'class', 'btn btn-flat mail ' );
btnParametres.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("settings28W") + '"><b> Paramètres CallBridge</b>';
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var lClass="contact-button";
var m=0;
var mbouton = document.getElementsByClassName(lClass)[m];
if (!mbouton) {m++;mbouton = document.getElementsByClassName(lClass)[m];}
if (!mbouton) return;
//TEST----------------------
var liens = document.getElementsByClassName('contact-button');
//alert(liens.length);
var makers = [];
for (let i = 0; i < liens.length; i++) {
makers[i] = document.createElement( 'button' );
makers[i].setAttribute( 'type', 'button' );
makers[i].setAttribute( 'style', 'margin-top : 1rem;' );
makers[i].setAttribute( 'title', 'avec CallBridge');
makers[i].innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
makers[i].setAttribute( 'class', 'btn btn-flat telephone ' );
makers[i].style.fontWeight = '300';
makers[i].onclick = function () {jappelle10();} ;
makers[i].style.display = 'inline-table';
//makers[i].style.backgroundColor = '#a50f78';
//makers[i].style.padding = '7px 14px';
makers[i].style.color = 'white';
makers[i].style.border = '0px';
liens[i].appendChild(makers[i]);
}
//FIN DU TEST--------------------- Unquoter les 2 lignes suivantes si Test supprimé
//document.getElementsByClassName(lClass)[0].appendChild( btnAppeler );
document.getElementsByClassName(lClass)[1].appendChild( btnParametres );
// Clic sur "appeler le numéro"
//btnAppeler.onclick=function (){
function jappelle10(){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var voirTelephone = document.getElementsByClassName("contact-button")[0].firstElementChild;
voirTelephone.setAttribute("class","btn btn-flat telephone");
voirTelephone.click();
setTimeout(function() {
var sTel = document.getElementById("telephone-contact-detail-content").firstElementChild.innerHTML;
var sText = document.getElementsByClassName('sixteen-columns row title-price')[0].childNodes;
var nText = sText[1].childNodes, xText=sansBlanc(sText[1].innerHTML);
var yText=sansSpan(xText);sText=sansRC(yText);
if (sTel) {Put_Notification("Call",sTel,1,sText);}
var fermeTelephone = document.getElementsByClassName('modal-action modal-close waves-effect waves-green btn-flat')[1];
fermeTelephone.click();
},2000);
setTimeout(function() {
var fermeDernier = document.getElementsByClassName('modal-content');
// alert(fermeDernier[3].innerHTML);
fermeDernier[3].firstElementChild.click();
},5000);
}
break;
case 11 : // LaCentrale ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'btnRed' );
btnAppel.setAttribute( 'class', 'btnRed' );
btnAppeler.style.width = "180px";
btnAppel.setAttribute( 'style', 'width : 235px;' );
btnParametres.setAttribute( 'style', 'width : 235px;' );
btnParametres.setAttribute( 'class', 'btnRed' );
btnParametres.innerHTML = '<img style="vertical-align: middle; margin-left : 0.2rem; margin-right : 0rem;" src="'+ GM_getResourceURL("settings28W") + '"> Settings CallBridge ';
btnAppel.innerHTML = '<img style="vertical-align: middle; ; margin-left : 0.4rem; margin-right : 0.4rem;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro ';
btnAppeler.innerHTML = '<img style="vertical-align: middle; ; margin-left : 0.4rem; margin-right : 0.4rem;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var mBox = document.getElementsByClassName("boxContent");
if (mBox.length>0) {mBox[0].appendChild( btnAppeler );mBox[0].appendChild( btnParametres );}
if (mBox.length>1) {mBox[1].appendChild( UneLigne );mBox[1].appendChild( btnAppel );mBox[1].appendChild( btnParametres );}
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){ jAppelle11() }
btnAppel.onclick=function (){ jAppelle11() }
function jAppelle11(){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var sTel = document.getElementsByClassName("phoneNumber1")[0].firstElementChild.innerHTML;
var sText = document.getElementsByClassName("iophfzp")[0].firstElementChild.innerHTML;
sText += " "+document.getElementsByClassName("versionTxt txtGrey7C sizeC mB10 hiddenPhone")[0].innerHTML;
sText += " "+document.getElementsByClassName("kmTxt sizeC")[0].innerHTML;
sTel = sansBlanc(sansSpan(sTel));sText = sansBlanc(sansSpan(sText));
if (sTel) {Put_Notification("Call",sTel,1,sText);}
};
break;
case 12 : // occasion.autoplus.fr ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'pa-btn js-show-phone' );
btnParametres.setAttribute( 'class', 'pa-btn js-show-phone' );
btnParametres.innerHTML = '<img src="'+ GM_getResourceURL("settings28") + '">Settings CallBridge';
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var lClass="pa-contact";
var m=0;
var mbouton = document.getElementsByClassName(lClass)[m];
if (!mbouton) {m++;mbouton = document.getElementsByClassName(lClass)[m];}
if (!mbouton) return;
document.getElementsByClassName(lClass)[m].appendChild( btnAppeler );
document.getElementsByClassName(lClass)[m].appendChild( btnParametres );
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var sTel = document.getElementsByClassName("pa-btn js-phone")[1].innerHTML;
var sText = document.getElementsByClassName("pa-make-model")[0].innerHTML;
sText += " "+document.getElementsByClassName("pa-car")[0].innerHTML;
sText += " "+document.getElementsByClassName("avg-quotation__price")[0].innerHTML;
sTel = sansBlanc(sansSpan(sTel));sText = sansBlanc(sansSpan(sText));
if (sTel) {Put_Notification("Call",sTel,1,sText);}
};
break;
case 13 : // http://occasion.321auto.com ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'btn bold' );
btnAppel.innerHTML = '<img style="vertical-align: middle;" src="'+ GM_getResourceURL("icon28W") + '"> Appeler le numéro';
btnAppel.setAttribute( 'class', 'btn lsearch bold' );
btnParametres.setAttribute( 'class', 'btn bold' );
btnParametres.innerHTML = '<img src="'+ GM_getResourceURL("settings28") + '">Settings CallBridge';
// Création des boutons callbridge
var cbuser = GM_getValue("cbuser", '');
var mBox2 = document.getElementsByClassName("contact_action2");
if (mBox2.length>0) {mBox2[0].appendChild( btnAppeler );mBox2[0].appendChild( btnParametres );}
var mBox = document.getElementsByClassName("contact_action");
if (mBox.length>0) {mBox[0].appendChild( btnAppel );}
// Clic sur "appeler le numéro"
btnAppeler.onclick=function (){ jAppelle13() }
btnAppel.onclick=function (){ jAppelle13() }
function jAppelle13(){
if (cbuser<=' ') {menuobj.style.visibility = 'visible';return;}
if (menuobj.style.visibility=='visible') {menuobj.style.visibility='hidden';}
var voirTelephone = document.getElementsByClassName("bouton btn-red")[0].firstElementChild;
voirTelephone.click();
setTimeout(function() {
var sTel = document.getElementsByClassName("phone")[0].innerHTML;
var mText = document.getElementById("DetailHeader").innerHTML;
var sText = document.getElementsByTagName("h1")[0].innerHTML;
sText += " "+document.getElementsByTagName("p")[0].innerHTML;
sTel = sansBlanc(sansSpan(sTel));sText = sansBlanc(sansSpan(sText));
if (sTel) {Put_Notification("Call",sTel,1,sText);}
},2000);
};
break;
case 14 : // pagesjaunes/carte ------------------------------------------------------------------------------
btnAppeler.setAttribute( 'class', 'icon icon-liste' );
var cbuser = GM_getValue("cbuser", '');
document.getElementsByClassName("outils")[0].appendChild( btnAppeler );
btnAppeler.onclick=function(){
var lTel = document.getElementsByClassName("item bi-contact-tel")[0].innerHTML;
var sTel = chBalise(lTel,"title");
// alert(lTel+" ++++++ "+sTel+" ==== "+sTel.length);
if (sTel.length>20) sTel = chBalise(lTel,"title",2);
var lText = document.getElementsByClassName("bloc-denom")[0].innerHTML;
var sText = chAffichageClass(lText,"denom")+' '+chAffichageClass(lText,"streetAddress")+' '+chAffichageClass(lText,"postalCode")+' '+chAffichageClass(lText,"addressLocality");
if (sTel) {Put_Notification("Call",sTel,1,sText);} else {alert("Sans n° Tel+ "+sText)}
}
}
// ========================================================= utilitaires ==================================================================== utilitaires =========================================
// ========================================================= utilitaires ==================================================================== utilitaires =========================================
// Voir la fenetre Settings
btnParametres.onclick = function () {
if (menuobj.style.visibility == 'hidden') {
menuobj.style.visibility = 'visible';
document.activeElement.blur();
menuobj.style.transition = 'right 1s ease-in-out';
menuobj.style.WebkitTransition = 'right 1s ease-in-out';
menuobj.style.MozTransition = 'right 1s ease-in-out';
menuobj.style.right = '1px';
}
else {
menuobj.style.visibility = 'hidden';
document.activeElement.blur();
}
};
// retourne la balise et la valeur sous la forme : <Balise xsd:type="xsd:string">Valeur</Balise>
function AjBalise(pBalise,pValeur) {
var sRetour = "<"+pBalise+" xsd:type=\"xsd:string\" >"+pValeur+"</"+pBalise+">";
return sRetour;
}
// Prépare la requete Put_Notification (call ou sms) à envoyer par SendHttp
function Put_Notification(pCallSms,pPhone,pImmediat,pText) {
if (pCallSms.lastIndexOf("!")>=0) {AfficheToast(pPhone+"<br>"+pText);return;}
var cbuser = GM_getValue("cbuser", '');
var cbpassword = GM_getValue("cbpassword", '');
if (pPhone<=' ') return;
if (!pText || pText<' ') pText="Call from callbridge ..monkey";
var requete="";
requete="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\"><soap:Body>";
requete += AjBalise("pLogin",cbuser); // Login du compte CallBridge
requete += AjBalise("pPass",cbpassword); // Password du compte CallBridge
requete += AjBalise("pDatetime",TheDateTime() ); // Renvoie sous forme :AAAAMMJJhhmmss Ex: 20170120093425 pour le 20/01/2017 à 09h34m25s
requete += AjBalise("pImmediate",pImmediat); // 1 = appel immédiat 0 = affichage (pour action manuelle de l'utilisateur)
requete += AjBalise("pRecipients",""); // Nom de l'utilisateur (smartphone) qui doit rappeler
requete += AjBalise("pTitle","CallBridge"); // Titre de la notification
requete += AjBalise("pPhones",pPhone); // Les n° de téléphone à appeler
requete += AjBalise("pText",StringToUTF8(pText)); // Texte optionnel pour l'appelant
requete += AjBalise("pPost","monkey"); // Poste ayant envoyé la notification
requete += "</soap:Body></soap:Envelope>";
var sFonction="Put_Notification_"+pCallSms;
SendHttp(requete,sFonction,AfficheError,pPhone+"<br>"+pText); // Envoi de la requete en XML et le nom du Service à contacter
}
// Envoi HTTP effectif en POST (Free ou Pro)
function SendHttp(pRequete,pService,pCallBack,pMess) {
var cbFreePro = GM_getValue("cbFreePro", 0);
var params = '';
if (cbFreePro===0) pCallBack("Choose CallBridge Free or CallBridgePro");
if (cbFreePro==1) params = 'xml='+pRequete+'&action='+"urn:CallBridgeApi/"+pService;
if (cbFreePro==2) params = 'xml='+pRequete+'&action='+"urn:CallBridgeProApi/"+pService;
var xmlhttp;
xmlhttp = new XMLHttpRequest();
if (cbFreePro==1) xmlhttp.open("POST","https://www.mcleed.net/CallBridgeApi_WEB/awws/CallBridgeApi.awws",true);
if (cbFreePro==2) xmlhttp.open("POST","https://www.mcleed.net/CallBridgeProApi_WEB/awws/CallBridgeProApi.awws",true);
// xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8; ");
// au retour de la fonction on indique combien sont envoyés
xmlhttp.onreadystatechange = function() {
// alert("Rd:"+xmlhttp.readyState+" st:"+xmlhttp.status+" tx:"+xmlhttp.statusText )
if (xmlhttp.readyState==4 && xmlhttp.status==200 ) {
var lRetour = xmlhttp.responseText;
var tChaine = lRetour.split("Result>");
var tReponse = tChaine[1].split("</");
if (pCallBack) {pCallBack(tReponse[0],pMess);}
} };
xmlhttp.send(params);
}
// Affiche OK ou OK de sendHttp Erreur ou Compte rendu
function AfficheError(pErreur,pMessage){
var tMots = pErreur.split('/*');
var sErreur = tMots[0], lAffiche="";
if (tMots.length>1) sErreur+=" "+tMots[1];
if (pErreur.substr(0,2)=="KO") {lAffiche=pErreur;} else {lAffiche=sErreur;}
var sRc="<br/>";
sErreur=lAffiche.replace(/;/g,sRc);
if (pMessage) sErreur+=" : "+pMessage
AfficheToast(sErreur);
}
// Retourne la date et heure locale sous la forme AAAAMMJJhhmmss
function TheDateTime(){
var ladate=new Date();
var Y=ladate.getFullYear();
var M=ladate.getMonth()+1;
if (M<10) {M = "0" + M;}
var D=ladate.getDate();
if (D<10) {D = "0" + D;}
var h=ladate.getHours();
if (h<10) {h = "0" + h;}
var m=ladate.getMinutes();
if (m<10) {m = "0" + m;}
var s=ladate.getSeconds();
if (s<10) {s = "0" + s;}
return Y+""+M+""+D+""+h+""+m+""+s;
}
//Menu Icone theme
var headers = document.getElementsByTagName('h2');
var menu = '<li class="uppercase bold trackable" style="text-align: center;text-transform: uppercase;font-weight: 700;">CallBridge Settings</li><br>';
menu += '<li>Utilisateur (email):</li><li><input type="text" id="cbmail" name="email"></li><br>';
menu += '<li>Mot de passe:</li><li><input type="text" id="cbpassword" name="Password"></li><br>';
menu += '<li><button id="cbmodepro" type=button title="Vérifier si l\'utilisateur CallBigePro existe">Pro</button> ';
menu += '<button id="cbmodefree" type=button title="Vérifier si l\'utilisateur CallBigeFree existe">Free</button></li><br>';
menu += '<li><button id="cbenregistre" type="button" title="Enregistrer le Login + Mot de passe">SAVE</button> ';
menu += '<button id="cbessai" type="button" title="Envoyer une notification test au smartphone">Test</button> ';
menu += '<button id="cbclose" type="button" title="Fermer les settings">Fermer</button></li>';
menu += "<p><br>Aller sur le site <a href='https://getcallbridge.com/fr/appelez-directement-depuis-vos-sites-preferes-avec-callbridge' target='_blank' title='Utilisateur Free? Cliquez-ici pour souscrire à ce plugin'>CallBridge</a></p>";
// Create menu
if (menu !== '') {
menuobj = document.createElement('ul');
menuobj.style.position = 'fixed';
menuobj.style.top = '57px';
menuobj.style.right = '-200px';
menuobj.style.padding = '25px';
menuobj.style.backgroundColor = '#fff';
menuobj.style.zIndex = '6535';
//menuobj.style.border = 'solid 3px #f56b2a';
menuobj.style.boxShadow = '0 0 3rem rgba(48,48,48,0.4)';
menuobj.innerHTML = menu;
menuobj.style.visibility = 'hidden';
body = document.getElementsByTagName('body')[0];
body.appendChild(menuobj);
var cbuser = document.getElementById('cbmail');
cbuser.value = GM_getValue("cbuser", '');
var cbpassword = document.getElementById('cbpassword');
cbpassword.value = GM_getValue("cbpassword", '');
cbAfficheFreeOrPro();
}
// sortie de cbmail avec changement : choix automatique Pro/Free 1/2
cbmail.onchange = function (){
SaveLogin();
GM_setValue("cbFreePro",1); // en FREE
Get_Verif_Email(cbmail_onchange_suite);
};
// sortie de cbmail avec changement : choix automatique Pro/Free 2/2
function cbmail_onchange_suite(pTexte){
if (pTexte.substring(0,2)=="KO") {GM_setValue("cbFreePro",0);} else {cbAfficheFreeOrPro();return;}
cbAfficheFreeOrPro();
GM_setValue("cbFreePro",2); // en PRO
Get_Verif_Email(MailExiste);
}
// Quel mode CallBridge Free ou Pro ?
function cbAfficheFreeOrPro(){
var cbFreePro = GM_getValue("cbFreePro", 0);
var cbfree = document.getElementById('cbmodefree');
if (cbFreePro==1) cbfree.style.backgroundColor="white"; else cbfree.style.backgroundColor='';
var cbpro = document.getElementById('cbmodepro');
if (cbFreePro==2) cbpro.style.backgroundColor="white"; else cbpro.style.backgroundColor='';
}
// mettre CallBridge en Free
cbmodefree.onclick = function () {
SaveLogin();
GM_setValue("cbFreePro",1);
Get_Verif_Email(MailExiste);
};
// mettre CallBridge en Pro
cbmodepro.onclick = function () {
SaveLogin();
GM_setValue("cbFreePro", 2);
Get_Verif_Email(MailExiste);
};
// Toast <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
var toast='<li id="cbtoast" style="text-align: center;font-weight: 90;">Event Created</li>';
// Create toast
if (toast !== '') {
toastobj = document.createElement('ul');
toastobj.style.position = 'fixed';
//toastobj.style.top = '100px';
//toastobj.style.right = '10px';
//toastobj.style.padding = '25px';
toastobj.style.minWidth = '250px';
toastobj.style.bottom = '-30px';
toastobj.style.marginLeft = '-125px';
toastobj.style.left = '50%';
toastobj.style.padding = '16px';
toastobj.style.textAlign = 'center';
toastobj.style.borderRadius = '2px';
toastobj.style.backgroundColor = '#333';
toastobj.style.color = '#fff';
toastobj.style.zIndex = '15';
toastobj.style.boxShadow = '0 0 3rem rgba(48,48,48,0.4)';
toastobj.innerHTML = toast;
toastobj.style.visibility = 'hidden';
body = document.getElementsByTagName('body')[0];
body.appendChild(toastobj);
}
// Affiche le Toast
function AfficheToast(pText) {
var cbtoast = document.getElementById('cbtoast');
cbtoast.innerHTML=pText;
toastobj.style.visibility = 'visible';
toastobj.style.transition = 'bottom 1s ease-in-out';
toastobj.style.WebkitTransition = 'bottom 1s ease-in-out';
toastobj.style.MozTransition = 'bottom 1s ease-in-out';
toastobj.style.bottom = '70px';
setTimeout(function() {
toastobj.style.transition = 'bottom 1s ease-in-out';
toastobj.style.WebkitTransition = 'bottom 1s ease-in-out';
toastobj.style.MozTransition = 'bottom 1s ease-in-out';
toastobj.style.bottom = '-70px';
},1500);
}
// Préparer la requete pour Get_Verif_Email
function Get_Verif_Email(pCallBack){
var cbuser = GM_getValue("cbuser",'');
var cbpassword = GM_getValue("cbpassword",'');
var requete;
requete="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\"><soap:Body>";
requete += AjBalise("pDatetime",TheDateTime() ); // Renvoie sous forme :AAAAMMJJhhmmss Ex: 20170120093425 pour le 20/01/2017 à 09h34m25s
requete += AjBalise("pEmail",cbuser); // Login du compte CallBridge
requete += AjBalise("pLang","?"); // en anglais
requete += "</soap:Body></soap:Envelope>";
cbAfficheFreeOrPro();
SendHttp(requete,"Get_Verif_Email",pCallBack); // Envoi de la requete en XML et le nom du Service à contacter
}
// Retour Http
function MailExiste(pTexte){
if (pTexte.substring(0,2)=="KO") {GM_setValue("cbFreePro",0);}
cbAfficheFreeOrPro();
}
function SaveLogin(){
var cbuser = document.getElementById('cbmail');
GM_setValue("cbuser", cbuser.value);
var cbpassword = document.getElementById('cbpassword');
GM_setValue("cbpassword", cbpassword.value);
}
// enregistrer les login et password
cbenregistre.onclick = function () {
SaveLogin();
var cbFreePro = GM_getValue("cbFreePro", 0);
if (cbFreePro===0) {alert("Choose a CallBridge or a CallBridgePro account");return;}
menuobj.style.visibility = 'hidden';
location.reload();
};
// essai d'envoi par callbridge
cbessai.onclick = function () {
Put_Notification("Call","0607080910",0);
menuobj.style.visibility = 'hidden';
};
// essai d'envoi par callbridge
cbclose.onclick = function () {
menuobj.style.visibility = 'hidden';
};
function StringToUTF8(pTexte){
sEot=String.fromCharCode(4);
var sText0="", sText1='', sText2=pTexte, sText3='', i=10, t='';
while (sText0!=sText2 && i>0){
i--;sText0=sText2;sText1=sText2;
sText2=sText1.replace("È","è");sText1=sText2;
sText2=sText1.replace("É","é");sText1=sText2;
sText2=sText1.replace("Ê","ê");sText1=sText2;
sText2=sText1.replace("&","¤");sText1=sText2;
sText2=sText1.replace("€","\$");sText1=sText2;
sText2=sText1.replace(sEot,"?");sText1=sText2;
}
var sortie=unescape(encodeURIComponent(sText2));
return sortie;
}
function UTF8ToAscii(pTexte){
var sortie=decodeURIComponent(escape(pTexte));
return sortie;
}
function chBalise(pText,pBalise,pNeme){
var sBalise=pBalise+'="',nNeme=1, n=0;
var iDeb=0, iFin=0, F=1, L=sBalise.length;
if (pNeme) {nNeme=pNeme;}
for (i=0;i<pText.length;i++)
if (F==1 && pText.substr(i,L)==sBalise) {iDeb=i+L;n++;if (n==nNeme) F=2;}
if (iDeb<1) return '';
for (i=iDeb;i<pText.length;i++)
if (F==2 && pText.substr(i,1)=='"') {iFin=i;F=3;}
if (iFin===0) return '';
var i=iFin-iDeb;
return pText.substr(iDeb,i);
}
// On enlève les blancs devant et derrière
function sansBlanc(pText){
var d=0,f=0,sRc=String.fromCharCode(10),sNl=String.fromCharCode(13),sortie='';
// les RC remplacés en blanc
for (i=0;i<pText.length;i++)
if (pText.substr(i,1)==sRc) {sortie+=' ';} else {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// les blancs non sécables sont remplacés
for (i=0;i<pText.length;i++)
if (pText.substr(i,6)==' ') {sortie+=' ';i+=5;} else {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// les doubles blancs en 1 blanc
for (i=0;i<pText.length;i++)
if (pText.substr(i,2)!=' ') {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// les <br> sont remplacés
for (i=0;i<pText.length;i++)
if (pText.substr(i,4)=='<br>') {sortie+='; ';i+=3;} else {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// on délimite
for (i=0;i<pText.length;i++) {
if (pText.substr(i,1)==' ' || pText.substr(i,1)==sRc || pText.substr(i,1)<"!") {d=i;} else {d=i;i=pText.length;}}
for (i=pText.length;i>0;i--) {
if (pText.substr(i,1)==' ' || pText.substr(i,1)==sRc || pText.substr(i,1)<"!") {f=i;} else {f=i;i=0;}}
return pText.substr(d,f-d+1);
}
// On enlève les RC/NL
function sansRC(pText){
var sRc=String.fromCharCode(10),sNl=String.fromCharCode(13),sortie='';
for (i=0;i<pText.length;i++) {
if (pText.substr(i,1)==sRc || pText.substr(i,1)==sNl) {sortie+=' ';} else {sortie+=pText.substr(i,1);}}
return sortie;
}
// on divise la chaine pText avec le séparateur (",")
function extraitChaine(pText,pIndice,pSep){
var sChaines=[], j=1, L=pSep.length, s1='';
sChaines[j]='';sChaines[pIndice]='';
for (i=0;i<pText.length;i++) {
if (pText.substr(i,L)==pSep) {j++;sChaines[j]='';} else {sChaines[j]+=pText.substr(i,1);}
}
if (sChaines[pIndice]==='') {s1=' ';} else {s1=sChaines[pIndice].replace(" "," ");}
return s1;
}
// Tout ce qui est affiché <balise>..affiché..</balise>
function chAffichages(pText){
var j=0,k=0,sortie='',sText2='',k=0;
for (i=0;i<pText.length;i++){
if (pText.substr(i,1)=='>') {k=1;j=1;i++;}
if (pText.substr(i,1)=='<') {k=1;j=0;i++;}
if (j==1) sortie+=pText.substr(i,1);
}
if (k=0) sortie=pText;
sText2=sortie.replace("&","&");sortie=sText2;
sText2=sortie.replace("&","&");sortie=sText2;
return sortie;
}
// Tout ce qui est affiché pour la class xxx : <balise class="xxx">..affiché..</balise>
function chAffichageClass(pText,pClass){
var j=0,k=0,sortie='',sText2='';
var iDebut = pText.indexOf(pClass);
if (iDebut<0) return '';
for (i=iDebut;i<pText.length;i++){
if (pText.substr(i,1)=='>' && j==0) {j=1;i++;}
if (pText.substr(i,1)=='<') {j=2;i++;}
if (j==1) sortie+=pText.substr(i,1);
}
sText2=sortie.replace("&","&");sortie=sText2;
sText2=sortie.replace("&","&");sortie=sText2;
return sortie;
}
// Sans les balises <span> et <i> .. </i> et les NL
function sansSpan(pText){
var sortie='',enSpan=0;
// On enlève les <span>
for (i=0;i<pText.length;i++)
if (pText.substr(i,6)=='<span>') {sortie+=' ';i+=5;} else {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// On enlève les </span>
for (i=0;i<pText.length;i++)
if (pText.substr(i,7)=='</span>') {sortie+=' ';i+=6;} else {sortie+=pText.substr(i,1);}
pText=sortie;sortie='';
// On enlève les <span .. >
for (i=0;i<pText.length;i++)
if (pText.substr(i,6)=='<span ') {
sortie+=' ';i+=5;enSpan=1;}
else {
if (enSpan==1 && pText.substr(i,1)==">" ) {i++;enSpan=0;}
if (enSpan===0) sortie+=pText.substr(i,1);
}
pText=sortie;sortie='';enSpan=0;
// On enlève les <i .. </i>
for (i=0;i<pText.length;i++)
if (pText.substr(i,3)=='<i ' || pText.substr(i,3)=='<i>') {
sortie+=' ';i+=2;enSpan=1;}
else {
if (enSpan==1 && pText.substr(i,4)=="</i>" ) {i+=4;enSpan=0;}
if (enSpan===0) sortie+=pText.substr(i,1);
}
return sortie;
}
// Donne la 1ère partie numérique
function leNumerique(pText){
var sortie='',cOu=0,cNum=0;
for (i=0;i<pText.length;i++){
var car=pText.substr(i,1);cNum=0;
if (car>' '){
if (car>='0' && car<='9') cNum=1; // le caractere est numérique
if (cOu==1 && cNum==0) cOu=2; // fin de recherche
if (cOu==0 && cNum==1) cOu=1; // début de recherche
if (cOu==1 && cNum==1) sortie+=car;
}
}
return sortie;
}