/*----------------------------------
 Functions for posting sales leads data to SalesForce.com.

  1. Search content document for User entered
  info from signup forms (during onunload event)

  2. If data is found, populate a hidden SalesForce
     form:
      * do some data mapping (FNAME -> first_name, etc.

  3. If signup is accepted by the cust.dll (look for thankyou response)
     POST the hidden form to SalesForce.com
----------------------------------*/
var retUrl = "";
var campaign_id = "";
var temp = "";
var EmailTO = "";
//-----------------------------------
function FindSalesForceData(doc)
{try{

  if(!doc || !doc.body ) doc = document;

  for( var f=0; f < doc.forms.length; f++ ) //for each form in doc
  {
    for( var i=0; i < doc.forms[f].elements.length; i++) //for each input
    {
      //Map our form names to SalesForce.com form names
      var input = doc.forms[f].elements[i];
      switch( input.name.toUpperCase() )
      { //do switch or match on i.name, or just look for our standard from inputs
        
        case 'TITLE': if(input.checked){SetSalesFormValue('salutation', input.value);} break;
        case 'FNAME': SetSalesFormValue('first_name', input.value); break;
        case 'LNAME': SetSalesFormValue('last_name', input.value); break;
        case 'POSITION': SetSalesFormValue('title', input.value); break;
        case 'COMPANY': SetSalesFormValue('company', input.value); break;
        case 'WEBSITE': SetSalesFormValue('URL', input.value); break;
        case 'EMAIL': SetSalesFormValue('email', input.value); break;
        case 'PHONE1': SetSalesFormValue('phone', input.value); break;
        case 'PHONE2': SetSalesFormValue('mobile', input.value); break;
        case 'FAX': SetSalesFormValue('fax', input.value); break;
        case 'DESC': SetSalesFormValue('description', input.value); break;
        case 'ADDR1': SetSalesFormValue('street', input.value); break;
        case 'ADDR1': SetSalesFormValueAppend('street', input.value); break;
        case 'ADDR2': SetSalesFormValueAppend('street', input.value); break;
        case 'CITY': SetSalesFormValue('city', input.value); break;
        case 'ST': SetSalesFormValue('state', input.value); break;
        case 'COUNTRY': SetSalesFormValue('country', input.value); break;
        case 'ZIP': SetSalesFormValue('zip', input.value); break;
        case 'OCCUP': SetSalesFormValue('00N30000000wpG7', input.value); break;
        case 'COMPSIZE': SetSalesFormValue('employees', input.value); break;
        case 'SOURCE': SetSalesFormValue('lead_source', input.value); break;
        case 'OTHSOURCE': SetSalesFormValueAppend('lead_source', input.value); break;
        case 'CUSTOMER_INTERESTS': SetSalesFormValue('00N30000000wpfa', input.value); break
        case 'PRACTICEAREA': SetSalesFormValue('00N30000000wpe8', input.value); break;
        case '--companytype': SetSalesFormValue('00N30000000wzyr', input.value); break;
        case '--industry': SetSalesFormValue('industry', input.value); break;
        case '--currentVendor': SetSalesFormValue('00N30000000wzpB', input.value); break;
        case 'PROMOCODE':
          campaign_id = LookupCampaignId(input.value);
          SetSalesFormValue("Campaign_ID",campaign_id);
          break;
        case 'USERNAME': SetSalesFormValue('00N30000000xXBk', input.value); break;
        case 'RETURL': retUrl = input.value; break;
        case 'EMAILTO': EmailTO = input.value; break;

        case 'CUSTFNAME': SetSalesFormValue('00N40000001NBcG', input.value);
        case 'CUSTLNAME': SetSalesFormValueAppend('00N40000001NBcG', input.value); break;
        case 'CUSTCOMPANY': SetSalesFormValueAppend('00N40000001NBcG', input.value); break;
        case 'CUSTTREATISE': SetSalesFormValueAppend('00N40000001NBcG', input.value); break;
        case 'CUSTPHONE': SetSalesFormValue('00N40000001N2QF', input.value); break;
        default: SetSalesForm(input); break;
          break;
      }
    }
  }
 }catch(e){}
}
var salesforce = new Object();
//-----------------------------------
function SetSalesFormValue(name,value)
{try{
  salesforce[name] = (value||"No Answer");
 }catch(e){}
}

//-----------------------------------
function SetSalesForm(input)
{try{
  switch(input.type.toLowerCase()){
    case 'checkbox': salesforce[input.name] = (GetChecked(input)||"No"); break;
    case 'radio'   : salesforce[input.name] = (GetChecked(input.form[input.name])||"No"); break;
    case 'select'  : salesforce[input.name] = (GetSelected(input)||"No Answer"); break;
    default:
      SetSalesFormValue(input.name,input.value);
  }
 }catch(e){}
}
//-----------------------------------
function SetSalesFormValueAppend(name,value)
{try{
  salesforce[name] += ((salesforce[name])?"\n":"") + ((value)?value:"");
 }catch(e){}
}
//-----------------------------------
function SubmitSalesForceData() //called in MasterSYnc() by anypage that has a title of "Thank you"
{
  var CallBackFunc = function(){
    getStr = "";//keep getstr short for IE 6
    if(EmailTO != "") 
         getStr += "&EmailTo="+EmailTO;
    else getStr += "&EmailTo="+"sales1@loislaw.com";
    getStr += 
       "&EmailFrom="   +escape(SalesForce.EMAIL.value)
      +"&EmailSubject="+escape(esubject)
      +"&EmailBody="   +escape(esubject +"\n\n"+ ebody)
      +"&OrigRefUrl="  +escape(document.referrer)
      +"&ContactForm=" +escape(document.location.href)
      ;//IE 6 fails to pass referring URL during location.href redirect below
    
  	if(retUrl != ""){
  		document.location.href = retUrl + getStr ;//may need to chop getStr to 2024 for IE 6 
    }
    else{
    	document.location.href = "/EmailResponse.htp?topsync=home"+getStr;
    }
    	
  }

  window.SafariLoaded = CallBackFunc;
  window.setTimeout("window.SafariLoaded()",10000);

  try{  
  FindSalesForceData();

  var getStr = "";
  var ebody = "";
  var esubject;
  
  if(SalesForce.EmailSubject && SalesForce.EmailSubject.value!="")
    esubject = SalesForce.EmailSubject.value;
  else
    esubject = "Message sent from "+document.location.href +" :\nPromoCode "+SalesForce.promocode.value;

  for(var i in salesforce )
  {
    getStr += "&"+ i +"="+ escape(salesforce[i]);
    ebody  += "\n"+i.replace(/00N30000000wpe8/,"Practice Area") +" : "+((salesforce[i])?salesforce[i]:"\n");
  }
  ebody += "\nPromo Code: " + SalesForce.promocode.value;

  if(!SalesForce.SOURCE)
    getStr += "&lead_source=On+Line_Add";

  getStr += "&oid="+SalesForce.oid.value;
  getStr += "&promocode="+SalesForce.promocode.value;
 
  var s = document.createElement("IFRAME");
  s.id = "SalesForceThingy";
  s.style.display = "none";
  s.src ="http://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" + getStr;

  if(typeof s.onreadystatechange != "undefined"){//ie
    s.onreadystatechange = function(){if(/loaded|complete/.test(s.readyState)){s.onreadystatechange = null; CallBackFunc(); } };
  }else if(/safari/i.test(navigator.userAgent) ){ //Safari does not support event callbacks
    window.setTimeout("window.SafariLoaded()",5000);
  }else{
    CallBackFunc.once = true;//avoid repeated callbacks
    addEvent(     s, "load", function(){ if(CallBackFunc.once){CallBackFunc.once = false; CallBackFunc();} } ); //mac:camino,moz,fx. win:moz,fx,opera 9x
    addEvent(window, "load", function(){ if(CallBackFunc.once){CallBackFunc.once = false; CallBackFunc();} } ); //opera 8x
  }

  document.body.appendChild(s);

  }catch(e){CallBackFunc();}
}
//-----------------------------------

//-----------------------------------
function LookupCampaignId(promo){
  switch(promo.toLowerCase()){
    case 'aca01': return "70140000000GrsE"; break;
    case 'aca02': return "70140000000GrsJ"; break;
    case 'anl02': return "70140000000GrsO"; break;
    case 'any01': return "70140000000Grs9"; break;
    case 'any02': return "70140000000GrzM"; break;
    case 'any03': return "70140000000Gs03"; break;
    case 'any04': return "70140000000Gs04"; break;
    case 'any05': return "70140000000Gs05"; break;
    case 'aspen1': return "70140000000Grsa"; break;
    case 'atx03': return "70140000000GrzN"; break;
    case 'atx012': return "70140000000Grs4"; break;
    case 'bbk01': return "70140000000H3GN"; break;
    case 'bcp01': return "70140000000H3Gd"; break;
    case 'bip01': return "70140000000H3Gr"; break;
    case 'bkws': return "70140000000Grsg"; break;
    case 'bnp01': return "70140000000H3Gw"; break;
    case 'bpc01': return "70140000000H3Gh"; break;
    case 'bpl01': return "70140000000H3GI"; break;
    case 'bpr01': return "70140000000H3Gc"; break;
    case 'brws': return "70140000000Grsc"; break;
    case 'btf01': return "70140000000H3GX"; break;
    case 'btp01': return "70140000000H3H1"; break;
    case 'cca01': return "70140000000Grrz"; break;
    case 'cil01': return "70140000000Grrl"; break;
    case 'cny01': return "70140000000Grrq"; break;
    case 'ctx01': return "70140000000Grru"; break;
    case 'ddws': return "70140000000Grsd"; break;
    case 'elws': return "70140000000Grsh"; break;
    case 'evws': return "70140000000Grse"; break;
    case 'flws': return "70140000000Grsi"; break;
    case 'fca01': return "70140000000GtxL"; break;
    case 'fca02': return "70140000000Guiv"; break;
    case 'fca03': return "70140000000GveQ"; break;
    case 'fca05': return "70140000000H1aF"; break;
    case 'fca06': return "70140000000H2H4"; break;
    case 'ffl01': return "70140000000GzUt"; break;
    case 'ffl02': return "70140000000GzUy"; break;
    case 'ffl03': return "70140000000GzV3"; break;
    case 'ffl04': return "70140000000GzV8"; break;
    case 'fna01': return "70140000000GqTE"; break;
    case 'fna02': return "70140000000Gqoa"; break;
    case 'fna03': return "70140000000Grrf"; break;
    case 'fna04': return "70140000000Grrg"; break;
    case 'fna05': return "70140000000GsrR"; break;
    case 'fna06': return "70140000000GsrS"; break;
    case 'fna07': return "70140000000Gu55"; break;
    case 'fna08': return "70140000000Guj0"; break;
    case 'fna20': return "70140000000Gt5s"; break;
    case 'fna21': return "70140000000Gt5x"; break;
    case 'fna24': return "70140000000GzWu"; break;
    case 'fna25': return "70140000000H006"; break;
    case 'fna26': return "70140000000H00B"; break;
    case 'fna27': return "70140000000H00G"; break;
    case 'fna28': return "70140000000H00L"; break;
    case 'fna29': return "70140000000H0Kk"; break;
    case 'fna30': return "70140000000H00Q"; break;
    case 'fna31': return "70140000000H0Kp"; break;
    case 'fny01': return "70140000000GrzK"; break;
    case 'fny04': return "70140000000GzyF"; break;
    case 'frc01': return "70140000000H0AQ"; break;
    case 'ftl01': return "70140000000Grqr"; break;
    case 'ftl02': return "70140000000GsiP"; break;
    case 'ftl03': return "70140000000GsiU"; break;
    case 'ftl04': return "70140000000GsiZ"; break;
    case 'ftl05': return "70140000000GsiV"; break;
    case 'ftl06': return "70140000000Gsia"; break;
    case 'ftl07': return "70140000000GsJK"; break;
    case 'ftl08': return "70140000000GsJP"; break;
    case 'ftl09': return "70140000000GsJZ"; break;
    case 'ftl10': return "70140000000GsJe"; break;
    case 'ftl11': return "70140000000GsJf"; break;
    case 'ftl12': return "70140000000GsiK"; break;
    case 'ftl13': return "70140000000Gssj"; break;
    case 'ftl14': return "70140000000Gt5n"; break;
    case 'ftl15': return "70140000000Gxqn"; break;
    case 'ftl16': return "70140000000Gxqs"; break;
    case 'ftl17': return "70140000000Gxqx"; break;
    case 'ftl18': return "70140000000Gxr2"; break;
    case 'ftl19': return "70140000000Gxqy"; break;
    case 'ftl21': return "70140000000GzWz"; break;
    case 'ftl22': return "70140000000GzX4"; break;
    case 'ftl23': return "70140000000GzX9"; break;
    case 'ftl24': return "70140000000GzXE"; break;
    case 'ftl25': return "70140000000GzXJ"; break;
    case 'ftl26': return "70140000000H1SG"; break;
    case 'ftx01': return "70140000000GqT8"; break;
    case 'ftx02': return "70140000000GqTD"; break;
    case 'ftx03': return "70140000000GrzL"; break;
    case 'ftx05': return "70140000000Gtyd"; break;
    case 'ftx06': return "70140000000Gtyd"; break;
    case 'ftx07': return "70140000000GveL"; break;
    case 'ftx08': return "70140000000Gx2e"; break;
    case 'ftx09': return "70140000000Gz1w"; break;
    case 'ftx10': return "70140000000H06Y"; break;
    case 'ftx11': return "70140000000H2H9"; break;
    case 'gca01': return "70140000000Grrp"; break;
    case 'glws': return "70140000000Grsf"; break;
    case 'gpcdemocode': return "70140000000GrsW"; break;
    case 'googlenews': return "70140000000Gsi5"; break;
    case 'googleweb': return "70140000000GsiA"; break;
    case 'judge02': return "70140000000Grsk"; break;
    case 'la06': return "70140000000Grso"; break;
    case 'lldemo': return "70140000000Grr1"; break;
    case 'llprp': return "70140000000Gsi6"; break;
    case 'llsftrial': return "70140000000Grr6"; break;
    case 'llws': return "70140000000Grsj"; break;
    case 'ls61': return "70140000000GrsT"; break;
    case 'ls62': return "70140000000GrsU"; break;
    case 'lsfl': return "70140000000GrsV"; break;
    case 'megalaw1': return "70140000000GrsZ"; break;
    case 'morelaw1': return "70140000000Grsb"; break;
    case 'nyadvsrnysba': return "70140000000Grsl"; break;
    case 'nyfamily': return "70140000000Grsm"; break;
    case 'oneday': return "70140000000GrsY"; break;
    case 'other_referrer': return "70140000000GsiF"; break;
    case 'pressroom': return "70140000000GrsX"; break;
    case 'sca02': return "70140000000Gxkf"; break;
    case 'sil02': return "70140000000GxrH"; break;
    case 'stm01': return "70140000000H1f5"; break;
    case 'taj9': return "70140000000Grsp"; break;
    case 'wibartrial': return "70140000000Grsn"; break;
    case 'wup01': return "70140000000Grqw"; break;
    default: return promo; break;
  }
}
//-----------------------------------

