
/* CLICK HANDLERS FOR THE VARIOUS SHARE ICONS */

function email_click() {
        subject = document.title;
        u = location.href;
		body = "I wanted to share this Kripalu page with you: " + u + "\n\n" + subject + "\n";
        document.location = "mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body);
        return false;
}
function fbs_click() {
        u = location.href;
        t = document.title;
        window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),' sharer', 'toolbar=0, status=0, width=626, height=436');
        return false;
}
function twit_click() {
        status = document.title + ": " + location.href;
        window.open('http://twitter.com/home?status='+encodeURIComponent(status)+'&source=Kripalu',' sharer', 'toolbar=0, status=0, width=800, height=436');
        return false;
}
function stumble_click() {
        url = location.href;
        title = document.title;
        window.open('http://www.stumbleupon.com/submit?url=' + encodeURIComponent(url) + '&title=' + encodeURIComponent(title), ' sharer', 'toolbar=0, status=0, width=800, height=550');
        return false;
}


/* SHARE FORM HANDLERS (based on original Send to Friend code)*/

var shareToggle = true;
var shareSent = false;  //has the request been sent?
var share_request = false;

function ShowShareForm(forceCopy) {
	var formObj = document.share;
	var cookieEmail;
	
	if (shareToggle && !forceCopy) {
 
		//set default form values
		//check cookie for last 'from' email address
		cookieEmail = ReadCookie('email_address');
		if (cookieEmail !== null)  {
			formObj.senderEmail.value = cookieEmail;
		} else {
			formObj.senderEmail.value = senderEmailText;
		}
		formObj.recipientEmail.value = recipientEmailText;
		formObj.subject.value = subjectText;
		formObj.comments.value = commentsText;

		
		// fade out icons
		toggleShareIcons('fadeout');
		
		// hide message
		document.getElementById('share-copy-copy').hide();

		// show submit
		$('share-submit').setStyle({visibility: 'visible'});

		//display form
		new Effect.SlideDown('share-form-container');
 
		shareToggle = !shareToggle;
	} else {				// was else if (forceCopy)

		//hide form if it's visible
		if (!shareToggle) {
			new Effect.SlideUp('share-form-container');
			// fade in icons
			toggleShareIcons('fadein');
			shareToggle = !shareToggle;
		}
		
	}
 
	return false;
}


function toggleShareIcons(action) {
			
	// fade icons in/out (except for #email-icon)
    var items = $$('#share-list li');
    for (var i = 0; i < items.length; i++) {
		var id = items[i].getAttribute("id");
		if (id != "email-icon")
			if (action == "fadeout")
				new Effect.Opacity(id, {from: 1.0, to: 0.1, duration: 1.0});
			else
				new Effect.Opacity(id, {from: 0.1, to: 1.0, duration: 1.0});
	}
	
}

function ValidateShareForm(formObj) {
	//validate the share form
	var pulsateMinOpacity = 0.1;
	
	//required fields
	if (StripWhitespace(formObj.senderEmail.value) == "" || formObj.senderEmail.value == senderEmailText) {
		formObj.senderEmail.value = senderEmailText;
		new Effect.Pulsate('share-sender-email', {from: pulsateMinOpacity,  pulses: 3});
		return false;
	} else if (!isValidEmail(formObj.senderEmail.value)) {
		//if email address is invalid, revert to default copy
		formObj.senderEmail.value = senderEmailText;
		new Effect.Pulsate('share-sender-email', {from: pulsateMinOpacity,  pulses: 3});
		return false;
	}
	
	if (StripWhitespace(formObj.recipientEmail.value) == "" || formObj.recipientEmail.value == recipientEmailText) {
		formObj.recipientEmail.value = recipientEmailText;
		new Effect.Pulsate('share-recipient-email', {from: pulsateMinOpacity,  pulses: 3});
		return false;
	} else if (!isValidEmail(formObj.recipientEmail.value)) {
		//if email address is invalid, revert to default copy
		formObj.recipientEmail.value = recipientEmailText;
		new Effect.Pulsate('share-recipient-email', {from: pulsateMinOpacity,  pulses: 3});
		return false;
	}
	
	if (StripWhitespace(formObj.subject.value) == "" || formObj.subject.value == subjectText) {
		formObj.subject.value = subjectText;
		new Effect.Pulsate('share-subject', {from: pulsateMinOpacity,  pulses: 3});
		return false;
	}
	
	//if we got here, form data is valid
	
	//clear comments of default text
	if (formObj.comments.value == commentsText) {
		formObj.comments.value = "";
	}
	
	//submit form
	formObj.submit();
	return true;
}

function ShareShowMessage(msg) {
	document.getElementById('share-copy-copy').innerHTML = msg;
	document.getElementById('share-copy-copy').show();
}


function SubmitShare(formObj) {
	//submit the share form
 
	//disallow double-submit
	if (!shareSent) {
		$('share-submit').setStyle({visibility: 'hidden'});
		
		//save sender's email address in cookie
		CreateCookie('email_address', formObj.senderEmail.value);
	
		//AJAX form submit
		var poststr = 'senderEmail=' + encodeURIComponent(formObj.senderEmail.value) + '&recipientEmail=' + encodeURIComponent(formObj.recipientEmail.value) + '&pageURL=' + encodeURIComponent(formObj.currentPageURL.value) + '&pageTitle=' + encodeURIComponent(formObj.currentPageTitle.value) + '&subject=' + encodeURIComponent(formObj.subject.value) + '&comments=' + encodeURIComponent(formObj.comments.value);
	
		shareSent = true;
 
		SharePostRequest('/actions/send-to-friend.php', poststr);
	}
}


function SharePostRequest(url, parameters) {
	//AJAX form post
	share_request = false;
	if (window.XMLHttpRequest) { //Mozilla, Safari,...
		share_request = new XMLHttpRequest();
		if (share_request.overrideMimeType) {
			//set type accordingly to anticipated content type
			share_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			share_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				share_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!share_request) {
		ShareShowMessage("This functionality is not supported by your browser&nbsp;&#8212; your recommendation could not be sent.");
		ShowShareForm(true);
		return false;
	}
 
	share_request.onreadystatechange = ShareRequestResult;
	share_request.open('POST', url, true);
	share_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	share_request.setRequestHeader("Content-length", parameters.length);
	share_request.setRequestHeader("Connection", "close");
	share_request.send(parameters);
}

function ShareRequestResult() {
	//AJAX form post results
	if (share_request.readyState == 4) {
		if (share_request.status == 200 && share_request.responseText == "success") {
			//success
			ShareShowMessage("Message sent.");
		} else {
			//problem with the request
			ShareShowMessage("Your message could not be sent.  Please try again later.");
		}
		//hide form and display copy
		ShowShareForm(true);
	}
	
	//allow user to submit again
	requestSent = false;
}
