Skip to content

Instantly share code, notes, and snippets.

@tubbo
Created June 13, 2012 20:51
Show Gist options
  • Select an option

  • Save tubbo/2926446 to your computer and use it in GitHub Desktop.

Select an option

Save tubbo/2926446 to your computer and use it in GitHub Desktop.
<% # $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();
}
}
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