﻿var emailPageDiv = 'tools-email-open';
var emailPageOpen = false;
var emailOffsetTop = -285;
var emailOffsetLeft = 0;
var validatePageDiv = 'tools-email-validation';
var emailValidateOffsetTop = 63;
var emailPageTop = 0;
var emailPageLeft = 0;
var etimer = null;
var emailIsValid = true;
var clientid = '';

function resetEmailPage(pinned, ypos)
{
    emailPageOpen = false;
    
    pinned = (pinned && typeof pinned === "object") ? $(pinned) : $('nav-tellfriend');
    ypos = (ypos && ypos === "bottom") ? "bottom" : "top";
    

    var emailPageLeft, emailPageTop,
	    loc = Element.cumulativeOffset(pinned),
	    yoffset = (ypos === "bottom") ? pinned.getHeight() : 0;
  
    
    emailPageLeft = loc[0];
    emailPageTop = loc[1];

	var move = {
	    mode: 'absolute',
	    duration: 0.0
	};

	move.x = emailPageLeft + emailOffsetLeft;
	move.y = (ypos === "bottom") ? emailPageTop + yoffset : emailPageTop + emailOffsetTop;
	
    new Effect.Move($(emailPageDiv), move);
}

function emailPage(pinned, ypos)
{
    try {
        hideOpenBoxes("sendFriend");
    } catch (e) { }

	if (!emailPageOpen) {
		var url = location.href;
		var title = document.title;
		if (title.indexOf(' | ') != -1)
		    $('pageTitle').innerHTML = '"' + title.split(' | ')[0] + '" ';
        else    
		    $('pageTitle').innerHTML = '"' + title + '" ';

		// Title manipulation for physician profile
		if (location.href.indexOf('physician-profile') != -1) {
		    var name = document.getElementById(clientid + 'pl_profile_name').innerHTML;
		    var city = document.getElementById(clientid + 'pl_profile_city').innerHTML;
		    var state = document.getElementById(clientid + 'pl_profile_state').innerHTML;
		    //$('pageTitle').innerHTML = '"Sculptra Aesthetic Physician ' + rsArray[0].getName() + ' in ' + rsArray[0].getCity() + ', ' + rsArray[0].getState() + '" ';
		    $('pageTitle').innerHTML = '"Sculptra Aesthetic Physician ' + name + ' in ' + city + ', ' + state + '" ';
        }

		resetEmailPage(pinned, ypos);
		Effect.Appear(emailPageDiv, { duration: 0.5 });
		if (!emailIsValid) 
	        Effect.Appear(validatePageDiv, { duration: 0.5 })
	   
	    //this sets a timeout to close the send to friend page
	    //etimer = setTimeout('closeEmailPage()', 15000);
	    s.linkTrackVars = 'events'; s.linkTrackEvents = 'event21'; s.events = 'event21'; (s.tl(this, 'o', 'tell a friend initiation'));
	    spotlight('scu162');
	}
	else
		closeEmailPage();
}

function resetEmailValidation() 
{
    var inputs = $("tools-email-open-body").select('input');
    inputs.each(function(input, index) {
        input.removeClassName("invalid");
    });
}

function updateEmailPageStatus()
{
	clearTimeout(etimer);
	etimer = setTimeout('closeEmailPage()', 15000);
}

function closeEmailPage() {    
    clearTimeout(etimer); 
    Effect.Fade(validatePageDiv, { duration: 0.5 });
    Effect.Fade(emailPageDiv, { duration: 0.5 });
	emailPageOpen = false;
    Effect.Fade('tools-email-open-confirm', { duration: 0.0, queue: 'end' });
    Effect.Appear('tools-email-open-body', { duration: 0.0, queue: 'end' });
}

function showEmailPageProgress()
{
	document.getElementById('tools-email-open-body').style.display = 'none';
	document.getElementById('tools-email-open-confirm').style.display = 'none';
	document.getElementById('tools-email-open-progress').style.display = 'block';
}

function showEmailPageConfirm()
{
    Effect.Fade('tools-email-open-body', { duration: 0.5, queue: 'end' });
    Effect.Appear('tools-email-open-confirm', { duration: 0.5, queue: 'end' });
    setTimeout('closeEmailPage()', 3000);
}

function runSendToAFriend(o) {
    clearTimeout(etimer);    
    
    var inputs = $("tools-email-open-body").select('input');           
    var valid = true;

    var offset = {};
    offset.top = parseInt($("tools-email-open").getStyle("top")) - emailValidateOffsetTop;
    offset.left = parseInt($("tools-email-open").getStyle("left"));

    inputs.each(function(input, index) {
        var itemValid = true;    	
        var v = input.value, e, d;

        if (v == "" || v.length == 0) {
            itemValid = false;
        };

        if (input.hasClassName("email-field")) {
            if (!/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)) itemValid = false;
        }
        if (input.hasClassName("num-field")) {
            if (!(!isNaN(v) && !/^\s+$/.test(v))) itemValid = false;
        }

        if (!itemValid) valid = false;

        input[(itemValid) ? "removeClassName" : "addClassName"]("invalid");        

    });

    if (!valid) {
        emailIsValid = false;        
        $(validatePageDiv).setStyle({
            top: offset.top + "px",
            left: offset.left + "px"
        });
        $(validatePageDiv).show();        
    }

    if (valid) {
        emailIsValid = false;
        $(validatePageDiv).hide();
        var title = (document.title.indexOf(' | ') != -1 ? escape(document.title.split(' | ')[0]) : escape(document.title));
                
        var data = '';
        data += 'pageTitle=' + title;  
        data += '&pageLink=' + escape(window.location.href);
        data += '&fromName=' + escape(o.stafFromName.value);
        data += '&fromAddress=' + escape(o.stafFromAddress.value);
        data += '&toAddress=' + escape(o.stafToAddress.value);

        var urlForEmail = document.getElementById("SendToFriend");
        if (urlForEmail == '')
            var urlForEmail = '/util/send-to-friend.aspx';

        new Ajax.Request(urlForEmail, { method: 'post', parameters: data, onSuccess: function(transport) { showEmailPageConfirm() } });
        
        dcsMultiTrack('DCS.dcsuri', 'util/send-to-friend.aspx', 'WT.ti', 'Tell a Friend Success');
        s.linkTrackVars = 'events'; s.linkTrackEvents = 'event22'; s.events = 'event22'; (s.tl(this, 'o', 'tell a friend completion'));
        spotlight('scu163');
        //makeRequest('/util/send-to-friend.aspx', data, o);
        //showEmailPageConfirm();
    }

	return false;
}
/*
function makeRequest(url, data, o) {
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
            // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange = function() { alertContents(http_request, o); };
    http_request.open('POST', url, true);
    http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    http_request.send(data);
}

function alertContents(http_request, o)
{
	if (http_request.readyState == 4)
	{
		if (http_request.status == 200)
		{
			showEmailPageConfirm();
			o.stafFromName.value = '';
			o.stafFromAddress.value = '';
			o.stafToAddress.value = '';
			etimer = setTimeout('closeEmailPage()', 5000);
		}
		else
		{
			alert('There was a problem with the request.');
		}
	}
}
*/

