callto: pagesjaunes et pagesblanches

By Thomas Papiernik Last update Nov 23, 2007 — Installed 385 times.
// callto: pagesjaunes.fr
// version 1.1
// 2007-11-23
// Copyright 2006,2007 Thomas Papiernik
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details:
// <http://www.gnu.org/licenses/gpl.txt>
//
// Revision history:
// 1.0  2006-10-01 initial version
// 1.1  2007-11-23 Change to match with new version of pagesjaunes.fr
//
// ==UserScript==
// @name          callto: pagesjaunes et pagesblanches
// @namespace     http://www.27300.net/greasemonkey/callto_pagesjaunes/
// @description   Recherche les numeros de telephone dans les pagesjaunes et ajoute un lien callto: pour permettre les appels vers Skype et autres. (Fonctionne seulement avec pagesjaunes.fr)
// @include       http://www.pagesjaunes.fr/*
// ==/UserScript==

( function() {

var getTels = function( node )
{
  /// Search for <b> Tags with only space and numbers
	var a = [];
	var re = new RegExp( '^[0-9- \.]*$' );
	var els = node.getElementsByTagName( "strong" );
	for ( var i=0 , j=els.length; i<j; i++ )
		if ( re.test( els[i].innerHTML ) ) 
		  a.push( els[i] );
	return a;

} // getTels

//<strong>phone number</strong>

	var tels = getTels( document );
	
	for ( j = 0; j < tels.length; j++ )
	{
	
		var telNumber = tels[j].innerHTML.replace( /[^0-9]*/g , '' );

    if (( telNumber.length == 10 ) &&
			  ( telNumber.substring( 0 , 1 ) == '0' ))
		{ // Ajoute +33 pour la France
		  telNumber = '+33' + telNumber.substring(1, telNumber.length) 
		}
				
		var wrapper = document.createElement( 'a' );
		wrapper.setAttribute( 'href' , 'callto://' + telNumber );
		wrapper.appendChild( tels[j].cloneNode( true ) );
						
		tels[j].parentNode.replaceChild( wrapper , tels[j] );
				
	} // for

} )();