// JavaScript Document for http://www.amazinggracemovie.com

if (!window.console) {
	console = {
		log : function (err) {
			// do nothing
		}
	}
}

// load tell a friend as a popup
function popup_tellafriend_form(theLink)
{	
	theURL = "friend.php";
	if (theLink) {
		theURL += "?link="+theURL;
	}
	window.open(theURL, "tellafriend_window", "width=450,height=400,resizable=1,scrollbars=1");
}

// load video downloads
function popup_video_downloads()
{	
	window.open("video_downloads.php", "video_downloads", "width=720,height=500,resizable=1,scrollbars=1");
}

// load terms
function popup_terms()
{	
	window.open("terms_privacy.php", "terms_privacy", "width=550,height=500,resizable=0,scrollbars=1");
}

// load terms in community section
function popup_terms_community()
{	
	window.open("../terms_privacy.php", "terms_privacy", "width=550,height=500,resizable=0,scrollbars=1");
}


// show tell a friend submission form
function show_tellafriend_form()
{
	document.getElementById('tellafriend_bottom').style.display = "none";
	document.getElementById('tellafriend_form').style.display = "block";
	document.getElementById('tellafriend_form_done').style.display = "none";
	
	// clear fields
	document.getElementById('friend_mail').value = "";
	document.getElementById('optional_message').value = "";
}

// functions for setting errors
function set_tellafriend_errors(sender_name, sender_mail, friend_mail)
{
	if (!sender_name) {
		document.getElementById('taf_sender_name').innerHTML = "<b class='error'>Your Name:</b>";
	} else {
		document.getElementById('taf_sender_name').innerHTML = "Your Name:";
	}
	
	if (!sender_mail) {
		document.getElementById('taf_sender_mail').innerHTML = "<b class='error'>Your E-mail:</b>";
	} else {
		document.getElementById('taf_sender_mail').innerHTML = "Your E-mail:";
	}
	
	if (!friend_mail) {
		document.getElementById('taf_friend_mail').innerHTML = "<b class='error'>Recipient's E-mail:</b>";
	} else {
		document.getElementById('taf_friend_mail').innerHTML = "Recipient's E-mail:";
	}
	
	// validate form, display errors
	if (!sender_name || !sender_mail || !friend_mail) {
		document.getElementById('taf_error_msg').style.display = "block";
		return false;
	} else {
		document.getElementById('taf_error_msg').style.display = "none";
	}
	
	return true;
}
	

// submits form to the tell a friend script using AJAX
function submit_tellafriend()
{
	// create XML HTTP request object
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } 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) {
        // degrade nicely here for old browsers
        window.location = "friend.php";
        return false;
    }
	
	// get submitted vars
	var sender_name = document.getElementById('sender_name').value;
	var sender_mail = document.getElementById('sender_mail').value;
	var friend_mail = document.getElementById('friend_mail').value;
	var optional_message = document.getElementById('optional_message').value;
	var the_link = document.getElementById('link').value;
	
	// check for errors, set text to indicate if there are
	if (!set_tellafriend_errors(sender_name, sender_mail, friend_mail)) {
		// stop if we've got problems
		document.getElementById('tellafriend_loading').style.display = "none";
		return false;
	}

	// do AJAX form request
    http_request.onreadystatechange = function()
    {
        if (http_request.readyState == 1) {
            // something while it's loading
			document.getElementById('tellafriend_loading').style.display = "block";
        } else if (http_request.readyState == 4) {
			document.getElementById('tellafriend_loading').style.display = "none";
            if (http_request.status == 200) {
                // Using the XML data to this function gives us permission errors when we try to read the elements,
                // so create an XML object out of the text data sent to the function, then read the value
                try {
                    var xmldom = (new DOMParser()).parseFromString(http_request.responseText, "text/xml");
                } catch (e) {
                    var xmldom = new ActiveXObject('Microsoft.XMLDOM');
                    xmldom.loadXML(http_request.responseText);
                }

                var response = xmldom.getElementsByTagName("response")[0].firstChild.nodeValue;

				// run through the possible responses and take the appropriate action
				console.log(xmldom);
				switch (true) {
					case (response == "success"):
						// do something successful
						document.getElementById('tellafriend_form').style.display = "none";
						document.getElementById('tellafriend_form_done').style.display = "block";
						document.getElementById('tellafriend_form_done_email').innerHTML = friend_mail;
						break;
						
					case (response.indexOf("error") > -1):
						// the error string is a concatenated list of errors, like so:
						// <response>error_sender_name,error_sender_mail</response> = error with sender name and email
						err_sender_name = response.indexOf("error_sender_name") == -1;
						err_sender_mail = response.indexOf("error_sender_mail") == -1;
						err_friend_mail = response.indexOf("error_friend_mail") == -1;
						
						set_tellafriend_errors(err_sender_name, err_sender_mail, err_friend_mail);
						
						break;
						
					default:
						console.log("unknown response: %s", response);
				}

            } else if (http_request.status == 302 || http_request.status == 0) {
				// weird response, default to original location
                window.location = "friend.php";
                return false;
            } else {
               alert("We're sorry, this request cannot be completed. (status = " + http_request.status + ")\nPlease try again later.");
            }
			
        }
    }

    // sometimes, it just won't go, so use this as a failsafe
    try {
        http_request.open('GET', "friend.php?submit=1&sender_name="+sender_name+"&sender_mail="+sender_mail+"&friend_mail="+friend_mail+"&optional_message="+optional_message+"&link="+the_link, true);
        http_request.send(null);
    } catch (e) {
        window.location = "friend.php";
        return false;
    }
}