﻿// JScript File

function validateForm(){
	// reset form to original action
	document.forms[0].action = "index.php";
	document.forms[0].target = "_self";
		
	// validate status flag
	var success = true;
	
	// check for card selected
	var isselected = false;
	var ecards_div = document.getElementById("ecards");
	var ecards = ecards_div.getElementsByTagName("input");
	for (var i=0; i<ecards.length; i++){
	    if (ecards[i].checked){
	        isselected = true;
	        break;
	    }
	}
	// alert the user if no cards are selected
	if (!isselected){
	    alert("You must select a card type!");
	    success = false;
	}
	
	// check for empty message
	var msg = document.getElementById('message');
	var msglbl = document.getElementById('message_label');
	if (msg.value == ""){
	    success = false;	   
	    msglbl.style.color = 'Red';
	} else {
	    msglbl.style.color = '#003300';
	}
	
	// check for empty sender name
	var sndname = document.getElementById('sendername');
	var sndnamelbl = document.getElementById('sendername_label');
	if (sndname.value == ""){
	    success = false;	   
	    sndnamelbl.style.color = 'Red';
	} else {
	    sndnamelbl.style.color = '#003300';
	}
	
	// check for empty sender email
	var sndemail = document.getElementById('senderemail');
	var sndemaillbl = document.getElementById('senderemail_label');
	if (sndemail.value == ""){
	    success = false;	   
	    sndemaillbl.style.color = 'Red';
	} else {
	    sndemaillbl.style.color = '#003300';
	}
	
	// check for empty recipients
	var numRecipients = getNumRecipients();
	// get the labels at the top of the recipient list
	var namelbl = document.getElementById('name_label');
	var emaillbl = document.getElementById('email_label');
	// status flag for recipients
	var namesuccess = true;
	var emailsuccess = true;
	// iterate through recipients
    for (var i=1; i<=numRecipients; i++){
        var name = document.getElementById('recname' + i.toString());
        var email = document.getElementById('recemail' + i.toString());
        // if empty, set flags accordingly
        if (name.value == ""){
            namesuccess = false;
            success = false;
        } 
        if (email.value == ""){
            emailsuccess = false;
            success = false;
        }
    }
    // adjust label colors accordingly
    if (namesuccess){
        namelbl.style.color = "#003300";
    } else {
        namelbl.style.color = "Red";
    }  
    if (emailsuccess){
        emaillbl.style.color = "#003300";
    } else {
        emaillbl.style.color = "Red";
    }
    
    // return results
	return success;
}

function addAnotherRecipient(){
	// get current number of recipients in list
	var numRecipients = getNumRecipients();
	// recipients outermost container
	var rec_div = document.getElementById("recipients");
	var old_div = document.getElementById("recdiv" + numRecipients.toString());
	var add_div = document.getElementById("addLink");
	// new recipients container
	var new_div = document.createElement("div");
	new_div.id = "recdiv" + (numRecipients+1).toString();
	// new recipients name text input box
	var newRecipientName = document.createElement("input");
	newRecipientName.name = "recname"+(numRecipients+1).toString();
	newRecipientName.id = "recname"+(numRecipients+1).toString();
	newRecipientName.type = "text";
	// new recipients email text input box
	var newRecipientEmail = document.createElement("input");
	newRecipientEmail.name = "recemail"+(numRecipients+1).toString();
	newRecipientEmail.id = "recemail"+(numRecipients+1).toString();
	newRecipientEmail.type = "text";
	// add the text and input boxes to their new container	
	new_div.appendChild(newRecipientName);
	new_div.appendChild(newRecipientEmail);
	// if there is already a remove link, find it and move it
	if (numRecipients > 1){
		// current remove link
		var removeLink = document.getElementById("removelink");
		old_div.removeChild(removeLink);
		new_div.appendChild(removeLink);
	// else create a brand new one
	} else {
		// create a new remove link since there isn't one on the page
		var newRemoveLink = document.createElement("a");
		newRemoveLink.id = "removelink";
		newRemoveLink.href = "javascript: deleteRecipient();";
		newRemoveLink.innerHTML = "Remove";
		new_div.appendChild(newRemoveLink);
	}
	rec_div.insertBefore(new_div, add_div);
}

function deleteRecipient(){
	// get last recipient
	var numRecipient = getNumRecipients();
	// get outermost container
	var rec_div = document.getElementById("recipients");
	// get last recipient container
	var old_div = document.getElementById("recdiv"+numRecipient.toString());
	// get the remove link
	var removeLink = document.getElementById("removelink");
	// check to see if we need to keep the remove link
	if (numRecipient > 2){
		// get the next to last recipient container
		var new_div = document.getElementById("recdiv"+(numRecipient-1).toString());
		old_div.removeChild(removeLink);
		new_div.appendChild(removeLink);		
	}
	rec_div.removeChild(old_div);
}

function getNumRecipients(){
	var rec_div = document.getElementById("recipients");
	var recipients = rec_div.getElementsByTagName("input");
	return recipients.length /2;
}

function previewCard(){
	if (validateForm()){
		document.forms[0].action = "preview.php"
		document.forms[0].target = "_blank";
		document.forms[0].submit();
	}
}

function checkList(list, type){
	var customBox = document.getElementById(type.toString() + '_custom');
	if (list != null){
	    if (list.value == 'custom'){
		    customBox.style.display = '';
	    } else {
		    customBox.style.display = 'none';
	    }
	}
}

function initList(){
	checkList(document.getElementById('salutation'), 'salutation');
	checkList(document.getElementById('closing'), 'closing');
}

function resetForm(){
	if (confirm("Are you sure you want to reset the form?")){
		document.forms[0].reset();
		initList();
	}
	return false;
}