﻿

YAHOO.namespace("evoke");

YAHOO.evoke.share = {
    properties: {
        panelElementID: "sharePanel",
        panelElement: false
    },

    init: function(panelElementID) {
        if (panelElementID) {
            this.panelElementID = panelElementID;
        }

        var form = document.forms["shareForm"];
        form.page_key.value = PAGE_KEY;
        form.site_path.value = SITE_PATH;


        //The second argument passed to the
        //constructor is a configuration object:
        this.panelElement = new YAHOO.widget.Dialog(this.panelElementID, {
            width: "450px",
            fixedcenter: true,
            constraintoviewport: true,
            underlay: "shadow",
            close: true,
            visible: false,
            draggable: false,
            modal: true,
            hideaftersubmit: false,
            buttons: [
            //{ text:"Cancel", handler:this.handleCancel } , 
			{text: "", handler: this.handleSubmit, isDefault: true}]
        }
		);

        // arguments passed to the callback
        var callbackProps = {
            objRef: this.panelElement,
            jsObj: this
        }

        // set callback
        this.panelElement.callback =
	{
	    success: this.shareResponseSuccess,
	    failure: this.shareResponseFail,
	    argument: callbackProps
	}

        // add keylisteners ESC cancels
        var kl = new YAHOO.util.KeyListener(document, { keys: 27 },
        { fn: this.panelElement.hide,
            scope: this.panelElement,
            correctScope: true
        }, "keyup");
        // keyup is used here because Safari won't recognize the ESC
        // keydown event, which would normally be used by default

        this.panelElement.cfg.queueProperty("keylisteners", kl);



        this.panelElement.validate = function() {
            var processOk = true;
            var data = this.getData();
            var message = "";
            //alert( data.cb_copy.toString());



            if (!validate_email(data.t_email)) {
                processOk = false;
                //Dom.addClass($("lab_t_email"),"required");
                Dom.setStyle($("lab_t_email"), "color", "#d92f45")

            }
            else {
                //Dom.removeClass($("lab_t_email"),"required");
                Dom.setStyle($("lab_t_email"), "color", "#000000")
            }

            if (!validate_email(data.f_email)) {
                processOk = false;
                Dom.setStyle($("lab_f_email"), "color", "#d92f45")
            }
            else {
                Dom.setStyle($("lab_f_email"), "color", "#000000")
            }
            var error_container = document.getElementById("error_msg_share");


            return processOk;
        }
        //this.panelElement.show();
        //myDialog.callback.success = onSuccess; 
        //myDialog.callback.failure = onFailure; 




        this.panelElement.render();
        var share_button = Dom.getElementsByClassName("share_button");
        var props = {
            objRef: share_button[0],
            jsObj: this
        }
        Event.addListener(share_button[0], "click", this.sharePage, props);
        Dom.setStyle(share_button[0], "cursor", "pointer");
        Dom.setStyle(share_button[0], "position", "relative");

        var share_text = Dom.getElementsByClassName("share_text");
        var props = {
            objRef: share_text[0],
            jsObj: this
        }
        Event.addListener(share_text[0], "click", this.sharePage, props);
        Dom.setStyle(share_text[0], "cursor", "pointer");
        Dom.setStyle(share_text[0], "position", "relative");

        var close_text = Dom.getElementsByClassName("close_text");
        var props = {
            objRef: close_text[0],
            jsObj: this
        }
        Event.addListener(close_text[0], "click", this.closeShare, props);
        Dom.setStyle(close_text[0], "cursor", "pointer");

        this.panelElement.hideEvent.subscribe(function() {
            Dom.setStyle($("share_thanks_mess"), "visibility", "hidden");
            Dom.setStyle($("share_thanks_mess"), "padding", "0px");
        });
    },

    sharePage: function(e, props) {
        //        if (PAGE_GROUP == 'HCP') {
        //            trackclick('2194247', 'newsi932', 'hcpsh361');
        //        }
        //        else {
        //            trackclick('2194247', 'newsi932', 'dtcsh244');
        //        }
        //        
        props.jsObj.panelElement.show();
    },

    handleSubmit: function(e) {

        this.submit();
        //alert("submiited");
    },

    handleCancel: function(e) {
        this.hide();
    },

    validateShare: function(e) {
        var data = this.getData();
        alert(data.t_email);
    },

    shareResponseSuccess: function(o) {

        clickTracker.trackDoubleClick('2194247', 'unbra329', 'share826');
        //trackclick('2194247', 'unbra329', 'share826');

        var root = o.responseXML.documentElement;
        var sentEmails = root.getElementsByTagName('SentEmails')[0].firstChild.nodeValue;
        var sentEmailsListNode = root.getElementsByTagName('SentEmailsList')[0];
        var UnsubscribedEmails = root.getElementsByTagName('UnsubscribedEmails')[0].firstChild.nodeValue;
        var UnsubscribedEmailsNode = root.getElementsByTagName('UnsubscribedEmailsList')[0];
        var BadFormatEmails = root.getElementsByTagName('BadFormatEmails')[0].firstChild.nodeValue;
        var BadFormatEmailsListNode = root.getElementsByTagName('BadFormatEmailsList')[0];

        var errorMessage = "";

        // this logic only handles one node coming back in the list
        if (BadFormatEmails == "true") {
            errorMessage += BadFormatEmailsListNode.childNodes[1].firstChild.nodeValue + "<br/>";
        }


        if (UnsubscribedEmails == "true") {
            errorMessage += UnsubscribedEmailsNode.childNodes[1].firstChild.nodeValue + "<br/>";
        }

        if (sentEmails == "true") {

            //o.argument.jsObj.panelElement.hide();

            o.argument.jsObj.showThankYou();

        }
        else {
            //alert(errorMessage);
            // handle errors here
        }
        //alert("success");

    },

    shareResponseFail: function(o) {
        $("share_thanks_mess").innerHTML = "Unfortunately an error occurred. Please try again later.";
        $("lab_t_email").text = "";
        Dom.setStyle($("share_thanks_mess"), "display", "block");
        Dom.setStyle($("share_thanks_mess"), "color:", "#f00");
        //alert("fail");
    },

    showThankYou: function() {
        $("share_thanks_text").innerHTML = "Thank you. Your email has been sent.";
        $("t_email").value = "";
        Dom.setStyle($("share_thanks_mess"), "visibility", "visible");
        Dom.setStyle($("share_thanks_mess"), "padding", "14px");
        Dom.setStyle($("share_thanks_text"), "color", "#000");
        //Dom.setStyle($("share_thank_you"), "display", "block");
    },

    closeShare: function(e, props) {
        Dom.setStyle($("share_thanks_mess"), "visibility", "hidden");
        Dom.setStyle($("share_thanks_mess"), "padding", "0px");
        props.jsObj.panelElement.hide();
    }

}

initShare = function() {
    YAHOO.evoke.share.init("sharePanel");
}
Event.onDOMReady(initShare);



