CS-Cart 4.0.2 & Mailchimp Evil Pop-up

Has anyone successfully embedded Mailchimp Evil Pop-up codes to Cs-Cart 4.0.2?

I created pop-up.js file and uploaded to js/addons/my_changes/


<br />
var fnames = new Array();var ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';<br />
try {<br />
	var jqueryLoaded=jQuery;<br />
	jqueryLoaded=true;<br />
} catch(err) {<br />
	var jqueryLoaded=false;<br />
}<br />
var head= document.getElementsByTagName('head')[0];<br />
if (!jqueryLoaded) {<br />
	var script = document.createElement('script');<br />
	script.type = 'text/javascript';<br />
	script.src = '//mydomain.com/js/lib/jquery/jquery.min.js';<br />
	head.appendChild(script);<br />
	if (script.readyState && script.onload!==null){<br />
		script.onreadystatechange= function () {<br />
			  if (this.readyState == 'complete') mce_preload_check();<br />
		}	<br />
	}<br />
}<br />
<br />
var err_style = '';<br />
try{<br />
	err_style = mc_custom_error_style;<br />
} catch(e){<br />
	err_style = '#mc_embed_signup input.mce_inline_error{border-color:#6B0505;} #mc_embed_signup div.mce_inline_error{margin: 0 0 1em 0; padding: 5px 10px; background-color:#6B0505; font-weight: bold; z-index: 1; color:#fff;}';<br />
}<br />
var head= document.getElementsByTagName('head')[0];<br />
var style= document.createElement('style');<br />
style.type= 'text/css';<br />
if (style.styleSheet) {<br />
  style.styleSheet.cssText = err_style;<br />
} else {<br />
  style.appendChild(document.createTextNode(err_style));<br />
}<br />
head.appendChild(style);<br />
setTimeout('mce_preload_check();', 250);<br />
<br />
var mce_preload_checks = 0;<br />
function mce_preload_check(){<br />
	if (mce_preload_checks>40) return;<br />
	mce_preload_checks++;<br />
	try {<br />
		var jqueryLoaded=jQuery;<br />
	} catch(err) {<br />
		setTimeout('mce_preload_check();', 250);<br />
		return;<br />
	}<br />
	var script = document.createElement('script');<br />
	script.type = 'text/javascript';<br />
	script.src = 'http://downloads.mailchimp.com/js/jquery.form-n-validate.js';<br />
	head.appendChild(script);<br />
	try {<br />
		var validatorLoaded=jQuery("#fake-form").validate({});<br />
	} catch(err) {<br />
		setTimeout('mce_preload_check();', 250);<br />
		return;<br />
	}<br />
	mce_init_form();<br />
}<br />
function mce_init_form(){<br />
	jQuery(document).ready( function($) {<br />
	  var options = { errorClass: 'mce_inline_error', errorElement: 'div', onkeyup: function(){}, onfocusout:function(){}, onblur:function(){}  };<br />
	  var mce_validator = $("#mc-embedded-subscribe-form").validate(options);<br />
	  $("#mc-embedded-subscribe-form").unbind('submit');//remove the validator so we can get into beforeSubmit on the ajaxform, which then calls the validator<br />
	  options = { url: 'http://mydomain.us7.list-manage1.com/subscribe/post-json?u=c4a45f2c927c9365b5032bb4e&id=8a35c6c9a2&c=?', type: 'GET', dataType: 'json', contentType: "application/json; charset=utf-8",<br />
					beforeSubmit: function(){<br />
						$('#mce_tmp_error_msg').remove();<br />
						$('.datefield','#mc_embed_signup').each(<br />
							function(){<br />
								var txt = 'filled';<br />
								var fields = new Array();<br />
								var i = 0;<br />
								$(':text', this).each(<br />
									function(){<br />
										fields[i] = this;<br />
										i++;<br />
									});<br />
								$(':hidden', this).each(<br />
									function(){<br />
										var bday = false;<br />
										if (fields.length == 2){<br />
											bday = true;<br />
											fields[2] = {'value':1970};//trick birthdays into having years<br />
										}<br />
									 if ( fields[0].value=='MM' && fields[1].value=='DD' && (fields[2].value=='YYYY' || (bday && fields[2].value==1970) ) ){<br />
									 this.value = '';<br />
   } else if ( fields[0].value=='' && fields[1].value=='' && (fields[2].value=='' || (bday && fields[2].value==1970) ) ){<br />
									 this.value = '';<br />
   } else {<br />
	   if (/\[day\]/.test(fields[0].name)){<br />
											 this.value = fields[1].value+'/'+fields[0].value+'/'+fields[2].value;		<br />
	   } else {<br />
											 this.value = fields[0].value+'/'+fields[1].value+'/'+fields[2].value;<br />
									   }<br />
								   }<br />
									});<br />
							});<br />
						$('.phonefield-us','#mc_embed_signup').each(<br />
							function(){<br />
								var fields = new Array();<br />
								var i = 0;<br />
								$(':text', this).each(<br />
									function(){<br />
										fields[i] = this;<br />
										i++;<br />
									});<br />
								$(':hidden', this).each(<br />
									function(){<br />
										if ( fields[0].value.length != 3 || fields[1].value.length!=3 || fields[2].value.length!=4 ){<br />
									 this.value = '';<br />
   } else {<br />
	   this.value = 'filled';<br />
								   }<br />
									});<br />
							});<br />
						return mce_validator.form();<br />
					},<br />
					success: mce_success_cb<br />
				};<br />
	  $('#mc-embedded-subscribe-form').ajaxForm(options);<br />
	  <br />
			  $('#mc_embed_signup').hide();<br />
		cks = document.cookie.split( ';' );<br />
		var show=true;<br />
		for(i=0;i<cks.length;i++){<br />
			parts = cks[i].split('=');<br />
			if( parts[0].indexOf('MCEvilPopupClosed')!= -1 ) show = false;<br />
		}<br />
		if (show){<br />
			$('#mc_embed_signup a.mc_embed_close').show();<br />
			setTimeout( function(){ $('#mc_embed_signup').fadeIn();} , 2000);<br />
	   $('#mc_embed_signup a.mc_embed_close').click(function(){ mcEvilPopupClose();});<br />
		}<br />
<br />
		$(document).keydown(function(e){<br />
			if (e == null) {<br />
			  keycode = event.keyCode;<br />
			} else {<br />
			  keycode = e.which;<br />
			}<br />
			if(keycode == 27){<br />
				mcEvilPopupClose();<br />
			}<br />
		});<br />
<br />
		function mcEvilPopupClose(){<br />
			$('#mc_embed_signup').hide();<br />
			var now = new Date();<br />
			var expires_date = new Date( now.getTime() + 31536000000 );<br />
			document.cookie = 'MCEvilPopupClosed=yes;expires=' + expires_date.toGMTString()+';path=/';<br />
		}<br />
<br />
	});<br />
}<br />
function mce_success_cb(resp){<br />
	$('#mce-success-response').hide();<br />
	$('#mce-error-response').hide();<br />
	if (resp.result=="success"){<br />
		$('#mce-'+resp.result+'-response').show();<br />
		$('#mce-'+resp.result+'-response').html(resp.msg);<br />
		$('#mc-embedded-subscribe-form').each(function(){<br />
			this.reset();<br />
	 });<br />
	} else {<br />
		var index = -1;<br />
		var msg;<br />
		try {<br />
			var parts = resp.msg.split(' - ',2);<br />
			if (parts[1]==undefined){<br />
				msg = resp.msg;<br />
			} else {<br />
				i = parseInt(parts[0]);<br />
				if (i.toString() == parts[0]){<br />
					index = parts[0];<br />
					msg = parts[1];<br />
				} else {<br />
					index = -1;<br />
					msg = resp.msg;<br />
				}<br />
			}<br />
		} catch(e){<br />
			index = -1;<br />
			msg = resp.msg;<br />
		}<br />
		try{<br />
			if (index== -1){<br />
				$('#mce-'+resp.result+'-response').show();<br />
				$('#mce-'+resp.result+'-response').html(msg);			<br />
			} else {<br />
				err_id = 'mce_tmp_error_msg';<br />
				html = '<div id="'+err_id+'" style="'+err_style+'"> '+msg+'</div>';<br />
				<br />
				var input_id = '#mc_embed_signup';<br />
				var f = $(input_id);<br />
				if (ftypes[index]=='address'){<br />
					input_id = '#mce-'+fnames[index]+'-addr1';<br />
					f = $(input_id).parent().parent().get(0);<br />
				} else if (ftypes[index]=='date'){<br />
					input_id = '#mce-'+fnames[index]+'-month';<br />
					f = $(input_id).parent().parent().get(0);<br />
				} else {<br />
					input_id = '#mce-'+fnames[index];<br />
					f = $().parent(input_id).get(0);<br />
				}<br />
				if (f){<br />
					$(f).append(html);<br />
					$(input_id).focus();<br />
				} else {<br />
					$('#mce-'+resp.result+'-response').show();<br />
					$('#mce-'+resp.result+'-response').html(msg);<br />
				}<br />
			}<br />
		} catch(e){<br />
			$('#mce-'+resp.result+'-response').show();<br />
			$('#mce-'+resp.result+'-response').html(msg);<br />
		}<br />
	}<br />
}
```<br />
<br />
Then, I add {style src="[color=#000000][font=HiraKakuProN-W3][size=3]//cdn-images.mailchimp.com/embedcode/classic-081711.css[/size][/font][/color]"} in basic/templates/addons/my_changes/hooks/index/styles.override.tpl<br />
<br />
And, I pasted following lines to basic/css/addons/my_changes/styles.css<br />
<br />
<br />
[color=#000000][font=HiraKakuProN-W3][size=3]```php
<br />
#mc_embed_signup{position:absolute; top:0; left:0; width:100%; height:100%; background-color:rgba(0,0,0,.<img src="upload://oPnLkqdJc33Dyf2uA3TQwRkfhwd.gif" class="bbc_emoticon" alt="8)">;display:none;z-index:10000; }<br />
#mc_embed_signup form{position:fixed; top:10%; left:50%; width:50%; margin-left:-25%; font:normal 100% Helvetica,Arial,sans-serif; font-size:14px; border-radius:4px; border:none; padding:10px 20px; background-color:#fff; color:#000; text-align:left;max-height:400px;overflow-y:auto;overflow-x:hidden;}<br />
#mc_embed_signup a.mc_embed_close{background:transparent url(http://downloads.mailchimp.com/img/closebox.png) no-repeat; display:block; height:30px; width:30px; text-indent:-999em; position:absolute; top:-10px; right:-10px; display:none; }<br />
/* Add your own MailChimp form style overrides in your site stylesheet or in this style block.<br />
  We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
```[/size][/font][/color]<br />
<br />
Then, went to Layout > Homepage and created a new block and pasted  the codes as follows:<br />
<br />
[color=#000000][font=HiraKakuProN-W3][size=3]```php
<br />
<div id="mc_embed_signup"><br />
<form action="http://mydomain.us7.list-manage.com/subscribe/post?u=c4a45f2c927c9365b5032bb4e&id=8a35c6c9a2" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate><br />
<h2>Subscribe to our mailing list</h2><br />
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div><br />
<div class="mc-field-group"><br />
<label for="mce-EMAIL">Email Address  <span class="asterisk">*</span><br />
</label><br />
<input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL"><br />
</div><br />
<a href="#" id="mc_embed_close" class="mc_embed_close">Close</a> <div id="mce-responses" class="clear"><br />
<div class="response" id="mce-error-response" style="display:none"></div><br />
<div class="response" id="mce-success-response" style="display:none"></div><br />
</div> <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div><br />
</form><br />
</div><br />

```[/size][/font][/color]<br />
<br />
[color=#000000][font=HiraKakuProN-W3][size=3]The error message is:<br />
<br />
```php
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/home/directory/public_html/folder1/design/themes/basic/templates/index.tpl" on line 26 "#mc_embed_signup{position:absolute; top:0; left:0; width:100%; height:100%; background-color:rgba(0,0,0,.<img src="upload://oPnLkqdJc33Dyf2uA3TQwRkfhwd.gif" class="bbc_emoticon" alt="8)">;display:none;z-index:10000; }" - Unexpected ":", expected one of: "}" , " " , ATTR' in /home/directory/public_html/folder1/app/lib/other/smarty/sysplugins/smarty_internal_templatecompilerbase.php:665 Stack trace: #0 /home/directory/public_html/folder1/app/lib/other/smarty/sysplugins/smarty_internal_templateparser.php(3144): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 /home/directory/public_html/folder1/app/lib/other/smarty/sysplugins/smarty_internal_templateparser.php(3209): Smarty_Internal_Templateparser->yy_syntax_error(2, ':') #2 /home/directory/public_html/folder1/app/lib/other/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(105): Smarty_Internal_Templateparser->doParse(2, ':') #3 /home/directory/public_html/folder1/app/l in [b]/home/[/b]directory/public_html/folder1/app/lib/other/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 665
```[/size][/font][/color]<br />
<br />
[color=#000000][font=HiraKakuProN-W3][size=3]If you know how to make this work, please kindly teach me how to do it.[/size][/font][/color]<br />
[color=#000000][font=HiraKakuProN-W3][size=3]Thank you in advance![/size][/font][/color]

Fixed… custom dynamic menu caused this problem… my own mistake… :-(

I'd like to try to implement your code, but I am confused as I cannot see where you called the pop-up.js file. You are not calling it in the HTML block.



I am still on 3.x so perhaps I need to adapt what you did.



V.