/**
 * WordPress 2.8 Plugin: WP-EMail 2.50
 * Copyright (c) 2009 Lester "GaMerZ" Chan
 *
 * File Written By:
 * - Lester "GaMerZ" Chan
 * - http://lesterchan.net
 *
 * File Information:
 * - E-Mail Javascript File
 * - wp-content/plugins/wp-email/email-js.js
 */


// Variables
var email_p = 0;
var email_pageid = 0;
var email_yourname = '';
var email_youremail = '';
var email_yourremarks = '';
var email_friendname = '';
var email_friendemail = '';
var email_friendnames = '';
var email_friendemails = '';
var email_imageverify = '';
emailL10n.max_allowed = parseInt(emailL10n.max_allowed);

// Email Form Validation
function validate_email_form() {
    // Variables
    var errFlag = false;
    var errMsg = emailL10n.text_error + "\n";
    errMsg = errMsg + "__________________________________\n\n";

    // Your Name Validation
    if(jQuery('#yourname').length) {
        if(isEmpty(email_yourname) || !is_valid_name(email_yourname)) {
            errMsg = errMsg + emailL10n.text_name_invalid + "\n";
            errFlag = true;
        }
    }
    // Your Email Validation
    if(jQuery('#youremail').length) {
        if(isEmpty(email_youremail) || !is_valid_email(email_youremail)) {
            errMsg = errMsg + emailL10n.text_email_invalid + "\n";
            errFlag = true;
        }
    }
    // Your Remarks Validation
    if(jQuery('#yourremarks').length) {
        if(!isEmpty(email_yourremarks)) {
            if(!is_valid_remarks(email_yourremarks)) {
                errMsg = errMsg + emailL10n.text_remarks_invalid + "\n";
                errFlag = true;
            }
        }
    }
    // Friend Name(s) Validation
    if(jQuery('#friendname').length) {
        if(isEmpty(email_friendname)) {
            errMsg = errMsg + emailL10n.text_friend_names_empty + "\n";
            errFlag = true;
        } else {
            for(i = 0; i < email_friendnames.length; i++) {
                if(isEmpty(email_friendnames[i]) || !is_valid_name(email_friendnames[i])) {
                    errMsg = errMsg + emailL10n.text_friend_name_invalid + email_friendnames[i] + "\n";
                    errFlag = true;
                }
            }
        }
        if(email_friendnames.length > emailL10n.max_allowed) {
            errMsg = errMsg + emailL10n.text_max_friend_names_allowed + "\n";
            errFlag = true;
        }
    }
    // Friend Email(s) Validation
    if(isEmpty(email_friendemail)) {
        errMsg = errMsg + emailL10n.text_friend_emails_empty + "\n";
        errFlag = true;
    } else {
        for(i = 0; i < email_friendemails.length; i++) {
            if(isEmpty(email_friendemails[i]) || !is_valid_email(email_friendemails[i])) {
                errMsg = errMsg + emailL10n.text_friend_email_invalid + email_friendemails[i] + "\n";
                errFlag = true;
            }
        }
    }
    if(email_friendemails.length > emailL10n.max_allowed) {
        errMsg = errMsg +  emailL10n.text_max_friend_emails_allowed + "\n";
        errFlag = true;
    }
    // Friend Name(s) And Email(s) Validation
    if(jQuery('#friendname').length) {
        if(email_friendnames.length != email_friendemails.length) {
            errMsg = errMsg + emailL10n.text_friends_tally + "\n";
            errFlag = true;
        }
    }
    if(jQuery('#imageverify').length) {
        if(isEmpty(email_imageverify)) {
            errMsg = errMsg + emailL10n.text_image_verify_empty + "\n";
            errFlag = true;
        }
    }
    // If There Is Error Alert It
    if (errFlag == true){
        alert(errMsg);
        return false;
    } else {
        return true;
    }
}

// Check Form Field Is Empty
function isEmpty(value){
    if (jQuery.trim(value) == "") {
        return true;
    }
    return false;
}

// Check Name
function is_valid_name(name) {
    filter  = /[(\*\(\)\[\]\+\,\/\?\:\;\'\"\`\~\\#\$\%\^\&\<\>)+]/;
    return !filter.test(jQuery.trim(name));
}

// Check Email
function is_valid_email(email) {
    filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return filter.test(jQuery.trim(email));
}

// Check Remarks
function is_valid_remarks(remarks) {
    remarks = jQuery.trim(remarks);
    injection_strings = new Array('apparently-to', 'cc', 'bcc', 'boundary', 'charset', 'content-disposition', 'content-type', 'content-transfer-encoding', 'errors-to', 'in-reply-to', 'message-id', 'mime-version', 'multipart/mixed', 'multipart/alternative', 'multipart/related', 'reply-to', 'x-mailer', 'x-sender', 'x-uidl');
    for(i = 0; i < injection_strings.length; i++) {
        if(remarks.indexOf(injection_strings[i]) != -1) {
            return false;
        }
    }
    return true;
}

// WP-Email Popup
function email_popup(email_url) {
    window.open(email_url, "_blank", "width=500,height=500,toolbar=0,menubar=0,location=0,resizable=0,scrollbars=1,status=0");
}

// Email Form AJAX
function email_form() {
    if(jQuery('#yourname').length) {
        email_yourname = jQuery('#yourname').val();
    }
    if(jQuery('#youremail').length) {
        email_youremail = jQuery('#youremail').val();
    }
    if(jQuery('#yourremarks').length) {
        email_yourremarks = jQuery('#yourremarks').val();
    }
    if(jQuery('#friendname').length) {
        email_friendname = jQuery('#friendname').val();
        email_friendnames = email_friendname.split(",");
    }
    email_friendemail = jQuery('#friendemail').val();
    email_friendemails = email_friendemail.split(",");
    if(jQuery('#imageverify').length) {
        email_imageverify = jQuery('#imageverify').val();
    }
    if(jQuery('#p').length) {
        email_p = jQuery('#p').val();
    }
    if(jQuery('#page_id').length) {
        email_pageid = jQuery('#page_id').val();
    }
    if(validate_email_form()) {
        email_ajax_data = 'wp-email=1';
        jQuery('#wp-email-submit').attr('disabled', true);
        jQuery('#wp-email-loading').show();
        if(jQuery('#yourname').length) {
            email_ajax_data += '&yourname=' + email_yourname;
            jQuery('#yourname').attr('disabled', true);
        }
        if(jQuery('#youremail').length) {
            email_ajax_data += '&youremail=' + email_youremail;
            jQuery('#youremail').attr('disabled', true);
        }
        if(jQuery('#yourremarks').length) {
            email_ajax_data += '&yourremarks=' + email_yourremarks;
            jQuery('#yourremarks').attr('disabled', true);
        }
        if(jQuery('#friendname').length) {
            email_ajax_data += '&friendname=' + email_friendname;
            jQuery('#friendname').attr('disabled', true);
        }
        if(jQuery('#friendemail').length) {
            email_ajax_data += '&friendemail=' + email_friendemail;
            jQuery('#friendemail').attr('disabled', true);
        }
        if(jQuery('#imageverify').length) {
            email_ajax_data += '&imageverify=' + email_imageverify;
            jQuery('#imageverify').attr('disabled', true);
        }
        if(jQuery('#p').length) {
            email_ajax_data += '&p=' + email_p;
        }
        if(jQuery('#page_id').length) {
            email_ajax_data += '&page_id=' + email_pageid;
        }
        jQuery.ajax({
            type: 'POST',
            url: emailL10n.ajax_url,
            data: email_ajax_data,
            cache: false,
            success: function (data) {
                jQuery('#wp-email-content').html(data);
            }
        });
}
}

