var fnames = ['EMAIL', 'FNAME', 'LNAME'],
	ftypes = ['email', 'text', 'text'],
	head = document.getElementsByTagName('head')[0],
	script = document.createElement('script');

try {
    var jqueryLoaded = jQuery;
    jqueryLoaded = true;
} catch(err) {
    var jqueryLoaded = false;
}
var head = document.getElementsByTagName('head')[0];
if (!jqueryLoaded) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js';
    head.appendChild(script);
    if (script.readyState && script.onload!==null){
        script.onreadystatechange= function () {
              if (this.readyState == 'complete') mce_preload_check();
        }    
    }
}

script.type = 'text/javascript';
script.src = 'http://downloads.mailchimp.com/js/jquery.form-n-validate.js';
head.appendChild(script);

var err_style = '';
try{
    err_style = mc_custom_error_style;
} catch(e){
}

var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet) {
  style.styleSheet.cssText = '.mce_inline_error {' + err_style + '}';
} else {
  style.appendChild(document.createTextNode('.mce_inline_error {' + err_style + '}'));
}
head.appendChild(style);

setTimeout('mce_preload_check();', 250);

var mce_preload_checks = 0;
function mce_preload_check()
{
    if (mce_preload_checks > 40) return;
    mce_preload_checks++;
    try {
        var jqueryLoaded = jQuery;
    } catch(err) {
        setTimeout('mce_preload_check();', 250);
        return;
    }
    try {
        var validatorLoaded = jQuery("#fake-form").validate({});
    } catch(err) {
        setTimeout('mce_preload_check();', 250);
        return;
    }
    mce_init_form();
}

function mce_init_form()
{
	jQuery(document).ready(function($){
		var options = { 
				errorClass: 'mce_inline_error',
				errorElement: 'div',
				onkeyup: function(){},
				onfocusout: function(){},
				onblur: function(){}
			},
			mce_validator = $("#mc-embedded-subscribe-form").validate(options),
			urlAjax = $("#mc-embedded-subscribe-form").attr('action').replace('http://wshop.us2.list-manage1.com/subscribe/post', 'http://wshop.us2.list-manage1.com/subscribe/post-json');
		$("#mc-embedded-subscribe-form").unbind('submit');//remove the validator so we can get into beforeSubmit on the ajaxform, which then calls the validator
		options = {
			url: urlAjax + '&c=?',
			type: 'GET',
			dataType: 'json',
			contentType: "application/json; charset=utf-8",
			beforeSubmit: function(){
				$('#mce_tmp_error_msg').remove();
				$('.datefield','#mc_embed_signup').each(
					function(){
						var txt = 'filled';
						var fields = new Array();
						var i = 0;
						$(':text', this).each(
							function(){
								fields[i] = this;
								i++;
							});
						$(':hidden', this).each(
							function(){
								if (fields.length == 2) fields[2] = {'value':1970};//trick birthdays into having years
								if ( fields[0].value=='MM' && fields[1].value=='DD' && fields[2].value=='YYYY' ){
									this.value = '';
								} else if ( fields[0].value=='' && fields[1].value=='' && fields[2].value=='' ){
									this.value = '';
								} else {
									this.value = fields[0].value+'/'+fields[1].value+'/'+fields[2].value;
								}
							});
					});
				return mce_validator.form();
			}, 
			success: mce_success_cb
		};
		$('#mc-embedded-subscribe-form').ajaxForm(options);      
	});
}
function mce_success_cb(resp)
{
	var $ = jQuery;
    $('#mce-success-response').hide();
    $('#mce-error-response').hide();
    if (resp.result=="success"){
        $('#mce-'+resp.result+'-response').show().html(resp.msg);
        $('#mc-embedded-subscribe-form').each(function(){
            this.reset();
    	});
    } else {
        var index = -1;
        var msg;
        try {
            var parts = resp.msg.split(' - ',2);
            if (parts[1]==undefined){
                msg = resp.msg;
            } else {
                i = parseInt(parts[0]);
                if (i.toString() == parts[0]){
                    index = parts[0];
                    msg = parts[1];
                } else {
                    index = -1;
                    msg = resp.msg;
                }
            }
        } catch(e){
            index = -1;
            msg = resp.msg;
        }
        try{
            if (index== -1){
                $('#mce-'+resp.result+'-response').show().html(msg);            
            } else {
                err_id = 'mce_tmp_error_msg';
                html = '<div id="'+err_id+'" style="'+err_style+'"> '+msg+'</div>';

                var input_id = '#mc_embed_signup';
                var f = $(input_id);
                if (ftypes[index]=='address'){
                    input_id = '#mce-'+fnames[index]+'-addr1';
                    f = $(input_id).parent().parent().get(0);
                } else if (ftypes[index]=='date'){
                    input_id = '#mce-'+fnames[index]+'-month';
                    f = $(input_id).parent().parent().get(0);
                } else {
                    input_id = '#mce-'+fnames[index];
                    f = $().parent(input_id).get(0);
                }
                if (f){
                    $(f).append(html);
                    $(input_id).focus();
                } else {
                    $('#mce-'+resp.result+'-response').show().html(msg);
                }
            }
        } catch(e){
            $('#mce-'+resp.result+'-response').show().html(msg);
        }
    }
}
