/**
 * site_functions_cardshop.js - JavaScript Functions.
 * @package site_functions_cardshop.js
 * @copyright 2005 - 2008 OSD
 * Note : The following uses jquery library
*/

// Current selected card area for editing
var selected_card_area_id = "";
// Common invalid text
var details_start = 'Invalid information entered.\n\n';
var details_end = 'Please correct the above errors before proceeding.    \n\n';
var details = '';

// Current selected card area allowed new lines
var card_area_new_lines_allowed_top = 3;
var card_area_new_lines_allowed_middle = 20;
var card_area_new_lines_allowed_bottom = 3;


/**
* Change the current selected card area for editing.
*/
function change_edit_area(card_area) { 
    var content_text = "";
    // Store which edit area is currently selected 
    selected_card_area_id = card_area;
    // Get the current HTML from that area
    var content_html = $("#"+card_area).attr('innerHTML');
    if ($("#"+card_area).attr('innerHTML') != undefined) { 
        // Clean up HTML to just TEXT
        content_text = content_html.replace(/<br>/gi, "\n");
    }
    // Set edit box field with TEXT
    $("#edit_box").val(content_text);
}

/**
* Check allowed new lines.
*/
function check_new_lines(e) { 
    var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
    //alert(keyCode);
    if ((keyCode == 13) && (selected_card_area_id == "box_in_right_top")) { 
        if ($("#edit_box").val().split("\n").length >= card_area_new_lines_allowed_top) { 
            return false;
        }
    }
    else if ((keyCode == 13) && (selected_card_area_id == "box_in_right_middle")) { 
        if ($("#edit_box").val().split("\n").length >= card_area_new_lines_allowed_middle) { 
            return false;
        }
    }
    else if ((keyCode == 13) && (selected_card_area_id == "box_in_right_bottom")) { 
        if ($("#edit_box").val().split("\n").length >= card_area_new_lines_allowed_bottom) { 
            return false;
        }
    }
    //alert($("#edit_box").val().split("\n").length);
}

/**
* Update current selected card area with text.
*/
function update_card_area() { 
    // Get the current contents of the edit area field and
    // replace any new lines chars with HTML <br>
    var content_html = $("#edit_box").val().replace(/\n/gi, "<br>");
    // Set the card area to modified HTML
    $("#"+selected_card_area_id).attr('innerHTML', content_html);
}

/**
* Save the current customised text and image on the card to the form fields.
*/
function save_card() { 
    if (($("#box_in_right_top").attr('innerHTML') == "") && ($("#box_in_right_middle").attr('innerHTML') == "") && ($("#box_in_right_bottom").attr('innerHTML') == "")) { 
		details = details_start+'- Please customise the card. Select an area and use the edit box to add your message.\n\n'+details_end;
		alert(details);
    }
    else { 
        // Update form field values for current HTML content
        $("#msg_top").val($("#box_in_right_top").attr('innerHTML'));
        $("#msg_middle").val($("#box_in_right_middle").attr('innerHTML'));
        $("#msg_bottom").val($("#box_in_right_bottom").attr('innerHTML'));
        //$("#img_left").val($('#img_left_src').attr("src"));
        // Submit form
        $("#form_card").submit();
    }
}

/**
* Select Date option instead of next dispatch.
*/
function date_select(btn) { 
    // Select the custom date radio option
    $("#delivery_choice_date").attr("checked", "checked");
    displayCalendar(document.form_review.delivery_date, 'dd-mm-yyyy', btn);
}

/**
* Clear Specific Date option.
*/
function date_clear() { 
    // Clear the date field
    $("#delivery_date").val("");
}

/**
* Save Card details to the Shopping Cart.
*/
function save_card_to_cart() { 
    //alert($('#delivery_date').val());
    // Submit form
    $("#form_review").submit();
}

/**
* When surname field is clicked tick "Use Opposite Address Form" radio button
*/
function default_to_address_form() { 
    $("input[@name='address_id']:checked").val("");
    $("#address_id_form").attr("checked", true); 
}

/**
* Check Address okay from Address Form.
*/
function address_entry_card_save() { 
    // Check for input form fields
    if (($("input[@name='lastname']").val() == "") || ($("input[@name='address1']").val() == "") || 
          ($("input[@name='city']").val() == "") || ($("#country_id :selected").val() == "")) { 
		details = details_start+'Please:\n\t- select an address from the Address Book\n';
		details+= '\t\t\t\tOR\n\t- enter in details of a new address.\n\n'+details_end;
		alert(details);
    }
    else { 
        // Submit form
        $("#form_address").submit();
        //alert("okay");
    }
}

/**
* Check Address okay from Address Book.
*/
function address_book_card_save() { 
    // Check for selected member address entry
    if (($("input[@name='address_id']:checked").val() == null) || ($("input[@name='address_id']:checked").val() == "")) { 
		details = details_start+'Please:\n\t- select an address from the Address Book\n';
		details+= '\t\t\t\tOR\n\t- enter in details of a new address.\n\n'+details_end;
		alert(details);
    }
    else { 
        // Submit form
        $("#form_address").submit();
        //alert("okay");
    }
}

/**
* Delete Address from Address Book.
*/
function address_clear_fields() { 
    // Clear form action and fields
    $("#form_address").attr('action', "/my-account-address-book.php");
    $("input[@name='operation']").val("address_add");
    $("input[@name='ma_id']").val("");
    //$("input[@name='title']").val("");
    $("input[@name='firstname']").val("");
    $("input[@name='lastname']").val("");
    $("input[@name='address1']").val("");
    $("input[@name='address2']").val("");
    $("input[@name='address3']").val("");
    $("input[@name='city']").val("");
    $("input[@name='county']").val("");
    $("input[@name='postcode']").val("");
    $("input[@name='country_id']").val("");
    // Update labels etc
    $("#address_form_label").attr('innerHTML', "add address");
    $("#address_form_button_link").attr('title', "add new");
    $("#address_form_button_span").attr('innerHTML', "add new &raquo;");
}

/**
* Delete Address from Address Book.
*/
function address_delete() { 
    $("input[@name='operation']").val("address_delete");
    if ($("input[@name='address_id']:checked").val() != "") { 
		details = 'Confirmation Needed.\n\n';
		details+= 'Please confirm you wish to delete the following address:\t\n\n';
		details+= '\t'+$("input[@name='address_id']:checked").val()+'\n\n';
		details+= '\'OK\' to Continue!\n\n\'Cancel\' to keep!\n\n';
		if (confirm(details)) { 
            // Submit form
            $("#form_address_book").submit();
		}
    }
    else { 
		details+= 'Invalid selection.\n\n';
		details+= 'Please:\n\t- select an address from the Address Book to delete.\n\n'+details_end;
		alert(details);
    }
}

/**
* Add Address to Address Book.
*/
function address_add() { 
	var pass = true;

	if ($("input[@name='firstname']").val() == '') { 
		details = '- Please enter a Firstname.\n\n';
    	if (pass) $("input[@name='firstname']").focus();
		pass = false;
	}
	if ($("input[@name='lastname']").val() == '') { 
		details+= '- Please enter a Surname.\n\n';
    	if (pass) $("input[@name='lastname']").focus();
		pass = false;
	}
	if ($("input[@name='address1']").val() == '') { 
		details+= '- Please enter a Delivery Address.\n\n';
    	if (pass) $("input[@name='address1']").focus();
		pass = false;
	}
	if ($("input[@name='city']").val() == '') { 
		details+= '- Please enter a City.\n\n';
    	if (pass) $("input[@name='city']").focus();
		pass = false;
	}
	if ($("input[@name='country_id']").val() == '') { 
		details+= '- Please select a Country.\n\n';
    	if (pass) $("input[@name='country_id']").focus();
		pass = false;
	}
	if (pass) { 
        // Submit form
        $("#form_address_add").submit();
	}
	else { 
		details+= details_start + details + details_end;
		alert(details);
	}
}

/** 
* Var to track if callback has been called.
*/
var ajax_callback_once = false;
var ajax_uploaded_filename = "";


/** 
* Function for client side processing of submitted file for upload.
*/
function ajaxFileUpload() { 
    $("#loading")
    .ajaxStart(function(){ 
        $(this).show();
    })
    .ajaxComplete(function(){ 
        $(this).hide();
        if (!ajax_callback_once) { 
        }
    });

    $.ajaxFileUpload 
    ( 
        { 
            //url:'http://cardshop.dev.ie/doajaxfileupload.php',
            url:'http://www.cardshop.ie/doajaxfileupload.php',
            secureuri:false,
            fileElementId:'fileToUpload',
            dataType: 'json',
            success: function (data, status) { 
                if(typeof(data.error) != 'undefined') { 
                    if(data.error != '') { 
                        alert(data.error);
                    }else { 
                        //alert(data.msg);
                        ajax_uploaded_filename = data.msg;
                        var image_full_url = dynamic_left_image+ajax_uploaded_filename+'&amp;'+new Date;
                        $('#img_left').val(ajax_uploaded_filename);
                        $('#img_left_src').attr("src", image_full_url);
                        $('#img_left_src').css("display", "");
                        $('#img_left_src').css("visibility", "visible");
                        //alert("1: "+$('#img_left_src').css("display"));
                        //alert("2: "+$('#img_left_src').attr("src"));
                        //alert("3: "+$('#img_left').val());
                    }
                }
            },
            error: function (data, status, e)
            {
                alert(e);
            }
        }
    )
    return false;
}
