jQuery(document).ready(function(){
    jQuery("#emailconfirm-top").dialog({
        autoOpen:false,
        bgiframe:true,
        modal:true,
        dragable:false,
        resizable:false,
        buttons: {
            'Continue': function() {
                var email1 = jQuery('#email-top-1').val();
                var email2 = jQuery('#email-top-2').val();
                if(email1 == email2){
                    jQuery(this).dialog('close');
//                    jQuery('#newsletter-top').submit();
                    submitMailChimp(jQuery('#newsletter-top'));
                }else{
                    jQuery('#email-top-1').val("");
                    jQuery('#email-top-2').val("");
                    jQuery('#email-top-1').focus();
                    jQuery(this).dialog('close');
                    jQuery('#email-top-1_error').html("Email confirmation did not match");
                    jQuery('#email-top-1_error').show("");
                }
                
            },
            Cancel: function() {
                jQuery(this).dialog('close');
            }
        }
    });
});


jQuery(document).ready(function(){
    jQuery("#emailconfirm-bottom").dialog({
        autoOpen:false,
        bgiframe:true,
        modal:true,
        dragable:false,
        resizable:false,
        buttons: {
            'Continue': function() {
                var email1 = jQuery('#email-bottom-1').val();
                var email2 = jQuery('#email-bottom-2').val();
                if(email1 == email2){
                    jQuery(this).dialog('close');
//                    jQuery('#newsletter-bottom').submit();
                    submitMailChimp(jQuery('#newsletter-bottom'));
                }
                else{
                    jQuery('#email-bottom-1').val("");
                    jQuery('#email-bottom-2').val("");
                    jQuery('#email-bottom-1').focus();
                    jQuery(this).dialog('close');
                    jQuery('#email-bottom-1_error').html("Email confirmation did not match");
                    jQuery('#email-bottom-1_error').show("");

                }
            },
            Cancel: function() {
                jQuery(this).dialog('close');
            }
        }
    });
});
function submitMailChimp(form)
{
    jQuery("body").append("<div class='popup-overlay'><div class='waiting'></div></div>");
    jQuery.post("/mailchimp/signup",form.serialize(),function(data){
        jQuery(".popup-overlay").each(function(){
            jQuery(this).remove();
        });
        alert(data);
    });
}
jQuery(function(){
    if(jQuery("#newsletter-pop").length > 0)
    {
        jQuery('body').append("<div class='popup-overlay'></div>");
        var width = jQuery(window).width()/2 - 191;
        jQuery("#newsletter-pop").css("left",width+"px");
        jQuery("#newsletter-pop").show();
        jQuery("#newsletter-pop input").focus();
        jQuery(".popup-overlay").live("click",function(){
            jQuery(".popup-overlay").remove();
            jQuery("#newsletter-pop").hide();
        })
        jQuery("#newsletter-pop").keyup(function(event){
            if(event.which == 27)
            {
                jQuery(".popup-overlay").remove();
                jQuery("#newsletter-pop").hide();
            }
        })
    }
})

jQuery(document).ready(function(){
    jQuery('#feedback-tab').click(function(){
        jQuery("#feedback_popup").dialog('open');

    });
    jQuery("#feedback_popup").dialog({
        autoOpen:false,
        bgiframe:true,
        modal:true,
        dragable:false,
        resizable:false,
        width:600
    });

    jQuery('#feedback-submit').click(function(){
        jQuery('#feedback-form-submitting').show();
        jQuery.ajax({
            type:'POST',
            url:'/parties/index/comment',
            dataType: 'json',
            data:{
                email:jQuery('#feedback-email').val(),
                comment:jQuery('#feedback-comment').val(),
                page:jQuery('#feedback-page').val(),
                user_info:jQuery('#feedback-user-info').val()
            },
            success: function(data){
                if(data.msg){
                    var html = '<li class="success-msg">';
                    html += '<ul><li>';
                    html += data.msg;
                    html += '</li></ul>';
                    jQuery('#feedback_message').html(html);
                    jQuery('#feedback_message').show();
                    jQuery('#feedback_form').hide();
                }
                if(data.error){
                    var html = '<li class="error-msg">';
                    html += '<ul><li>';
                    html += data.error;
                    html += '</li></ul>';
                    jQuery('#feedback_message').html(html);
                    jQuery('#feedback-form-submitting').hide();
                }
            },
            error: function(XMLHttpRequest,textStatus,errorThrown){
                alert('error submitting the form');
            }
        });
        return false;
    });
});

function subscribeFormBottom(thisform)
{
    var validate = validate_bottomform(thisform);

    if(validate){
        jQuery('#emailconfirm-bottom').dialog('open');
        return false;
    }
    
    return validate;
}

function subscribePopup(thisform)
{
    var validate = validate_popup(thisform);

    if(validate){
        return true;
    }
    
    return validate;
}


function subscribeFormTop(thisform)
{
    var validate = validate_topform(thisform);

    if(validate){
        jQuery('#emailconfirm-top').dialog('open');
        return false;
    }
    
    return validate;
}



function validatefields(form,fields){
    var validate = true;
    for(var i = 0; i < fields.length; i++){
        var value = "";
        var field = fields[i];
        var fieldid = field.id;

        if(field.type == "checkbox"){
            if(jQuery("input#"+fieldid).is(":checked")){
                value="checked";

            }
        }else{
            value = jQuery('#'+fieldid).val();
        }

        jQuery('#'+fieldid+"_error").html("");
        var criterias = field.criteria;

        for(var j = 0; j < criterias.length; j++){

            switch(criterias[j]){

                case "0"://check null
                    var message = "This field is required";
                    if(field.errmsg)
                        message = field.errmsg;

                    if(value==null||value==""){
                        jQuery('#'+fieldid+"_error").html(message);
                        jQuery('#'+fieldid+"_error").show("");
                        validate = false;
                    }

                    break;

                case "1"://check if the field value is numeric or not
                    var message = "Non numeric input";
                    if(field.errmsg)
                        message = field.errmsg;

                    var anum=/(^\d+$)|(^\d+\.\d+$)/
                    if(value && !anum.test(value)){
                        jQuery('#'+fieldid+"_error").html(message);
                        jQuery('#'+fieldid+"_error").show("");
                        validate = false;
                    }

                    break;
                case "2"://check if the field value is right email address or not
                    var message = "Enter valid email address";
                    if(field.errmsg)
                        message = field.errmsg;

                    var pattern=/^([a-zA-Z0-9_.-\\+])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
                    if(value && !pattern.test(value)){
                        jQuery('#'+fieldid+"_error").html(message);
                        jQuery('#'+fieldid+"_error").show("");
                        validate = false;
                    }

                    break;

            }
        }
    }
    return validate;
}

/*Object field*/
function field(itype,iid,ierrmsg,icriteria){
    this.type = itype;
    this.id = iid;
    this.criteria = icriteria;
    this.errmsg = ierrmsg;
}

function validate_bottomform(thisform){
    with(thisform){
        var fields = new Array();
        fields[0] = new field("","email-bottom-1","",new Array("0","2"));
        
        return validatefields(thisform,fields);

        }
}

function validate_popup(thisform){
    with(thisform){
        var fields = new Array();
        fields[0] = new field("","email-bottom","",new Array("0","2"));
        
        return validatefields(thisform,fields);

        }
}

function validate_topform(thisform){
    with(thisform){
        var fields = new Array();
        fields[0] = new field("","email-top-1","",new Array("0","2"));
        return validatefields(thisform,fields);
        }
}


