﻿
// image cropper settings
var useCropper = true;
var fixCropperRatio = true;

function imageSetup(elId) {
    var thisImg = imageLoaderGroup.registerSrcImage(elId, getImageUrl(elId));
    YAHOO.util.Event.addListener(elId, 'load', onImageLoad);
}

function getImageUrl(elId) {
    var img = document.getElementById(elId);
    return getImageObjUrl(img);
}

function getImageObjUrl(img) {
    if (img.getAttribute("ldps_cropperon") == "True") {
        return img.getAttribute("ldps_img");
    } else {
        return img.getAttribute("ldps_img") + img.getAttribute("ldps_imgServerCrop");
    }
}


function onImageLoad(e) {
    var guid = this.getAttribute("ldps_guid");
    document.getElementById("loadingDiv_" + guid).style.display = "none";
    this.style.display = "";

    //    if (this.getAttribute("ldps_cropperon") == "True") {
    //        initCropper(this);
    //        showCropOn(this.getAttribute("ldps_guid"));
    //    }
}

function showCropOn(imgID) {
    document.getElementById(imgID + "_cropLink").style.display = "none";
    document.getElementById(imgID + "_cropOn").style.display = "inline";
}

function startCrop(imgID) {
    var img = document.getElementById(imgID);
    showCropOn(img.getAttribute("ldps_guid"));
    var loadingImage = document.getElementById("savingCrop_" + img.getAttribute("ldps_guid"));
    loadingImage.style.visibility = "visible";
    img.setAttribute("ldps_cropperon", "True");
    if (img.src != img.getAttribute("ldps_img")) img.src = img.getAttribute("ldps_img");
}

function showSavingDialog() {
    asyncError = false;
    SavingDialog.show();
}

function showAdvancedOptionsDialog() {
    asyncError = false;
    AdvancedOptionsDialog.show();
}


function hideSavingDialog() {
    if (!asyncError) SavingDialog.cancel();
}

function applyAdvancedOptionsDialog() {
    //the YUI dialog controls don't consistently post values in UpdatePanel submit
    FormUserCommentsTextBox().value = txtOrderComments().value;
    FormColorCorrectionRadioButton().checked = radioColorCorrectOn().checked;
    hideAdvancedOptionsDialog();
    submitAdvancedOptions();
}

function hideAdvancedOptionsDialog() {
    if (!asyncError) AdvancedOptionsDialog.cancel();
}


var timer;
var Total = 0;
var Complete = 0;

function GetOrderProgress() {
    PageMethods.GetCartTranactionProgress(SetOrderProgress, wsErrorRedirect);
}

function SetOrderProgress(progressString) {
    document.getElementById("divProgressMessage").innerText = "Progress: " + progressString;
    Total = progressString.split("/")[1];
    Complete = progressString.split("/")[0];

    if (Total == Complete) {
        if (asyncError) { asyncError = false; refreshCartItems(); }
        else closeProductPicker();
        document.getElementById("divProgressMessage").innerText = " ";
    } else { timer = setTimeout('GetOrderProgress()', 5000); }
}


/// SECTION: Image Loader group

var imageLoaderGroup = new YAHOO.util.ImageLoader.group(window, 'scroll', 1);
imageLoaderGroup.addTrigger(window, 'resize');
imageLoaderGroup.addTrigger(window, 'load');
imageLoaderGroup.foldConditional = true;

function addImagesToLoaderGroup() {
    imageLoaderGroup = new YAHOO.util.ImageLoader.group(window, 'scroll');
    imageLoaderGroup.addTrigger(window, 'resize');
    imageLoaderGroup.foldConditional = true;

    var images = document.getElementsByName("cropPreviewImage");
    for (i = 0; i < images.length; i++) {
        var image = images[i];
        YAHOO.util.Event.addListener(image, 'load', onImageLoad);
        addImageToLoaderGroup(image);
    }
    imageLoaderGroup.fetch();
}

function initCropperFromEvent(e) {
    initCropper(e.srcElement);
}

function addImageToLoaderGroup(image) {
    var thisImg = imageLoaderGroup.registerSrcImage(image.id, getImageObjUrl(image));
    thisImg.setVisible = true;
}

/// SECTION: YUI Cropper

var timer;
var currentGuid;
var currentResults;

function registerCrop(guid, results) {
    var loadingImage = document.getElementById("savingCrop_" + guid);
    loadingImage.style.visibility = "visible";
    clearTimeout(timer);
    if (guid != currentGuid) {

        if (currentGuid != null) {
            sendResults();
        }
        currentGuid = guid;
    }
    currentResults = results;
    timer = setTimeout('sendResults()', 2000);
}

function sendResults() {
    PageMethods.updateImageCrop(currentGuid, currentResults.top, currentResults.left, completeCropUpdate, wsErrorRedirect);
    currentGuid = null;
    currentResults = null;
}

function completeCropUpdate(returnGuid) {
    var loadingImage = document.getElementById("savingCrop_" + returnGuid);
    loadingImage.style.visibility = "hidden";
}

function fncallback(e, obj) { initCropper(obj); }

function initCroppers() {
    var imagesToCrop = document.getElementsByName("cropPreviewImage");
    for (i = 0; i < imagesToCrop.length; i++) {
        initCropper(imagesToCrop[i]);
    }
}

function initCropper(image) {
    var yuiCrop = new YAHOO.widget.ImageCropper(image, {
        initialXY: [image.getAttribute("ldps_initialx"), image.getAttribute("ldps_initialy")],
        initHeight: (image.getAttribute("ldps_cropHeight")),
        initWidth: (image.getAttribute("ldps_cropWidth")),
        minHeight: (image.getAttribute("ldps_cropHeight")),
        minWidth: (image.getAttribute("ldps_cropWidth")),
        keyTick: 5,
        ratio: true,
        shiftKeyTick: 50,
        disableHandles: true
    });
    yuiCrop.set("LDPS_Guid", image.getAttribute("ldps_guid"), true);

    yuiCrop.on('moveEvent', function () {
        var region = yuiCrop.getCropCoords();
        registerCrop(image.getAttribute("ldps_guid"), region);
    });

    var loadingImage = document.getElementById("savingCrop_" + image.getAttribute("ldps_guid"));
    loadingImage.style.visibility = "hidden";
}

function initCroppersEndRequestHandler(sender, args) {
    window.setTimeout('initCroppers()', 500);
}


/// SECTION: Dialog Box - Clear Cart

var clearCartDialog;

YAHOO.util.Event.onDOMReady(initClearCartDialog);

function initClearCartDialog() {

    var handleCancel = function () {
        this.cancel();
        divImg.className = '';

        var divs = divImg.getElementsByTagName("div");
        for (var i = 0; i < divs.length; i++) {
            var div = divs[i];
            div.className = div.className.replace("deleteHighlight", "");
        }
    }

    var handleSubmit = function () {
        clearCartDialog.hide();
        scroll(0, 0);
        CartClearButton().click();

    }

    clearCartDialog =
	        new YAHOO.widget.SimpleDialog("clearCartDlg",
			{ width: "300px",
			    fixedcenter: "contained",
			    effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.30 },
			    visible: false,
			    draggable: true,
			    modal: true,
			    close: false,
			    text: "Are you sure you want to empty the basket?",
			    constraintoviewport: true,
			    icon: YAHOO.widget.SimpleDialog.ICON_WARN,
			    buttons: [{ text: "Yes - Empty Basket", handler: handleSubmit, isDefault: true },
						  { text: "Cancel", handler: handleCancel}]
			});

    clearCartDialog.setHeader("Confirm Delete");
    clearCartDialog.setFooter("London Drugs PhotoLab");
    clearCartDialog.render(document.body);
}

function showClearCartDialog() {

    divImg = document.getElementById('cartItems');
    divImg.className = 'deleteHighlight deleteBorder';

//    var divs = divImg.getElementsByTagName("div");

//    for (var i = 0; i < divs.length; i++) {
//        var div = divs[i];
//        div.className += ' deleteHighlight';
//    }

    clearCartDialog.show();
}


var SavingDialog;
var AdvancedOptionsDialog;

function initSavingDialog() {
    SavingDialog = new YAHOO.widget.Dialog("SavingDialog", { width: "300px", height: "200px", effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.30 }, fixedcenter: "contained", draggable: true, visible: false, constraintoviewport: true, close: false, modal: true });
    SavingDialog.render(document.body);
}

function initAdvancedOptionsDialog() {
    AdvancedOptionsDialog
        = new YAHOO.widget.Dialog("AdvancedOptionsDialog",
            { width: "500px",
                height: "500px",
                effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.30 },
                fixedcenter: "contained",
                draggable: true,
                visible: false,
                constraintoviewport: true,
                close: false,
                buttons: [{ text: "Apply", handler: applyAdvancedOptionsDialog, isDefault: true },
						  { text: "Cancel", handler: hideAdvancedOptionsDialog}],

                modal: true
            });

    AdvancedOptionsDialog.render(document.body);
}


YAHOO.util.Event.onDOMReady(initSavingDialog);
YAHOO.util.Event.onDOMReady(initAdvancedOptionsDialog);
