Skip to content

Instantly share code, notes, and snippets.

@pollin14
Created December 9, 2014 23:38
Show Gist options
  • Save pollin14/654855a62243a50aed23 to your computer and use it in GitHub Desktop.
Save pollin14/654855a62243a50aed23 to your computer and use it in GitHub Desktop.
/*
* Widget 1.0
* Author: Wender Lima
*/
!function(e,l,id,s,r,d){
var c=null,
v=null,
jQ=null,
h=e.getElementsByTagName('head')[0],
w=e.getElementById(id);
if(w){
if(!e.getElementById(id+s)){
c=e.createElement(l);
c.setAttribute('id',id+s);
c.setAttribute('rel', 'stylesheet');
c.setAttribute('href','//s3-sa-east-1.amazonaws.com/static2.clickbus.com.br/widget/default/css/widget-style.css');
c.setAttribute('type', 'text/css');
c.setAttribute('media', 'all');
h.appendChild(c);
var sizeTempalte = w.getAttribute('data-template-size');
var templateColor = w.getAttribute('data-template-color');
var headerColor = w.getAttribute('data-header-color');
var parametrosCampanha = w.getAttribute('data-parametros-campanha');
var idioma = w.getAttribute('data-idioma');
var txtLink = w.innerHTML;
if( headerColor === null ){
headerColor = "header-azul";
}
if ( sizeTempalte === null ){
sizeTempalte = '222';
}
if ( idioma === null ){
idioma = 'pt';
}
if ( templateColor === null ){
templateColor = 'cinza';
}
//http://jsfiddle.net/w5kv2dtg/1/ Teste da parte do idioma
var labels = {
'pt' : {
'header' : 'Compre sua <span>passagem de &ocirc;nibus</span>',
'lang_class' : 'wg-clickbus-lang-pt',
'originPlace' : 'Origem',
'originPlace_placeholder' : null,
'destinationPlace' : 'Destino',
'destinationPlace_placeholder' : null,
'departureDate' : 'Ida',
'departureDate_placeholder' : 'placeholder="Data de ida"',
'returnDate' : 'Volta<small>(opcional)</small>',
'returnDate_placeholder' : 'placeholder="Data de volta"',
'send_button' : 'Buscar',
'credito_clickbus' : 'Operado por',
'link_site' : 'http://www.clickbus.com.br'
},
'es' : {
'header' : 'Compra tus boletos <span>de autobús</span>',
'lang_class' : 'wg-clickbus-lang-es',
'originPlace' : 'Origen',
'originPlace_placeholder' : null,
'destinationPlace' : 'Hacia',
'destinationPlace_placeholder' : null,
'departureDate' : 'Salida',
'departureDate_placeholder' : 'placeholder="Data de ida"',
'returnDate' : 'Regreso <small>(opcional)</small>',
'returnDate_placeholder' : 'placeholder="Data de volta"',
'send_button' : 'Buscar',
'credito_clickbus' : 'Ofrecido por',
'link_site' : 'http://www.clickbus.com.mx'
},
'tr' : {
'header' : 'Otobüs <span>Bileti Arama</span>',
'lang_class' : 'wg-clickbus-lang-tr',
'originPlace' : 'Nereden',
'originPlace_placeholder' : null,
'destinationPlace' : 'Nereye',
'destinationPlace_placeholder' : null,
'departureDate' : 'Kalkış tarihi',
'departureDate_placeholder' : null,
'returnDate' : 'Dönüş tarihi',
'returnDate_placeholder' : null,
'send_button' : 'Bilet Ara',
'credito_clickbus' : '',
'link_site' : 'http://www.clickbus.com.tr'
}
};
}
if(!e.getElementById(id+d)){
m='<div id="'+id+d+'" class="wg-clickbus-container wg-clickbus-layout-'+sizeTempalte+' '+id+' '+labels[idioma].lang_class+' wg-clickbus-layout-color-'+templateColor+'"><h2 class="wg-clickbus-header '+headerColor+'">'+ labels[idioma].header +'</h2><form id="frmBus" class="wg-clickbus-form" method="GET" action="'+labels[idioma].link_site+'" role="form" data-parametro-campanha="'+parametrosCampanha+'" data-idioma="'+idioma+'"><div class="holder"><div class="wg-clickbus-holder-input"><label for="originPlace" class="wg-clickbus-lb">'+ labels[idioma].originPlace +':</label><input type="text" id="originPlace" name="originPlace" autocomplete="off" class="wg-clickbus-ipt"><input id="originPlaceSlug" type="hidden"/></div><div class="wg-clickbus-holder-input wg-clickbus-holder-input-margin"><label for="destinationPlace" class="wg-clickbus-lb">'+ labels[idioma].destinationPlace +':</label><input type="text" id="destinationPlace" name="destinationPlace" autocomplete="off" class="wg-clickbus-ipt"><input id="destinationPlaceSlug" type="hidden"/></div></div><div class="holder"><div class="half-holder"><label for="departureDate" class="wg-clickbus-lb">'+ labels[idioma].departureDate +':</label><input type="text" id="departureDate" name="ida" class="wg-clickbus-ipt" '+ labels[idioma].departureDate_placeholder +'></div><div class="half-holder half-holder-margin"><label for="returnDate" class="wg-clickbus-lb">'+ labels[idioma].returnDate +':</label><input type="text" id="returnDate" name="volta" class="wg-clickbus-ipt" '+ labels[idioma].returnDate_placeholder +'></div></div><p class="wg-clickbus-oferecido"><span>'+ labels[idioma].credito_clickbus +'</span> <a href="'+ labels[idioma].link_site +'" class="wg-link-clickbus" target="_blank">'+ txtLink +'</a></p><button type="submit" class="wg-clickbus-b-enviar">'+ labels[idioma].send_button +'</button></form></div>';
w.outerHTML=m;
}
if(!e.getElementById(id+r)){
function inserejQuery(){
jQ=e.createElement('script');
jQ.setAttribute('id','jquery-lib');
jQ.setAttribute('type', 'text/javascript');
jQ.setAttribute('src','//static2.clickbus.com.br/widget/default/js/jquery-1.11.1.min.js');
h.appendChild(jQ);
}
if ( typeof jQuery === 'undefined' ){
inserejQuery();
} else {
jQversion = jQuery.fn.jquery;
if ( parseFloat(jQversion) <= parseFloat('1.8.3') ){
console.log('é menor que a versao, entao insere o meu jquery');
inserejQuery();
}
}
var time = 100;
var insertVendor = function( attempt ){
if ( attempt === 0){
console.log('The vendor scripts could not be loaded.');
}
if( typeof jQuery !== 'undefined' && e.getElementById('jquery-lib') !== 'null'){
c=e.createElement('script');
c.setAttribute('id',id+s);
c.setAttribute('type', 'text/javascript');
c.setAttribute('src','//s3-sa-east-1.amazonaws.com/static2.clickbus.com.br/widget/default/js/wg-clickbus-vendor.js?v=1');
h.appendChild(c);
v=e.createElement('script');
v.setAttribute('id',id+s);
v.setAttribute('type', 'text/javascript');
v.setAttribute('src','//s3-sa-east-1.amazonaws.com/static2.clickbus.com.br/widget/default/js/jquery.validate.min.js');
h.appendChild(v);
}else{
setTimeout(function(){
insertVendor( attempt - 1);
}, time);
}
}
setTimeout( function(){
insertVendor(3);¯¯
}, time);
}
}
}(document,'link','widget-clickbus','-css','-script','-div');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment