 /* ZCAR - Todos os direitos reservados a Guilherme Augusto Madaleno - www.zatec.us - zatec@ymail.com */ /* @description: Faz a troca de imagens dos menus @usage: change_menu('id_do_menu_a_ser_ativado'); */ function change_menu (active) { var menuList = new Array(); menuList = ['m_home','m_veiculos','m_empresa','m_contato']; if (menuList) { for (var i in menuList) { $('#'+menuList[i]).attr('src',imagesColor+menuList[i]+'.png'); } } $('#'+active).attr('src',imagesColor+active+'_a.png'); } /* @description: Carrega pÃ¡ginas atravÃ©s do XMLHTTPRequest @usage: change_page('home'); */ function change_page (gotoPage) { var pageid = ""; if (gotoPage != pageHash) { pageHash = gotoPage; if (gotoPage) { if (strstr(gotoPage, '/')) { pageSplit = gotoPage.split("/"); gotoPage = pageSplit[0]; pageid = 'id=' + pageSplit[1]; } if (gotoPage == 'home' || gotoPage == 'veiculos' || gotoPage == 'empresa' || gotoPage =='contato') { $('#m_'+gotoPage).attr('src', imagesColor+'/m_loading.gif'); } else if (gotoPage == 'veiculoinfo') { $('#loadingSymbol_'+pageSplit[1]).show(); $('#m_veiculos').attr('src', imagesColor+'/m_loading.gif'); } if (gotoPage != 'veiculos') { $('html, body').animate({scrollTop:0}, 1); } open_loading_icon (true); $('#content').hide(); if (requests) requests.abort(); requests = $.ajax ({ type : "POST", url : pagesCall + gotoPage, data : pageid + '&zid=' + info_zid + '&token=' + token, dataType	: "html", error : function (XMLHttpRequest, textStatus, errorThrown) { open_loading_icon (false); window.location.reload(); }, success : function (callBack) { open_loading_icon (false); if (!callBack) { var c = confirm ("Ocorreu um erro durante acesso a esta pagina\nTentar novamente?"); if (c) { window.location.reload(); } else { document.location = root + 'f=noresponse'; } } else if (callBack == 'page_not_found') { show_msg("Ops! A p&aacute;gina que voc&ecirc; acessou nÃ£o existe ou est&aacute; temporariamente indisponÃ­vel!"); redirect_page ('home', true); } else if (callBack == 'token_error') { if (!admErrorCount['change_page']) { admErrorCount['change_page'] = true; window.location.reload(); } else { var c = confirm ("Ocorreu um erro durante acesso a esta pagina\nTentar novamente?"); if (c) { window.location.reload(); } else { document.location = root + 'f=token'; } } } else { $(this).dequeue(); $('#content').html(callBack); currentVehicleID = ""; page_executions (gotoPage, pageid); } } }); } $('#content').show(); } } /* @description: Altera a aparÃªncia dos campos dos formulÃ¡rios de acordo com sua posiÃ§Ã£o @usage: check_each_field('id_do_campo', bool_limpa_campos); */ function check_each_field (field, cleanFields) { if (cleanFields == false) { $('#'+field).removeClass('fields'); $('#'+field).addClass('fields_red'); $('#'+field).focus(); } else { $('#'+field).removeClass('fields_red'); $('#'+field).addClass('fields'); } } /* @description: Checa quais campos de formulÃ¡rios ainda nÃ£o foram preenchidos @usage: check_field(array_campos); */ function check_field (fieldsArray) { if (fieldsArray.length) { for (var i in fieldsArray) { if (!$('#'+fieldsArray[i]).val()) { check_each_field(fieldsArray[i], false); return false; } else { check_each_field(fieldsArray[i], true); } } } else { show_msg('Nenhum campo especificado em array para validar o formulario!'); return false; } return true; } /* @description: Carrega as propostas enviadas pelos visitantes @usage: load_bids(id_veiculo); */ function load_bids (vehicleId) { vehicleId = vehicleId.replace('id=', ''); if (vehicleId) { var proposalLists = ""; $('.proposalHolder').hide(); requests = $.ajax ({ type : "POST", url : ajaxCall + "bids", dataType	: "json", data : 'token=' + token + '&id=' + vehicleId, cache : false, error : function (XMLHttpRequest, textStatus, errorThrown) { $('#proposalData').html('<li><b style="color: red;">Erro:</b> M&oacute;dulo de propostas de ve&iacute;culos n&atilde;o pode ser carregado!<br /><br /><button onclick="load_cars ();">Tentar novamente</button></li>'); }, success : function (callBack) { if (!callBack) { $('#proposalData').html('<li><b style="color: red;">Erro:</b> O sistema n&atilde;o conseguiu carregar o m&oacute;dulo de propostas de ve&iacute;culos. Por favor, tente atualizar esta p&aacute;gina clicando <a href="javascript:void(0)" onclick="window.location.reload();">aqui</a> para corrigir.</li>'); } else if (callBack == 'module_not_found') { $('#proposalData').html('<li><b style="color: red;">Erro:</b> M&oacute;dulo de propostas de ve&iacute;culos n&atilde;o pode ser carregado!</li>'); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'none') { $('#proposalData').html(''); $('.proposalHolder').hide(); } else { if (callBack.length) { for (var i in callBack) { proposalLists += '<li><b>' + callBack[i].nome + '</b> <span>(Enviado em ' + callBack[i].data + ')</span><br />' + callBack[i].mensagem + '</li>'; } $('#proposalData').html(proposalLists); } } } }); $('.proposalHolder').show(); } else { $('.proposalHolder').hide(); } } /* @description: Exibe os veÃ­culos em destaque @usage: load_cars(); */ function load_cars () { var pageContent = ""; var urlFormed = ""; var htmlReturn = ""; var foto = ""; var counter = 0; var randomNumber = 0; $('#veiculosData').hide(); requests = $.ajax ({ type : "POST", url : ajaxCall + "cars", dataType	: "json", data : 'token=' + token, cache : false, error : function (XMLHttpRequest, textStatus, errorThrown) { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de ve&iacute;culos n&atilde;o pode ser carregado!<br /><br /><button onclick="load_cars ();">Tentar novamente</button></td></tr>'); }, success : function (callBack) { if (!callBack) { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> O sistema n&atilde;o conseguiu carregar o m&oacute;dulo de v&iacute;culos. Por favor, tente atualizar esta p&aacute;gina clicando <a href="javascript:void(0)" onclick="window.location.reload();">aqui</a> para corrigir.</td></tr>'); } else if (callBack == 'module_not_found') { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de ve&iacute;culos n&atilde;o pode ser carregado!</td></tr>'); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'none' || !callBack.vehicles) { $('#veiculosData').html('<tr><td>Nenhum ve&iacute;culo foi encontrado!</td></tr>'); } else { for (var i in callBack.vehicles) { randomNumber = Math.floor(Math.random()*11); if (!counter) htmlReturn += '<tr id="car_' + callBack.vehicles[i].id + '">'; counter++; urlFormed	= '<a href="#veiculoinfo/' + callBack.vehicles[i].id + '" onclick="redirect_page(this)">'; if (callBack.vehicles[i].foto) foto = photos + callBack.vehicles[i].foto + '_mini.jpg?nocache=' + randomNumber; else foto = images + 'blank.png'; if (callBack.vehicles[i].vendido == 'true') vendido = '<div class="sold">' + urlFormed + '<img src="' + images + 'sold.png" border="0" /></a></div>'; else vendido = ''; htmlReturn += '<td align="center" valign="top" onmouseover="this.style.border = \'1px solid #999\'; this.style.backgroundColor = \'#f9f9f9\';" onmouseout="this.style.border = \'1px solid #ddd\'; this.style.backgroundColor = \'\';"><ul>'; htmlReturn += '<li class="image">'+ vendido + urlFormed + '<img src="' + foto + '" border="0" width="' + miniPhotoWidth + '" height="' + miniPhotoHeight + '" /><div class="loadingSymbol" id="loadingSymbol_' + callBack.vehicles[i].id + '"><div class="loadingGif"><img src="' + images + 'loading2.gif" border="0" /></div></div></li>'; htmlReturn += '<li class="name">' + urlFormed + callBack.vehicles[i].nome + '</a></li>'; htmlReturn += '<li class="price">' + urlFormed + ' ' + callBack.vehicles[i].valor + '</a></li>'; htmlReturn += '</ul></td>'; if (counter == homeCarsColumns) { htmlReturn += '</tr>'; counter = 0; } } $('#veiculosData').html(htmlReturn); } } }); $('#veiculosData').show(); } /* @description: Carrega o texto institucional da empresa via XMLHTTPRequest @usage: load_company_text(); */ function load_company_text () { var outputText = ""; var c = 0; var randomNumber = 0; $('#companyData').hide(); requests = $.ajax ({ type : "POST", url : ajaxCall + "empresa", dataType	: "json", data : 'token=' + token, cache : false, error : function (XMLHttpRequest, textStatus, errorThrown) { $('#companyData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de informa&ccedil;&otilde;es da empresa n&atilde;o pode ser carregado!<br /><br /><button onclick="load_cars ();">Tentar novamente</button></td></tr>'); }, success : function (callBack) { if (!callBack) { $('#companyData').html('<tr><td><b style="color: red;">Erro:</b> O sistema n&atilde;o conseguiu carregar o m&oacute;dulo de informa&ccedil;&otilde;es da empresa. Por favor, tente atualizar esta p&aacute;gina clicando <a href="javascript:void(0)" onclick="window.location.reload();">aqui</a> para corrigir.</td></tr>'); } else if (callBack == 'module_not_found') { $('#companyData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de informa&ccedil;&otilde;es da empresa n&atilde;o pode ser carregado!</td></tr>'); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'none') { $('#companyData').html('<tr><td>Confira em breve mais informa&ccedil;&otilde;es sobre nossa empresa!</td></tr>'); } else { outputText = callBack.texto; outputText = outputText.replace(/\n/g,'<br />'); $('#companyData').html(outputText); if (callBack.photos && callBack.photos.length) { for (var i in callBack.photos) { randomNumber = Math.floor(Math.random()*9999); c = c + 1; if (callBack.photos[i]) { $('#fotoHolder_' + c).html('<a href="javascript:void(0);" onclick="show_photo_fullscreen(\'' + callBack.photos[i] + '\');"><img src="' + photos + callBack.photos[i] + '_mini.jpg?nocache=' + randomNumber + '" width="160" height="120" border="0" /></a>'); $.preLoadImages(photos + callBack.photos[i] + '_maxi.jpg'); } else { $('#fotoHolder_' + c).html(''); } } } } } }); $('#companyData').show(); } /* @description: Carrega o mapa da pÃ¡gina inicial @usage: load_map(); */ function load_map () { if (GBrowserIsCompatible()) { if (cTelephone2 && cTelephone2 != '() -') var cTelephone2String = ' - ' + cTelephone2; else var cTelephone2String = ""; var geocoder = new GClientGeocoder(); var map = new GMap2(document.getElementById("mapa")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); if (!mapLat || !mapLon) { if (cAddress) { var gmapAddress = cAddress.toLowerCase();; gmapAddress = gmapAddress.replace('-',''); gmapAddress = gmapAddress.replace('bairro',''); geocoder.getLatLng ( gmapAddress, function(point) { if (point) { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml('<h3 style="color: '+color1+'">' + title + '</h3><p>' + cAddress + '</p><p><b>' + cTelephone + cTelephone2String + '</b></p>'); } else { $('#mapHolder').hide(); } } ); } else { $('#mapHolder').hide(); } } else { map.setCenter(new GLatLng(mapLat, mapLon), 13); var latlng = new GLatLng(mapLat,mapLon); map.addOverlay(new GMarker(latlng)); } } else { $('#mapHolder').hide(); } } /* @description: Exibe as Ãºltimas notÃ­cias @usage: load_rss(); */ function load_rss () { var pageContent = ""; var urlFormed = ""; var htmlReturn = ""; $('#noticiasData').hide(); requests = $.ajax ({ type : "POST", url : ajaxCall + "rss", dataType	: "json", data : 'token=' + token, cache : true, error : function (XMLHttpRequest, textStatus, errorThrown) { $('#noticiasData').html('<li><b style="color: red;">Erro:</b> O provedor de not&iacute;cias configurado pelo administrador n&atilde;o existe ou est&aacute; temporariamente indispon&iacute;vel!<br /><br /><button onclick="load_rss ();">Tentar novamente</button></li>'); }, success : function (callBack) { if (!callBack) { $('#noticiasData').html('<li><b style="color: red;">Erro:</b> O sistema n&atilde;o conseguiu carregar o m&oacute;dulo de not&iacute;cias. Por favor, tente atualizar esta p&aacute;gina clicando <a href="javascript:void(0)" onclick="window.location.reload();">aqui</a> para corrigir.</li>'); } else if (callBack == 'module_not_found') { $('#noticiasData').html('<li><b style="color: red;">Erro:</b> MÃ³dulo de not&iacute;cias n&atilde;o pode ser carregado!</li>'); } else if (callBack == 'rss_unavailable') { $('#noticiasData').html('<li><b style="color: red;">Erro:</b> O provedor de not&iacute;cias configurado pelo administrador n&atilde;o existe ou est&aacute; temporariamente indispon&iacute;vel!<br /><br /><button onclick="load_rss ();">Tentar novamente</button></li>'); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'none' || !callBack.news) { $('#noticiasData').html('<li>Nenhuma not&iacute;cia disponÃ­vel no momento</li>'); } else { for (var i in callBack.news) { if (callBack.news[i].title && callBack.news[i].link) { urlFormed = '<a href="javascript:void(false)" onclick="open_news_window(\'' + callBack.news[i].link + '\');" rel="newsWindow">'; htmlReturn += '<li>' + urlFormed + '<strong>' + callBack.news[i].title + '</strong><br /><span style="font-size: 11px;">' + callBack.news[i].description + '</span></a></li>'; } } $('#noticiasData').html(htmlReturn); } } }); $('#noticiasData').show(); } /* @description: Carrega a caixa de busca, buscando os veÃ­culos cadastrados e retornando JSON @usage: load_search_bar(); */ function load_search_bar () { $.ajax ({ type : "POST", url : ajaxCall + 'search', data : 'token=' + token, dataType	: "json", error : function (XMLHttpRequest, textStatus, errorThrown) { $('.search').hide(); }, success : function (callBack) { if (!callBack || callBack == 'page_not_found' || callBack == 'token_error') { $('.search').hide(); } else { $('.search').show(); $('input#searchBox').jsonSuggest(callBack, { maxResults: 10, onSelect: search_start_callback }); } } }); } /* @description: Abre a janela do DETRAN @usage: load_transit_dept(); */ function load_transit_dept () { var detran = window.open(siteDETRAN,'detran','width=820,height=500,left=40,top=40,scrollbars=1,resizable=1,status=0,toolbar=0,location=0,menubar=0,directories=0'); detran.focus(); } /* @description: Busca informaÃ§Ãµes de um veÃ­culo especÃ­fico @usage: load_vehicle_info(car_id_querystring); */ function load_vehicle_info (querystring) { var recomHTML = ""; var shotsHTML = ""; var precache1 = new Array(); var precache2 = new Array(); var randomNumber = 0; requests = $.ajax ({ type : "POST", url : ajaxCall + "vehicle", data : querystring + '&token=' + token + '&zid=' + info_zid, dataType	: "json", error : function (XMLHttpRequest, textStatus, errorThrown) { show_msg('Desculpe, mas as informaÃ§Ãµes deste veÃ­culo estÃ£o temporariamente indisponiveis!'); redirect_page ('home', true); }, success : function (callBack) { if (callBack == 'none') { show_msg('Ve&iacute;culo n&atilde;o encontrado!'); redirect_page ('home', true); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else { if (!callBack) { alert('VeÃ­culo nÃ£o encontrado!'); redirect_page ('home', true); } else { if (callBack.info == 'none') { alert('VeÃ­culo nÃ£o encontrado!'); redirect_page ('home', true); } else { $('#shots').html(''); $('#twitterLink').attr('href', 'http://twitter.com/home?status=' + callBack.info.nome.replace('/', '-') + ' ' + callBack.info.valor + ' - ' + escape(subroot + 'veiculo/' + callBack.info.id)); $('#orkutLink').attr('href', 'http://promote.orkut.com/preview?nt=orkut.com&tt=' + escape(callBack.info.nome + ' ' + callBack.info.valor) + '&du=' + escape(subroot + 'veiculo/' + callBack.info.id) + '&cn=Visite+nosso+estoque+de+veÃ­culos+em+nosso+site!'); $('#facebookLink').attr('href', 'http://www.facebook.com/share.php?u=' + escape(subroot + 'veiculo/' + callBack.info.id)); $('#propostaVeiculo').attr('value', callBack.info.id); $('#indicacaoVeiculo').attr('value', callBack.info.id); (callBack.info.data != '?') ? $('#info_data').html(callBack.info.data) : $('#infoH_data').hide(); (callBack.info.descricao != '?') ? $('#info_descricao').html(callBack.info.descricao) : $('#infoH_descricao').hide(); (callBack.info.opcionais != '?') ? $('#info_opcionais').html(callBack.info.opcionais) : $('#infoH_opcionais').hide(); (callBack.info.combustivel != '?') ? $('#info_combustivel').html(callBack.info.combustivel) : $('#infoH_combustivel').hide(); (callBack.info.cor != '?') ? $('#info_cor').html(callBack.info.cor) : $('#infoH_cor').hide(); (callBack.info.portas != '?') ? $('#info_portas').html(callBack.info.portas) : $('#infoH_portas').hide(); (callBack.info.portas != '?') ? $('#info_portas').html(callBack.info.portas) : $('#infoH_portas').hide(); (callBack.info.km != '?') ? $('#info_km').html(callBack.info.km) : $('#infoH_km').hide(); (callBack.info.valor != '?') ? $('#info_valor').html(callBack.info.valor) : $('#infoH_valor').hide(); if (callBack.info.vendido == 'true') { setTimeout("$('#sold').fadeIn()", 500); currentVehicleStat = 'true'; } else { currentVehicleStat = 'false'; $('#sold').hide(); } if (callBack.info.visitas != '0' && callBack.info.visitas > 1) $('#count_visitas').html(callBack.info.visitas + '<br /><small>visualiza&ccedil;&otilde;es</small>'); else $('#count_visitas').html('Uma<br /><small>visualiza&ccedil;&atilde;o</small>'); if (callBack.info.propostas != '0' && callBack.info.propostas > 1) $('#count_propostas').html(callBack.info.propostas + '<br /><small>propostas</small>'); else $('#countH_propostas').html('Nenhuma<br /><small>proposta</small>'); if (callBack.info.indicacoes != '0' && callBack.info.indicacoes > 1) $('#count_indicacoes').html(callBack.info.indicacoes + '<br /><small>indica&ccedil;&otilde;es</small>'); else $('#countH_indicacoes').html('Nenhuma<br /><small>indica&ccedil;&otilde;o</small>'); shotsTotal = 0; if (!callBack.fotos || callBack.fotos.length == 0) { $('#photos').html('<img src="'+images+'blank2.png" border="0" width="320" height="240" />'); disableFullScreen = true; $('#shotsHolder').hide(); } else { for (var i in callBack.fotos) { if (callBack.fotos[i]) { randomNumber = Math.floor(Math.random()*9999); $('#photos').html('<a href="javascript:void(0);"><img src="' + photos + callBack.fotos[i] + '.jpg?nocache=' + randomNumber + '" border="0" width="320" height="240" /></a>'); $('#fullScreenPhoto').attr('src', photos + callBack.fotos[i] + '_maxi.jpg'); disableFullScreen = false; break; } } for (var j in callBack.fotos) { if (callBack.fotos[j]) { randomNumber = Math.floor(Math.random()*9999); shotsHTML += '<li><a href="javascript:void(0);"><img src="' + photos + callBack.fotos[j] + '_mini.jpg?nocache=' + randomNumber + '" id="shot_'+[j]+'" border="0" width="64" height="48" onclick="show_car_photo_fullscreen(this, \'' + callBack.fotos[j] + '\');" /></a></li>'; $("<img>").attr("src", photos + callBack.fotos[i]+".jpg"); $("<img>").attr("src", photos + callBack.fotos[i]+"_maxi.jpg"); precache1[j] = photos + callBack.fotos[j] + '.jpg'; precache2[j] = photos + callBack.fotos[j] + '_maxi.jpg'; shotsTotal++; } } if (precache1.length && precache2.length) { $.preLoadImages(precache1); $.preLoadImages(precache2); } if (shotsHTML && shotsTotal > 1) { $('#shots').html(shotsHTML); $('#shots img').css('opacity',0.5); $('#shot_0').css('opacity',1); } else { $('#shotsHolder').hide(); } } if (callBack.video) { randomNumber = Math.floor(Math.random()*9999); $('#shots').append('<li><a href="javascript:void(0);"><img src="' + photos + callBack.info.id + '_' + callBack.video + '_video.jpg?nocache=' + randomNumber + '" id="video" border="0" width="64" height="48" onclick="show_car_video(this, \'' + callBack.video + '\');" /><div class="youtubeLogo"></div></a></li>'); $('#shotsHolder').show(); $('#video').css('opacity',0.5); if (!callBack.fotos) $('#photos').html('<object width="320" height="240" style="z-index: 0;"><param name="movie" value="http://www.youtube.com/v/' + callBack.video + '&hl=en_US&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/' + callBack.video + '&hl=en_US&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="240" wmode="transparent"></embed></object>'); } if (callBack.seetoo && callBack.seetoo.length != 0) { if (callBack.seetoo.id && callBack.seetoo.nome) { recomHTML = '<a href="#veiculoinfo/' + callBack.seetoo.id + '" onclick="redirect_page(this)">' + callBack.seetoo.nome + ' - <span>' + callBack.seetoo.valor + '</span></a>'; $('#recom').html(recomHTML); } else { $('#recomHolder').hide(); } } else { $('#recomHolder').hide(); } $('#ptitleText').html(callBack.info.nome); setTimeout("$('#photos').fadeIn()", 500); $('#infoLoading').hide(); $('#infoTable').show(); } } } } }); } /* @description: Abre ou fecha a tela de carregamento do site @usage: open_loading_icon ('true'); */ function open_loading_icon (closeIt) { if (closeIt) { $.blockUI ({ fadeIn : 2000, fadeOut : 0, message : $('#openLoading'), overlayCSS : { backgroundColor : '#ffffff', backgroundImage : 'url(' + images + 'overlay.png)', opacity : 0.5 }, css: { width : '60px', height : '60px', left : '50%', top : '50%', margin : '-30px 0 0 -30px', backgroundColor : '#fff', border : 'none', cursor : 'busy' } }); loadingOpen = true; } else { loadingOpen = false; $.unblockUI(); } } /* @description: Abre as notÃ­cias do site em uma janela @usage: open_news_window('http://www.site.br'); */ function open_news_window (url) { if (url) { var noticiaWindow = window.open (url, 'noticia', 'width='+screen.width+',height='+screen.height+',left=20,top=20,scrollbars=1,resizable=1,status=0,toolbar=0,location=0,menubar=0,directories=0'); noticiaWindow.focus(); } else { show_msg('Ocorreu um erro ao abrir esta not&iacute;cia. Por favor, tente mais tarde!'); } } /* @description: Carrega os scripts utilizados nas pÃ¡ginas @usage: page_executions('vehicle',1); */ function page_executions (pageDestiny, pageid) { switch (pageDestiny) { default: case 'home': $('.slide').fadeIn(); $('#ptitle').hide(); $('#ptitleText').html(''); change_menu('m_home'); load_cars(); setTimeout('load_rss()', 1000); setTimeout("$('#slide').show()", 500); $("#content a[rel='tooltip']").tooltip( { track: true, delay: 0, showURL: false, fade: 100 }); if (showMaps != "0") { load_map (); } else { $('#mapHolder').hide(); $('#botCol2').hide(); $('#botCol1').attr('width','100%'); } if (messages) { show_msg(messages); messages = ""; } if (titleSwitch == 'ok') { show_msg("O boleto para pagamento deste m&ecirc;s est&aacute; dispon&iacute;vel para download no topo de sua loja virtual!"); titleSwitch = ""; } break; case 'veiculos': $('.slide, #slide').hide(); $('#ptitle').show(); $('#ptitleText').html('Nosso estoque'); change_menu('m_veiculos'); var routineHash = document.location.hash; if (strstr(routineHash, 'busca=')) { routineHash = routineHash.split('/'); routineHash = routineHash.pop(); routineHash = routineHash.split('='); routineHash = routineHash.pop(); if (routineHash) { show_car_list('busca', routineHash); $('#infoSearch').html('Buscando por: <b>' + routineHash + '</b> - <a href="#veiculos" rel="hlink" onclick="redirect_page(this)">Mostrar tudo</a>'); $('#infoSearch').show(); $('#infoOrder').hide(); } else { show_car_list(); $('#infoOrder').show(); } } else { show_car_list(); $('#infoOrder').show(); } $("#changeListOrder").change(function(e) { show_car_list(this.value, ""); }); $(".vehiclePic").tooltip( { track: true, delay: 0, showURL: false, fade: 100, bodyHandler: function() { return $("<img/>").attr("src", $(this).attr('rel')); } }); $("#content a[rel='tooltip']").tooltip( { track: true, delay: 0, showURL: false, fade: 100 }); break; case 'empresa': $('.slide, #slide').hide(); $('#ptitle').show(); $('#ptitleText').html('Nossa empresa'); change_menu('m_empresa'); load_company_text (); $('.fullScreenHolder').click(function() { $('#fullScreenPhoto').hide(); $('#fullScreenPhoto').attr('src', images + 'nothing.png'); $.unblockUI(); }); $("#content a[rel='tooltip']").tooltip( { track: true, delay: 0, showURL: false, fade: 100 }); if (showMaps == "0") { $('#mapHolder2').hide(); } break; case 'contato': $('.slide, #slide').hide(); $('#ptitle').show(); $('#ptitleText').html('Entre em contato'); change_menu('m_contato'); $("#telefone").mask("(99) 9999-9999"); $(".fields").keyup(function () { $(this).removeClass('fields_red'); $(this).addClass('fields'); }); $("#content a[rel='tooltip']").tooltip( { track: true, delay: 0, showURL: false, fade: 100 }); break; case 'veiculoinfo': $('.slide, #slide').hide(); $('#infoLoading').show(); $('#ptitle').show(); $('#ptitleText').html('Carregando...'); change_menu('m_veiculos'); load_vehicle_info(pageid); currentVehicleID = pageid; load_bids(pageid); $('#photos').click(function() { if (!disableFullScreen) { $.blockUI( { fadeIn : 0, fadeOut : 0, message : $('.fullScreenHolder'), overlayCSS : { backgroundColor : '#ffffff', backgroundImage : 'url(' + images + 'overlay.png)', opacity : 0.9, cursor : 'default' }, css: { width : '640px', height : '480px', left : '50%', top : '50%', marginLeft : '-320px', marginTop : '-240px', border : '10px solid white', cursor : 'pointer' } }); $('#fullScreenPhoto').fadeIn(); } }); $('.fullScreenHolder').click(function() { $('#fullScreenPhoto').hide(); $.unblockUI(); }); $("#content a[rel='tooltip']").tooltip( { track: true, delay: 0, showURL: false, fade: 100 }); $(".fields").keyup(function () { $(this).removeClass('fields_red'); $(this).addClass('fields'); }); $("#propostaTelefone").mask("(99) 9999-9999"); break; } if (adminStats == 'logged') { adminMenu (pageDestiny); } } /* @description: Recurso para recuperar senhas @usage: password_recovery (); */ function password_recovery () { var p = prompt("Qual Ã© o e-mail que estÃ¡ vinculado Ã sua revenda virtual?", ''); if (p) { var c = confirm("O endereÃ§o estÃ¡ correto?\n'" + p + "'"); if (c) { open_loading_icon(true); $.ajax ({ type : "POST", url : ajaxCall + 'password', dataType	: "text", data : 'token=' + token + '&email=' + p, error : function (XMLHttpRequest, textStatus, errorThrown) { $.unblockUI(); show_msg('Ocorreu um erro ao tentar recuperar sua senha. Por favor, contate o suporte ZCAR.'); return false; }, success : function (callBack) { switch (callBack) { default: $.unblockUI(); show_msg('Ocorreu um erro ao tentar recuperar sua senha. Por favor, contate o suporte ZCAR.'); return false; break; case 'ok': $.unblockUI(); show_msg('Os dados para recuperar sua senha foram enviados para seu e-mail.'); return false; break; case 'email_mismatch': $.unblockUI(); show_msg("Desculpe, mas o e-mail '" + p + "' n&atilde;o est&aacute; vinculado &agrave; sua revenda ZCAR."); return false; break; } } }); } } } /* @description: Redireciona pÃ¡ginas @usage: redirect_page(this); */ function redirect_page (object, redirectOnly) { if (redirectOnly) { $.historyLoad(object); } else { if (object.href) { var hash	= object.href; hash = hash.replace(/^.*#/, ''); $.historyLoad(hash); return false; } } } /* @description: FunÃ§Ã£o de callback utilizada pela busca rÃ¡pida @usage: search_start_callback (id_veiculo); */ function search_start_callback (item) { if (item.id) { $.historyLoad('veiculoinfo/' + item.id); } } /* @description: Envia proposta Ã revenda via XMLHTTPRequest @usage: send_bid (); */ function send_bid () { var checkReturn = false; var bidFields = [ 'propostaNome', 'propostaTelefone', 'propostaEmail', 'propostaMensagem' ]; var id_veiculo = $('#propostaVeiculo'); var nome = $('#propostaNome'); var telefone = $('#propostaTelefone'); var email = $('#propostaEmail'); var mensagem = $('#propostaMensagem'); var copia = $('#propostaCopia'); var pbutton = $('#propostaButton'); pbutton.attr('disabled','disabled'); pbutton.html('Enviando...'); checkReturn = check_field (bidFields); if (checkReturn) { requests = $.ajax ({ type : "POST", url : handlerCall + "proposta", data : 'token=' + token + '&zid=' + info_zid + '&id='+id_veiculo.val()+'&nome='+nome.val()+'&telefone='+telefone.val()+'&email='+email.val()+'&mensagem='+mensagem.val()+'&copia='+copia.attr('checked'), dataType	: "text", error : function (XMLHttpRequest, textStatus, errorThrown) { show_msg('Ocorreu um erro no servidor durante o envio de sua solicita&ccedil;&atilde;o. Poderia tentar novamente daqui a alguns minutos?'); }, success : function (callBack) { if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'error_email') { show_msg('Por favor, digite um e-mail vÃ¡lido!'); email.attr('value',''); email.addClass('fields_red'); email.focus(); } else if (callBack == 'error_no_payment') { show_msg('Desculpe, mas n&atilde;o foi poss&iacute;vel enviar uma proposta no momento. Tente mais tarde!'); } else if (callBack == 'error_fields') { show_msg('Por favor, verifique se todos os campos foram preenchidos e tente novamente!'); } else if (callBack == 'error_car_not_found') { show_msg('Desculpe, mas o carro para qual estÃ¡ enviando esta proposta acaba de ser apagado pelo administrador do site!'); nome.attr('value',''); telefone.attr('value',''); email.attr('value',''); mensagem.attr('value',''); copia.attr('checked','checked'); } else if (callBack == 'error_sql') { show_msg('Desculpe, mas ocorreu um erro ao enviar sua proposta. Por favor, tente novamente mais tarde!'); } else if (callBack == 'ok') { show_msg('Proposta enviada com sucesso!'); telefone.attr('value',''); mensagem.attr('value',''); copia.attr('checked','checked'); $('html, body').animate({scrollTop:0}, 1); load_bids(currentVehicleID); } else { show_msg('Ocorreu um erro desconhecido durante envio de solicitaÃ§Ã£o. Por favor, tente novamente mais tarde!'); } } }); } pbutton.attr('disabled',''); pbutton.html('Enviar proposta'); } /* @description: Envia mensagem via XMLHTTPRequest para revendedor @usage: send_message(); */ function send_message () { var checkReturn = false; var messageFields = [ 'nome', 'email', 'telefone', 'assunto', 'mensagem' ]; var nome = $('#nome'); var email = $('#email'); var telefone = $('#telefone'); var horario = $('#horario'); var referencia = $('#referencia'); var assunto = $('#assunto'); var mensagem = $('#mensagem'); var mbutton = $('#enviarMensagemButton'); mbutton.attr('disabled','disabled'); mbutton.html('Enviando...'); checkReturn = check_field (messageFields); if (checkReturn) { requests = $.ajax ({ type : "POST", url : handlerCall + "mensagem", data : 'token=' + token + '&zid=' + info_zid + '&nome='+nome.val()+'&email='+email.val()+'&telefone='+telefone.val()+'&horario='+horario.val()+'&referencia='+referencia.val()+'&assunto='+assunto.val()+'&mensagem='+mensagem.val(), dataType	: "text", error : function (XMLHttpRequest, textStatus, errorThrown) { show_msg('N&atilde;o foi poss&iacute;vel enviar sua mensagem por um erro no servidor. Por favor, tente novamente!'); }, success : function (callBack) { if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'error_email') { show_msg('Por favor, digite um e-mail v&aacute;lido!'); email.attr('value',''); email.addClass('fields_red'); email.focus(); } else if (callBack == 'error_fields') { show_msg('Por favor, verifique se todos os campos foram preenchidos e tente novamente!'); } else if (callBack == 'error_sql') { show_msg('Desculpe, mas ocorreu um erro ao enviar sua proposta. Por favor, tente novamente mais tarde!'); } else if (callBack == 'ok') { show_msg('Mensagem enviada com sucesso!'); telefone.attr('value',''); assunto.attr('value',''); mensagem.attr('value',''); $('html, body').animate({scrollTop:0}, 1000); } else { show_msg('Ocorreu um erro desconhecido durante envio da mensagem. Por favor, tente novamente mais tarde!'); } } }); } mbutton.attr('disabled',''); mbutton.html('Enviar mensagem'); } /* @description: Busca por um veÃ­culo especÃ­fico via XMLHTTPRequest @usage: show_car_list (tipo, stringBusca); */ function show_car_list (type, searchString) { var pageContent = ""; var urlFormed = ""; var htmlReturn = ""; var counter = 0; var vendido = ""; var foto = ""; var randomNumber = 0; $('#veiculosData').hide(); $('#veiculosData').html('<tr><td>Buscando <img src="' + images + 'dotload.gif" border="0" /></td></tr>'); if (searchString) searchString = "&query=" + searchString; requests = $.ajax ({ type : "POST", url : ajaxCall + "vehicles_list", data : 'token=' + token + "&type=" + type + searchString, dataType	: "json", cache : false, error : function (XMLHttpRequest, textStatus, errorThrown) { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de ve&iacute;culos n&atilde;o pode ser carregado!</td></tr>'); }, success : function (callBack) { if (!callBack) { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> O sistema n&atilde;o conseguiu carregar o m&oacute;dulo de v&iacute;culos. Por favor, tente atualizar esta p&aacute;gina clicando <a href="javascript:void(0)" onclick="window.location.reload();">aqui</a> para corrigir.</td></tr>'); } else if (callBack == 'module_not_found') { $('#veiculosData').html('<tr><td><b style="color: red;">Erro:</b> M&oacute;dulo de ve&iacute;culos n&atilde;o pode ser carregado!</td></tr>'); } else if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'none' || !callBack.vehicles) { $('#veiculosData').html('<tr><td>Nenhum ve&iacute;culo foi encontrado!</td></tr>'); } else { for (var i in callBack.vehicles) { randomNumber = Math.floor(Math.random()*9999); if (!counter) htmlReturn += '<tr id="car_' + callBack.vehicles[i].id + '">'; counter++; urlFormed	= '<a href="#veiculoinfo/' + callBack.vehicles[i].id + '" onclick="redirect_page(this)">'; if (callBack.vehicles[i].foto) foto = photos + callBack.vehicles[i].foto + '_mini.jpg?nocache=' + randomNumber; else foto = images + 'blank.png'; if (callBack.vehicles[i].vendido == 'true') vendido = '<div class="sold">' + urlFormed + '<img src="' + images + 'sold.png" border="0" /></a></div>'; else vendido = ''; htmlReturn += '<td align="center" valign="top" onmouseover="this.style.border = \'1px solid #999\'; this.style.backgroundColor = \'#f9f9f9\';" onmouseout="this.style.border = \'1px solid #ddd\'; this.style.backgroundColor = \'\';"><ul>'; htmlReturn += '<li class="image">'+ vendido + urlFormed + '<img src="' + foto + '" border="0" width="' + miniPhotoWidth + '" height="' + miniPhotoHeight + '" /><div class="loadingSymbol" id="loadingSymbol_' + callBack.vehicles[i].id + '"><div class="loadingGif"><img src="' + images + 'loading2.gif" border="0" /></div></div></li>'; htmlReturn += '<li class="name">' + urlFormed + callBack.vehicles[i].nome + '</a></li>'; htmlReturn += '<li class="price">' + urlFormed + ' ' + callBack.vehicles[i].valor + '</a></li>'; htmlReturn += '</ul></td>'; if (counter == homeCarsColumns) { htmlReturn += '</tr>'; counter = 0; } } $('#veiculosData').html(htmlReturn); } } }); $('#veiculosData').show(); } /* @description: Abre a foto do veÃ­culo selecionado em tela maior @usage: show_car_photo_fullscreen (imagem, fotoGrande); */ function show_car_photo_fullscreen (source, bigPhoto) { var randomNumber = Math.floor(Math.random()*11); if (source) { if (shotsTotal > 1) { for (i = 0; i < shotsTotal; i++) { $('#shot_'+i).css('opacity',0.5); } $('#video').css('opacity',0.5); } $('#'+source.id).css('opacity',1); $('#photos').fadeOut(20); $("#photos").queue(function () { $(this).dequeue(); $('#photos').html('<a href="javascript:void(0);" id="fullSize"><img src="'+subroot+'photos/'+bigPhoto+'.jpg?nocache=' + randomNumber + '" border="0" width="320" height="240" /></a>'); $('#fullScreenPhoto').attr('src',subroot+'photos/'+bigPhoto+'_maxi.jpg'); $('#photos').fadeIn(300); }); } } /* @description: Abre a foto do veÃ­culo selecionado em tela maior @usage: show_car_video (imagem, 'xZxUPkhggXM'); */ function show_car_video (source, youtubeID) { var randomNumber = Math.floor(Math.random()*11); if (source) { if (shotsTotal > 1) { for (i = 0; i < shotsTotal; i++) { $('#shot_'+i).css('opacity',0.5); } } $('#video').css('opacity',1); $('#photos').fadeOut(20); $("#photos").queue(function () { $(this).dequeue(); $('#photos').html('<object width="320" height="240" style="z-index: 0;"><param name="movie" value="http://www.youtube.com/v/' + youtubeID + '&hl=en_US&fs=1&autoplay=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/' + youtubeID + '&hl=en_US&fs=1&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="240" wmode="transparent"></embed></object>'); $('#photos').fadeIn(300); }); } } /* @description: Carrega o mapa grande da revenda @usage: show_company_map(); */ function show_company_map () { if (cTelephone2 && cTelephone2 != '() -') var cTelephone2String = ' - ' + cTelephone2; else var cTelephone2String = ""; if (GBrowserIsCompatible()) { var geocoder = new GClientGeocoder(); var map = new GMap2(document.getElementById("mapa")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); if (!mapLat || !mapLon) { if (cAddress.length >= 5) { var gmapAddress = cAddress.toLowerCase();; gmapAddress = gmapAddress.replace('-',''); gmapAddress = gmapAddress.replace('bairro',''); geocoder.getLatLng ( gmapAddress, function(point) { if (point) { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml('<h3 style="color: '+color1+'">' + title + '</h3><p>' + cAddress + '</p><p><b>'+cTelephone+'</b> <b>'+cTelephone2String+'</b></p>'); } else { $('#mapBigHolder').hide(); } } ); } else { $('#mapBigHolder').hide(); } } else { if (cAddress.length >= 5) { var gmapAddress = cAddress.toLowerCase();; gmapAddress = gmapAddress.replace('-',''); gmapAddress = gmapAddress.replace('bairro',''); } map.setCenter(new GLatLng(mapLat, mapLon), 13); var latlng = new GLatLng(mapLat,mapLon); var marker = new GMarker(latlng); map.addOverlay(marker); marker.openInfoWindowHtml('<h3 style="color: '+color1+'">' + title + '</h3><p>' + cAddress + '</p><p><b>'+cTelephone+'</b> <b>'+cTelephone2String+'</b></p>'); } } else { $('#mapBigHolder').hide(); } } /* @description: Exibe mensagens de alerta ao usuÃ¡rio @usage: show_msg('Hello World!'); */ function show_msg (msg) { if (msg) { $('#messageText').hide(); $('#messageText').html(msg); $.blockUI( { fadeIn : 0, fadeOut : 0, focusInput : false, message : $('#messageHolder'), overlayCSS : { background : 'none', backgroundImage	: 'url(' + images + 'overlay.png)', opacity : 0.9, cursor : 'default' }, css: { width : '420px', height : '100px', left : '50%', top : '50%', marginLeft : '-250px', marginTop : '-50px', border : 'none', padding : '40px', background : 'none', backgroundImage	: 'url(' + images + 'message.png)', cursor : 'default' } }); $('#messageText').show(); } else { $.unblockUI(); $('#messageText').html(''); } } /* @description: Exibe as fotos da empresa em fullscreen @usage: show_photo_fullscreen('url_da_imagem'); */ function show_photo_fullscreen (source) { var randomNumber = Math.floor(Math.random()*11); if (source) { $('#fullScreenPhoto').attr('src', photos + source+ '_maxi.jpg?nocache=' + randomNumber); $.blockUI( { fadeIn : 0, fadeOut : 0, message : $('.fullScreenHolder'), overlayCSS : { backgroundColor : '#ffffff', backgroundImage : 'url(' + images + 'overlay.png)', opacity : 0.9, cursor : 'default' }, css: { width : '640px', height : '480px', left : '50%', top : '50%', marginLeft : '-320px', marginTop : '-240px', border : '10px solid white', cursor : 'pointer' } }); $('#fullScreenPhoto').fadeIn(200); } else { $('#fullScreenPhoto').attr('src', images + 'nothing.png'); } } /* @description: Faz uma pesquisa em uma string, similar a funÃ§Ã£o utilizada no PHP @usage: strstr('string a ser pesquisada','string'); */ function strstr (haystack, needle, bool) { var pos = 0; haystack += ''; pos = haystack.indexOf( needle ); if (pos == -1) { return false; } else { if (bool) { return haystack.substr( 0, pos ); } else { return haystack.slice( pos ); } } } /* @description: Testa os campos submetidos no formulÃ¡rio de login @usage: submit_login(); */ function submit_login (open) { if (open) { var holder = $('#loginHolder'); $.blockUI( { fadeIn : 0, fadeOut : 0, message : holder, overlayCSS : { backgroundColor : '#ffffff', backgroundImage : 'url(' + images + 'overlay.png)', opacity : 0.9, cursor : 'default' }, css: { width : holder.width() + 'px', height : holder.height() + 'px', left : '50%', top : '50%', marginLeft : '-' + (holder.width()/2) + 'px', marginTop : '-' + (holder.height()/2) + 'px', border : '10px solid white', cursor : 'default' } }); } else { var email = $('#loginEmail'); var password = $('#loginPassword'); if (!email.val()) { email.attr('value',''); email.addClass('fields_red'); email.focus(); return false; } else if (!password.val()) { password.attr('value',''); password.addClass('fields_red'); password.focus(); return false; } else { document.loginAdmin.submit(); } } } /* @description: Envia indicaÃ§Ã£o ao amigo via XMLHTTPRequest @usage: suggest_vehicle (); */ function suggest_vehicle () { var checkReturn = false; var indicacaoFields = [ 'indicacaoNome', 'indicacaoNomeAmigo', 'indicacaoEmail', 'indicacaoEmailAmigo' ]; var id_veiculo = $('#indicacaoVeiculo'); var nome = $('#indicacaoNome'); var nomeAmigo = $('#indicacaoNomeAmigo'); var email = $('#indicacaoEmail'); var emailAmigo = $('#indicacaoEmailAmigo'); var newsletter = $('#indicacaoNewsletter'); var ibutton = $('#indicacaoButton'); ibutton.attr('disabled','disabled'); ibutton.html('Enviando...'); checkReturn = check_field (indicacaoFields); if (checkReturn) { requests = $.ajax ({ type : "POST", url : handlerCall + "indicacao", data : 'token=' + token + '&zid=' + info_zid + '&id='+id_veiculo.val()+'&nome='+nome.val()+'&nomeAmigo='+nomeAmigo.val()+'&email='+email.val()+'&emailAmigo='+emailAmigo.val()+'&newsletter='+newsletter.attr('checked'), dataType	: "text", error : function (XMLHttpRequest, textStatus, errorThrown) { show_msg('Ocorreu um erro no servidor durante o envio de sua solicita&ccedil;&atilde;o. Poderia tentar novamente daqui a alguns minutos?'); }, success : function (callBack) { if (callBack == 'token_error') { alert('Ops! Sera necessario atualizar esta pagina para continuar!'); window.location.reload(); } else if (callBack == 'error_user_canceled') { show_msg("Desculpe, mas seu amigo optou em nÃ£o receber mais mensagens pelo e-mail '" + emailAmigo.val() + "'."); emailAmigo.attr('value',''); emailAmigo.addClass('fields_red'); emailAmigo.focus(); } else if (callBack == 'error_email') { show_msg('Por favor, verifique se ambos os e-mails digitados sÃ£o vÃ¡lidos!'); email.attr('value',''); email.addClass('fields_red'); email.focus(); emailAmigo.attr('value',''); emailAmigo.addClass('fields_red'); } else if (callBack == 'error_fields') { show_msg('Por favor, verifique se todos os campos foram preenchidos e tente novamente!'); } else if (callBack == 'error_car_not_found') { show_msg('Desculpe, mas o carro para qual estÃ¡ enviando esta indicaÃ§Ã£o acaba de ser apagado pelo administrador do site!'); nome.attr('value',''); nomeAmigo.attr('value',''); email.attr('value',''); emailAmigo.attr('value',''); newsletter.attr('checked','checked'); } else if (callBack == 'error_sql') { show_msg('Desculpe, mas ocorreu um erro ao enviar sua indicaÃ§Ã£o. Por favor, tente novamente mais tarde!'); } else if (callBack == 'ok') { show_msg('IndicaÃ§Ã£o enviada com sucesso!'); nomeAmigo.attr('value',''); emailAmigo.attr('value',''); newsletter.attr('checked','checked'); $('html, body').animate({scrollTop:0}, 1); load_vehicle_info(currentVehicleID); } else { show_msg('Ocorreu um erro desconhecido durante envio de solicitaÃ§Ã£o. Por favor, tente novamente mais tarde!'); } } }); } ibutton.attr('disabled',''); ibutton.html('Enviar indica&ccedil;&atilde;o'); } /* @description: Decodifica URL @usage: urldecode('string'); */ function urldecode (encodedString) { if (encodedString) { var output = encodedString; var binVal, thisString; var myregexp = /(%[^%]{2})/; while ((match = myregexp.exec(output)) != null && match.length > 1 && match[1] != '') { binVal = parseInt(match[1].substr(1),16); thisString = String.fromCharCode(binVal); output = output.replace(match[1], thisString); } return output; } } /* @description: Codifica URL @usage: urlencode('string'); */ function urlencode (clearString) { if (clearString) { var output = ''; var x = 0; clearString = clearString.toString(); var regex = /(^[a-zA-Z0-9_.]*)/; while (x < clearString.length) { var match = regex.exec(clearString.substr(x)); if (match != null && match.length > 1 && match[1] != '') { output += match[1]; x += match[1].length; } else { if (clearString[x] == ' ') output += '+'; else { var charCode = clearString.charCodeAt(x); var hexVal = charCode.toString(16); output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase(); } x++; } } return output; } } 
