var tisController = function(){};
var g_result;

tisController.init = function(){
    jQuery("a.apply_for_account").bind("click", tisController.modalApplication);
    jQuery("form[name=login]").bind("submit", tisController.userLogin);
    jQuery("form[name=login]").find("input, button, select").bind("keyup",function(e){
        e.preventDefault();
    });
    jQuery("#myaccount_nav").hover(function(){
        jQuery(this).find("img").attr("src","/images/shop/storefronts/1/nav_buttons/myaccount_f2.gif");
    },function(){
        jQuery(this).find("img").attr("src","/images/shop/storefronts/1/nav_buttons/myaccount.gif");
    })
}

jQuery(document).ready(tisController.init);

tisController.effects = function(){}

tisController.modalApplication = function(e){
    e.preventDefault();
    if (jQuery("head").find("link#user").length==0){
        jQuery("head").append('<link href="/css/user.css" rel="stylesheet" type="text/css" id="user" />');
    }
    jQuery.ajax({
        url: "/application.json.php",
        dataType: 'json',
        context: document.body,
        success: tisController.modalApplication.loaded
    });
}

tisController.modalApplication.loaded = function(result){
    var node_src = jQuery(jQuery("#application_template_node")[0].cloneNode(true)).removeAttr("id").css("display","block");
    var close_btn = jQuery("<img src='/images/close-icon.png' />").addClass("userclose").attr("id","close_application");
    close_btn.bind("click",VEIL.cleanup).hover(function(){jQuery(this).attr("src", "/images/close-icon-hover.png");},function(){jQuery(this).attr("src", "/images/close-icon.png");});
    node_src.find("form").ajaxForm({
        url:"/application.json.php",
        beforeSubmit:tisController.modalApplication.verifier, 
        success:tisController.modalApplication.step
        ,dataType:"json"
    });
    var form_render = result.form_render;
    var form_src = jQuery(form_render);
    //form_src.append(close_btn);
    node_src.find("form").append(form_src)
    node_src.find("#outerdiv").append(close_btn);
    VEIL.show(node_src[0]);
    jQuery("#btn_next_step").bind("click", function(){node_src.find("form").submit();});
}

tisController.modalApplication.step = function(result){
    g_result=result;
    var veil_back = jQuery("[id*=veilBack]");
    var close_btn = jQuery("<img src='/images/close-icon.png' />").addClass("userclose").attr("id","close_application");
    close_btn.bind("click",VEIL.cleanup).hover(function(){jQuery(this).attr("src", "/images/close-icon-hover.png");},function(){jQuery(this).attr("src", "/images/close-icon.png");});
    veil_back.find("form").html(jQuery(result.form_render));
    veil_back.find("#outerdiv").append(close_btn);
    VEIL.resize();
    jQuery("#btn_next_step").bind("click", function(){veil_back.find("form").submit();});
    jQuery("#btn_close").click(function(){
        VEIL.cleanup();
    });
    jQuery('input[name="frombilling"]').click(function(){
        if (jQuery('input[name="frombilling"]').is(":checked")) {
            for (i in result.address_info) {
                jQuery('input[name="' + i + '"]').val(result.address_info[i]);
                try {
                    if (i="state_id") {
                        jQuery('select[name="' + i + '"]')[0].selectedIndex=result.address_info[i];
                    } else {
                        jQuery('select[name="' + i + '"]').val(result.address_info[i]);
                    }
                }catch(e) {}
            }
       }
       });
}

tisController.modalApplication.verifier = function(){
    var app_form = jQuery("[id*=veilBack] form");
    app_form.find(".col_verify > *, .usererror > *").remove();
    app_form.find(".usererror").hide();
    app_form.find("input, select").css("background-color","#fff");
    var signup_fields;
    req_fields = {};
    var err_msg = "Please verify the information in the marked fields";
    var err_count = 0;
    jQuery.ajax("/modules/users/signup_pages.json", {async:false,dataType:"json",success:function(result){signup_fields=result;}});
    for (var i=0;i<signup_fields.length;i++){
        for (var j=0;j<signup_fields[i].fields.length;j++){
            if (
                signup_fields[i].fields[j].required==1 && 
                signup_fields[i].fields[j].name!="state_id" && 
                signup_fields[i].fields[j].name!="province" && 
                signup_fields[i].fields[j].name!="cou_id" && 
                signup_fields[i].fields[j].name!="email" &&
                signup_fields[i].fields[j].name!="zip" &&
                signup_fields[i].fields[j].name!="password1" &&
                signup_fields[i].fields[j].name!="password2"
                
            ){
                req_fields[signup_fields[i].fields[j].name]=1;
            }
        }
    }
    //Catch all fields
    app_form.find("input, select").each(function(){
        var local_element = jQuery(this);
        if (req_fields[local_element.attr("name")]!=undefined){
            if (local_element.val().length==0){
                err_count++;
                local_element.parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='This field is required' />");
            }
        }
    });
    
    //Special Verifier for email
    if (app_form.find("input[name=email]").length>0){
        jQuery.ajax({
            type : "post",
            url : "/modules/users/user_wholesale.php",
            async : false,
            data : {"verifier":1, "field":"email", "value":app_form.find("input[name=email]").val()},
            dataType : "json",
            success : function(result){
                if (result.status==0){
                    err_msg+="<br />" + result.msg;
                    err_count++;
                    app_form.find("input[name=email]").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='This field is required' />");
                }
            }
        })
    }
    
    //Special Verifier for passwords
    if (app_form.find("input[name=password1],input[name=password2]").length==2){
        if (app_form.find("input[name=password1]").val().length==0){
            app_form.find("input[name=password1]").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='This field is required' />");
            err_count++;
        } else if (app_form.find("input[name=password1]").val() != app_form.find("input[name=password2]").val()){
            err_count++;
            app_form.find("input[name=password1],input[name=password2]").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='Passwords must match' />");
            err_msg += "<br />Passwords must match";
        }
    }
    
    //Special verifier for State/Country/Zip conflict
    if (app_form.find("*[name=state_id],*[name=cou_id],*[name=zip]").length==3){
        if (app_form.find("*[name=cou_id]").val() == 1) {
            if (app_form.find("*[name=state_id]").val() == "") {
                app_form.find("*[name=state_id]").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='Passwords must match' />");
                err_count++;
            }
            if (app_form.find("*[name=zip]").val()=="") {
                app_form.find("*[name=zip]").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='Passwords must match' />");
                err_count++;
            }
        } else {
            if (app_form.find("*[name=province").val()=="") {
                app_form.find("*[name=province").parents("tr").find(".col_verify").append("<img src='/images/shop/buttons/delete2.png' alt='Passwords must match' />");
                err_count++;
            }
        }
            
    }
        
    if (err_count>0){
        app_form.find(".usererror").html(err_msg).show();
        jQuery("table tr:has(img[src='/images/shop/buttons/delete2.png'])").find("input, select").css("background-color","#FF7580")
    }
    
    return err_count == 0;
}



tisController.userLogin = function(e){
    e.preventDefault();
    var local_form = jQuery(this);
    var post_data = {};
    local_form.find("input,select,button").each(function(){
        var local_element = jQuery(this);
        try {
            if (jQuery.trim(local_element.attr("name")).length>0){
                post_data[jQuery.trim(local_element.attr("name"))] = local_element.val();
            }
        } catch(e) {}
    });
    
    jQuery.post("/rmod/login.json.php", post_data, function(result){
        if (parseInt(result.response.user_id)>0){
            window.location.reload();
        } else {
            alert('Your email address and password could not be found');
        }
    },"json");
}



