﻿/*
for example:
<script>
emailserving_fields='fname,lname,email';
emailserving_labels='first name,last name,email';
</script>
<script src='emailserving.js'></script>

the result of callback like:
emailserving.cback({"done":false,"fields":["lname"],"msgs":["this dfdfdfdfdfdis test"]})

*/
if(typeof emailserving=="undefined")
{
    emailserving=
    {
        rgd:Math.round(Math.random()*10000000),
        high:55,
        addspace:true,
        
        init:function()
        {
            var c=emailserving;
        if (typeof c.browser=="undefined")
        {
          var uA=window.navigator.userAgent,pl=navigator.platform,Y=document;
          c.browser=
          {
            isIE:/(msie)/i.test(uA),
            isOP:/(opera)/i.test(uA),
            isSA:/safari/i.test(uA),
            isFI:/firefox/i.test(uA),
            isMac:/mac/i.test(pl),
            isWin:/^Win32$/i.test(pl),
            isLin:/^Linux/i.test(pl),
            isGe:/(Gecko)/i.test(uA),
            isKM:/Chrome/i.test(uA),
            ver:parseFloat((uA.match( /.+(?:fox|ion|era|sie|ome)[\/: ]([\d.\d]+)/i ) || [])[1]),
            isS:(Y.compatMode=="CSS1Compat")
          };
          var b=c.browser;
          if (b.isMac && b.isSA)
          {
            b.isS=Y.doctype?true:false;         
          }
                    if (Y.documentMode)
                    {
                        b.DM=Y.documentMode;
                    }
                    else
                    {
                        b.DM=0;
                    }
          b.isIES=b.isIE&(!b.isS);
        }

            var tip=document.createElement("div");
            if(c.addspace)
            {
                var space=document.createElement("div");
                space.id="Yems_space"+c.rgd;
                space.style.visibility="hidden";
                space.style.height=c.high+"px";
                document.body.appendChild(space);
            }

            c.fields=c.cs("emailserving_fields").split(",");
            c.labels=c.cs("emailserving_labels").split(",");
            c.desc=c.cs("emailserving_description");
            c.listid=c.cs("emailserving_listid");
            c.key=c.cs("emailserving_key");
            
            var flst,st_input_t,st_label,st_label_t,st_mess,st_sgf,st_sgf_u,st_sgf_l,st_smt,st_smt2,st_ft_lf,st_ft_rg,st_btn,st_btn_a,st_img;
            flst="text-align: left;width: 100%; height:0;overflow:hidden;top:expression(eval(document.compatMode && document.compatMode==\"CSS1Compat\")?documentElement.scrollTop+(documentElement.clientHeight-this.clientHeight):document.body.scrollTop+(document.body.clientHeight-this.clientHeight));_left:0; position:fixed; _position: absolute; margin-left:0px; *margin_bottom:-5px; z-index:9999996;bottom:0;clear:both; background:#333 url(http://" + emailserving_domain +"/memberimg/footerbg.jpg) 0 0 repeat-x;color:#FFF;  border-top:1px solid #333;font-size:14px; font-weight: bold;";
            st_input_t='margin:0 20px 0 0; background:#ccc; border-top:1px solid #333; border-left:1px solid #333; border-right:1px solid #efefef; border-bottom:1px solid #efefef; height:20px; width:250px;';
            st_label='text-transform: capitalize; font-weight:bold; padding:0 0 2px 0; display:block;';
            st_label_t='margin:0 30px 0 0; color:#FFC; width:200px; display:inline-block;';
            st_mess='padding:0 30px 0 10px; position:absolute;  bottom:10px; width:280px; font-family:Verdana, Geneva, sans-serif; color:#efefef;';
            st_sgf='position:absolute; left:320px;'+(b.isIE&&b.ver<7?'width:287px;':'')+'bottom:0;height:'+c.high+'px;overflow:hidden;';
            st_sgf_u='list-style-type:none; margin:0; padding:15px 0 0;'+c.fixbPng("http://" + emailserving_domain + "/memberimg/form_top.png","0 0 no-repeat",0,0)+' font-size:12px; font-family:Arial, Helvetica, sans-serif;text-align:left;';
            st_sgf_l='padding:0 0 10px 15px;'+c.fixbPng("http://" + emailserving_domain + "/memberimg/form_bg.png","0 0 repeat-y",1,0);
            st_smt=c.fixbPng("http://" + emailserving_domain + "/memberimg/btn.png","",0,1)+'width:76px; height:26px; border:0;';
            st_smt2=c.fixbPng("http://" + emailserving_domain + "/memberimg/submit.png","0 0 no-repeat",0,1)+'width:81px;  height:33px; margin:7px 5px 0; border:0;';
            st_ft_lf='position:relative; height:'+c.high+'px; width:700px;';
            st_ft_rg='width:140px; float:right; padding:0 10px 0 0;';
            st_btn='float:right;';
            st_btn_a='float:left;';
            st_img='border:0';

            
            var fl=document.createElement("div");
            fl.id="emailserv_fl_"+c.rgd;
            fl.setAttribute("style",flst);            
            fl.style.cssText=flst;
/*
            var s='<div style="white-space:wrap;display:block;vertical-align:middle;clear:both;overflow:hidden;">';
            var s1='<div style="white-space:wrap;display:none;vertical-align:middle;clear:both;overflow:hidden;" id="Yems_exp_'+c.rgd+'">';
            var lab_s=" margin-bottom: 3px;text-transform: capitalize; text-align:right; font-weight:bold; padding:0 2px 0 0;color:#FFC; display:block; float:left; width: 8em;";
            var input_s = " margin-bottom: 3px;display:block; float: left; width: 10em;";
            for (var i=0,l=c.fields.length;i<l;i++)
            {
                if(i<3)
                {
                    s+='<label style="'+lab_s+'">'+c.labels[i]+':</label><input style="' + input_s +'" type="text" id="email_'+c.fields[i]+'" onfocus="emailserving.efocus()" style="margin:0 10px 0 3px;"/>';
                    if(i==2)
                    {
                        s+='</div>';
                    }
                }
                else
                {
                    s1+='<label style="'+lab_s+'">'+c.labels[i]+':</label><input style="' + input_s + ' " type="text" id="email_'+c.fields[i]+'"/>';
                    if(i%3==2)
                    {
                        s1+='<div style="clear:both;"></div>';
                    }
                    if(i-1==l)
                    {
                        s1+='</div>';
                    }
                }
            }
            fl.innerHTML='<div style="position: relative; margin-top: 0px; clear:both; background:#333 url(http://' + emailserving_domain + '/memberimg/footerbg.jpg) 0 0 repeat-x;color:#FFF;border-top:1px solid #666;"><table width="100%" style="vertical-align:top"><tr><td width="90px">'+c.desc+'</td><td >'+s+s1+'</td><td style="width:85px;vertical-align:top"><button  name="submitting" onclick="emailserving.subscribe()" style="width:80px;">Subscribe</button><lable style="'+lab_s+'" id="email_err"></label></td><td width="75px" tyle="padding:0;margin:0;border:0;"><a href="javascript:void(0)" style="padding:0;color:#3CF;font-family:Arial, Helvetica, sans-serif; font-weight: bold; font-size:14px;" onclick="emailserving.clos()">close</a><br><a href="#" style="padding:0;color:#3CF;font-family:Arial, Helvetica, sans-serif; font-size:13px;" target="_blank">what\'s this?</a></td></tr></table></div>';
*/

            var s="";
            for (var i=0,l=c.fields.length;i<l;i++)
            {
                s+='<li style="'+st_sgf_l+'"><label style="'+st_label+'">'+c.labels[i]+':</label><input id="Yems_in_'+c.fields[i]+'" class="text" type="text" name="e" style="'+st_input_t+'"'+(i===0?'onclick="emailserving.dcshow()"':'')+'/></li>'
            }
            s+= '<li style="'+st_sgf_l+'"><input type="button" value="" onclick="emailserving.subscribe()" style="'+st_smt+'"/></li>';

            fl.innerHTML='<div style="'+st_ft_rg+'"><span target="blank" style="'+st_btn+'"><a href="http://www.emailserving.com/faq.php#subscriptionform" style="'+st_btn_a+'"><img src="http://' + emailserving_domain + '/memberimg/what.gif" width="21" height="16" alt="?" style="'+st_img+'"/></a><a href="javascript:void(0)" style="'+st_btn_a+'" onclick="emailserving.clos()"><img src="http://' + emailserving_domain + '/memberimg/close.gif" width="21" height="16" alt="X" style="'+st_img+'" /></a></span><input type="button" value=" " name="submit" style="'+st_smt2+'" onclick="emailserving.dcshow()"/></div><div style="'+st_ft_lf+'"> <div style="'+st_mess+'">' + c.desc +'</div> <form style="'+st_sgf+'" id="Yems_fm_'+c.rgd+'"><ul style="'+st_sgf_u+'" id="Yems_ul_'+c.rgd+'">'+s+'</ul></form> </div>'         
            document.body.appendChild(fl);
            //fix. read if document body contains left padding. If yes, remove the padding of bottom banner
            document.getElementsByTagName('body')[0].style.marginLeft = 0;
            
            c.dcshow("emailserv_fl_"+c.rgd,c.high);         
        },
        
        subscribe:function()
        {
            var c=emailserving,val="",nam="";
            for (var i=0,l=c.fields.length;i<l;i++)
            {
                nam+=c.fields[i]+",";
                val+=document.getElementById("Yems_in_"+c.fields[i]).value+",";
            }
            var s=document.createElement("script");
            s.src=  emailserving_url + '?callback=emailserving.cback&name='+encodeURIComponent(nam)+'&value='+encodeURIComponent(val)+'&id='+c.listid+'&key='+c.key;
            s.type='text/javascript';
            document.getElementsByTagName("head")[0].appendChild(s);    
        },
        
    getH:function(el) 
    {
      var c=emailserving;
      return el.offsetHeight||parseInt(c.eStyle( el, "height" ),10);
    },
    
    eStyle:function(el,iname)
    {
      var YD=document;
      if (el.style[iname])
      {
        return el.style[iname];
      }
      else if (el.currentStyle)
      {
        return el.currentStyle[iname];
      }
      else if (YD.defaultView && YD.defaultView.getComputedStyle)
      {
        iname = iname.replace(/([A-Z])/g,"-$1");
        iname = iname.toLowerCase();
        var s = YD.defaultView.getComputedStyle(el,"");
        return s && s.getPropertyValue(iname);
      }
      else
      {
        return null;
      }
    },
        
        fixbPng:function(f,s,m,h)
        {
            var b=emailserving.browser;
            if (b.isIE&&b.ver<7)
            { 
                return "_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod="+(m==0?"crop":"scale")+",src='"+f+"');_background:none;"+(h===0?"height:1px;":"");
            }
            else
            {
                return "background:url("+f+") "+s+";";
            }
        },
        
        efocus:function()
        {
            var c=emailserving;
            var expand=document.getElementById('Yems_exp_'+c.rgd);
            if (expand && expand.style.display=="none")
            {
                expand.style.display="";
                c.high=document.getElementById("emailserv_fl_"+c.rgd).clientHeight;
                var space=document.getElementById("Yems_space"+c.rgd);
                if(space)
                {
                    space.style.height=c.high+"px";
                }
            }
        },
        
        cs:function(s)
        {
            if(typeof window[s]!="undefined")
            {
                var rs=window[s];
                window[s]=null;
                return rs;
            }
            return "";
            
        },
        
        clos:function()
        {
            var c=emailserving;
            document.getElementById("emailserv_fl_"+c.rgd).style.display="none";
            var space=document.getElementById("Yems_space"+c.rgd);
            document.body.removeChild(space);
        },
        
        dcshow:function(eid,hg)
        {
            var tt,c=emailserving,t_el,t0,h,t_el1,s;
            t_el1=document.getElementById("emailserv_fl_"+c.rgd);
            if(typeof eid=="undefined")
            {
                t_el=document.getElementById("Yems_fm_"+c.rgd);
                h=c.getH(document.getElementById("Yems_ul_"+c.rgd));
                t_el1.style.overflow="";
                s=15;
            }
            else
            {
                t_el=t_el1;
                h=hg?hg:c.getH(t_el);
                s=35;
            }
            clearInterval(c.t);
            c.t=setInterval(function(){var ih=parseInt(t_el.style.height,10);if (ih<h){t_el.style.height=ih+5+"px";}else{t_el.style.height="";clearInterval(c.t);}},s);
        },
      addEvt:function(el,evt,fn)  
      {
        if(el.addEventListener) 
        {
          el.addEventListener(evt,fn,false);
        }
        else if(el.attachEvent)
        {
          el[evt+fn]=fn;
          el.attachEvent("on"+evt,function(){el[evt+fn](window.event);});
        }
      },        
        
       cback:function(s)
       {
        var err="",c=emailserving,el;
        if(!s.done){
           var f=s.fields,m=s.msgs;
           for(var x in f)
           {
              el=document.getElementById("Yems_in_"+f[x]);
              if(el){
                 var tempb=el.style.border;
                 el.style.border="2px solid #f00";
                 el.value=m[x];
                 c.addEvt(el,"click",function(){this.value="";this.style.border=tempb;});
              }
          }
        }
        else{
           el=document.getElementById("Yems_fm_"+c.rgd);
           el.style.high="40px";
           el.removeChild(el.childNodes[0]);
           
           var info=document.createElement("ul");
           info.innerHTML=s.msgs[0];
           el.appendChild(info);
      } 
     }
    }
}
emailserving.init();     