Created
June 13, 2012 20:51
-
-
Save tubbo/2926446 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <% # $ea is replacing $ for accessing jquery in the case of another js lib %> | |
| var $ea = jQuery.noConflict(); | |
| function l(o){return o.length;} | |
| function tlc(s){return s.toLowerCase();} | |
| function tf(f,d){w("<div class='elapifield'>" + lb(d) + br + "<input type=\"text\" id=\"" + ak + f + "\" name=\"" + tlc(lb(f)) + "\"></div>");} | |
| function ta(f,d){w(lb(d)+br+'<textarea id="'+ak+f+'" name="'+tlc(lb(f))+'"></textarea>'+br);} | |
| function hf(f,v){w('<input type="hidden" name="'+lb(f)+'" value="'+v+'">');} | |
| function sf(f){w("<div class='elapifield'>");w('<select name="'+tlc(lb(f))+'" id="'+ak+f+'">');} | |
| function op(v,t){w('<option value="'+v+'">'+t+'</option>');} | |
| function sfe(){w('</select></div>');} | |
| function ep(f,e){er.push(ec(e));fe(f).css('background-color','#FF6A6A');} | |
| function bt(f){w('<input type="button" id="'+ak+f+'" value="Save" onClick="e_'+f+'_();">');} | |
| function czti(f){w('<img src="" id="'+ak+f+'" style="display:none;">');} | |
| function lti(f,v){zts=-1;f.attr('src','http://<%= request.host %>/v1/'+ak+'/zipvalidate/'+v);} | |
| function rmvc(f){fe(f).css('background-color','#FFFFFF');} | |
| function pf(v){return v.replace(/\(/g,'').replace(/\)/g,'').replace(/-/g,'').replace(/\./g,'').replace(' ','');} | |
| function vp(v){return (l(v) == 10 && isnm(v));} | |
| function cpops(){$ea.each(cps.it,function() {w('<option value="'+this.i+'">'+this.n+'</option>')});} | |
| function scops(cid) { | |
| var hm; | |
| hm = ""; | |
| $ea.each(scs.it, function() { | |
| if (this.ci == cid) { | |
| hm += "<option value='" + this.i + "'>" + this.n + "</option>"; | |
| } | |
| }); | |
| return hm; | |
| } | |
| function akops() { | |
| $ea.each(aks.it, function() { | |
| w("<option value=\"" + this.k + "\">" + this.dm + "</option>"); | |
| }); | |
| } | |
| function ff(){$ea('#' + fid).append(fd);} | |
| function ec(f) | |
| { | |
| switch(f) | |
| { | |
| case nm: return "Name is required"; | |
| case p: return "Phone is required"; | |
| case pl: return "Phone must be 10 digits"; | |
| case iv: return "Zip Code is invalid"; | |
| case cp: return "You must select a need"; | |
| } | |
| } | |
| function lb(f) | |
| { | |
| switch (f) { | |
| case nm: | |
| return "Name"; | |
| case p: | |
| return "Phone"; | |
| case em: | |
| return "Email"; | |
| case z: | |
| return "Zipcode"; | |
| case ds: | |
| return "Description"; | |
| case dsl: | |
| return "Description of Need (optional)"; | |
| case ru: | |
| return "redirect_url"; | |
| case eu: | |
| return "error_url"; | |
| case sep: | |
| return "show_error_page"; | |
| case cp: | |
| return "copypoint_id"; | |
| case apk: | |
| return "api_key"; | |
| case apkl: | |
| return "Directory"; | |
| case bn: | |
| return "business_number"; | |
| case bnl: | |
| return "Business Number"; | |
| case cn: | |
| return "contact_number"; | |
| case cnl: | |
| return "Contact Number"; | |
| case bw: | |
| return "business_website"; | |
| case bwl: | |
| return "Business Website"; | |
| case cat: | |
| return "subcategory_id"; | |
| case catl: | |
| return "Category Area"; | |
| case cna: | |
| return "contact_name"; | |
| case cnal: | |
| return "Contact Name"; | |
| case sct: | |
| return "subcategory_id"; | |
| case sctl: | |
| return "Category"; | |
| } | |
| } | |
| function fe(f) {return $ea('#'+ak+f);} | |
| function fv(f) {return fe(f).val();} | |
| function w(c){fd+=c} | |
| function e_sb_() { | |
| er = new Array(); | |
| rmvc(nm);rmvc(p);rmvc(z);rmvc(cp); | |
| if(fv(nm)==bl)ep(nm,nm); | |
| if(fv(p)==bl)ep(p,p); | |
| if(!vp(pf(fv(p))))ep(p,pl); | |
| if(zts==2)ep(z,iv); | |
| if(fv(cp)==0)ep(cp,cp); | |
| if(er.length == 0)fe("leadform").submit(); | |
| } | |
| function isnm(n) {return !isNaN(parseFloat(n)) && isFinite(n);} | |
| var nm="nm",p="p",pl="pl",em="em",z="z",cp="cp",ds="ds",dsl="dsl",sb="sb",br="<br>",selen="</select></div>",ru="ru",eu="eu",sep="sep",bl="",iv="iv",elti="elti",zts=-1; | |
| var er=new Array(); | |
| var fd=""; | |
| var ak = "elapi",apk = "apk",apkl = "apkl",bn = "bn",bnl = "bnl",cna = "cna",cnal = "cnal", cn = "cn",cnl = "cnl", bw = "bw", | |
| bwl = "bwl", | |
| cat = "cat", | |
| catl = "catl", | |
| sct = "sct", | |
| sctl = "sctl"; | |
| var aks = {"it":[ | |
| <% @programItems.each do |apk| %>{"k": "<%= apk.api_key %>","dm":"<%= apk.directory.name %>","ci":"<%= apk.directory.category_id %>"},<% | |
| end | |
| %>]};var cps = {"it":[{"n":"Select Need","i":"0"}<% | |
| @copypoints.each do |cp| | |
| %>,{"i":"<%= cp.id %>","n":"<%= cp.name %>","gi":"<%= cp.copypoint_group_id %>"}<% | |
| end | |
| %>]};var cpgs = {"it":[<% | |
| @groups.each do |cp| | |
| %>,{"i":"<%= cp.id %>","n":"<%= cp.name %>","si":"<%= cp.subcategory_id %>"}<% | |
| end | |
| %>]};var scs = {"it":[<% | |
| @subcategories.each do |cp| | |
| %>,{"i":"<%= cp.id %>","n":"<%= cp.name %>"}<% | |
| end | |
| %>]} | |
| function e_clf_(ru_v,eu_v,sep_v) { | |
| w('<div id="'+ak+'err"></div><form method="post" id="'+ak+'leadform" action="http://<%= request.host %>/v1/'+ak+'/newlead.xml<% unless Rails.env.production? %>?test=1<% end %>">'); | |
| if(ru_v!=""){hf(ru,ru_v);}if(eu_v!=""){hf(eu,eu_v);}if(sep_v!=""){hf(sep,sep_v);} | |
| tf(nm,nm);tf(p,p);tf(em,em);tf(z,z); sf(cp); | |
| cpops(); | |
| w(selen); | |
| w(br);ta(ds,dsl);bt(sb); | |
| w('</form>'); | |
| czti(elti); | |
| fe(elti).load(function(){zts=1}); | |
| fe(elti).error(function(){zts=2}); | |
| fe(z).blur(function(){lti(fe(elti),fv(z))}); | |
| ff(); | |
| } | |
| function e_rf(ru_v, eu_v, sep_v) { | |
| w("<form method=\"post\" id=\"" + ak + "subform\" action=\"http://<%= request.host %>/v1/" + aks.it[0].k + "/submission.xml\">"); | |
| w("<div class='elapireferralform_outer'>"); | |
| w("<div class='elapireferralform_top'>Lawyers: Get Free Advertising</div>"); | |
| w("<div class='elapireferralform'><div class='elapifields'>"); | |
| if (ru_v !== "") { | |
| hf(ru, ru_v); | |
| } | |
| if (eu_v !== "") { | |
| hf(eu, eu_v); | |
| } | |
| if (sep_v !== "") { | |
| hf(sep, sep_v); | |
| } | |
| if (l(aks.it) > 1) { | |
| sf(apk, apkl); | |
| akops(); | |
| w(selen); | |
| } | |
| sf(sct, sctl); | |
| w(scops(aks.it[1].ci)); | |
| w(selen); | |
| tf(cna, cnal); | |
| tf(cn, cnl); | |
| tf(em, em); | |
| tf(bn, bnl); | |
| tf(bw, bwl); | |
| tf(z, z); | |
| bt("rfsb"); | |
| w("</div></div></div></div></form>"); | |
| czti(elti); | |
| ff(); | |
| fe(elti).load(function() { | |
| zts = 1; | |
| }); | |
| fe(elti).error(function() { | |
| zts = 2; | |
| }); | |
| fe(z).blur(function() { | |
| lti(fe(elti), fv(z)); | |
| }); | |
| fe(apk).change(function() { | |
| var catid, ops; | |
| catid = ""; | |
| $ea.each(aks.it, function() { | |
| if (this.k === fv(apk)) { | |
| catid = this.ci; | |
| } | |
| }); | |
| ops = scops(catid); | |
| fe(sct).empty().append(ops); | |
| if (ops === "") { | |
| fe(sct).parent().hide(); | |
| } else { | |
| fe(sct).parent().show(); | |
| } | |
| }); | |
| if (scops(aks.it[0].ci) === "") { | |
| fe(sct).parent().hide(); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class ScriptController < ApplicationController | |
| def elocal_api | |
| js = render_to_string "script/elocal_api.js.erb", :layout => nil | |
| #cs = CoffeeScript.compile(js) | |
| #render :text => Uglifier.compile(js), :content_type => "text/javascript", :layout => nil | |
| render :text => Uglifier.compile(js), :content_type => "text/javascript", :layout => nil | |
| end | |
| def apiform_v1 | |
| keys = params[:api_key].to_s.split(",") | |
| @programItems = Array.new | |
| keys.each do |k| | |
| programitem = ProgramItem.find_by_api_key(k) | |
| @programItems << programitem unless programitem.nil? | |
| end | |
| @groups = CopypointGroup.all | |
| @copypoints = Copypoint.where(:is_need => true) | |
| @subcategories = Subcategory.all(:order => "name") | |
| js = render_to_string "script/apiform_v1.js.coffee.erb", :layout => nil | |
| cs = CoffeeScript.compile(js) | |
| js2 = render_to_string "script/elocal_api.js.erb", :layout => nil | |
| jquery = render_to_string "jquery.js.erb", :layout => nil | |
| # jquery_pngfix = render_to_string "jquery.pngfix.js", :layout => nil | |
| #render :text => Uglifier.compile(jquery + cs), :content_type => "text/javascript", :lauyout => nil | |
| render :text => Uglifier.compile(js2 + jquery + cs), :content_type => "text/javascript", :layout => nil | |
| #render :text => js2 + jquery + cs, :content_type => "text/javascript", :lauyout => nil | |
| end | |
| def apicss_v1 | |
| main = render_to_string "script/apiform_main.scss", :layout => nil | |
| overrides = render_to_string "script/elocal_api_styles/#{params[:refcode]}.scss", :layout => nil | |
| css = Sass.compile(main + overrides) | |
| render :text => css, :content_type => "text/css", :layout => nil | |
| end | |
| def page_track_v1 | |
| path = Rails.root.to_s + "/public/images/pixel.gif" | |
| send_file path, :content_type => 'image/gif' | |
| program_item = ProgramItem.find_by_api_key(params[:api_key]) | |
| campaign = Campaign.first(:name => params[:campaign], :program_item_id => program_item.id) | |
| campaign_hit = CampaignHit.new | |
| campaign_hit.campaign_id = campaign.id | |
| campaign_hit.remote_ip = request.remote_ip | |
| campaign_hit.remote_host = request.host | |
| campaign_hit.headers = request.headers | |
| campaign_hit.created = DateTime.now | |
| campaign_hit.save | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment