init();


/*---------------------------------*/
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=800');");
}

function special_or_recur()
{

var object = document.getElementsByName("new_donation_radio2");
//if onetime

//else if recurring
for (var i=0; i < object.length; i++)
   {
   if (object[i].checked)
      {
      var rad_val = object[i].value;
      }
   }
	if (rad_val =="onetimedonation"){special();}
	else if (rad_val =="recurringdonation"){recur();}
	else {return false;}

}
function special(){
	

document.getElementById("new_donation_radio").value = "onetimedonation";
show_els('newonetime');



}
function recur () {
	
//form_elements = document.getElementById("donation_form").getElementsByTagName("*");
document.getElementById("new_donation_radio").value = "recurringdonation";
show_els('newmonthly');
}
  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
function choose_amt(object)
{
	
	//highlight chosen box
highlight(object);
var amount  = object.id;


//show relevant info
//get class from amt, 2 ifs with 3 terms, show els of that class
var search_class;
if( (amount == "twentyfive") || (amount == "twohundrfif") || (amount == "thousand"))
{ search_class = "special";}
else if ((amount == "thirty") || (amount == "fifty") || (amount == "hundred"))
{search_class = "recurring";}

hide_all();

show_cat_els(amount);


//show els amt
show_cat_els("money".concat(search_class));


//populate amount box
}
function highlight(button)
{


//remove others
var remove = new Array();
remove = elements_by_class_cat("moneyspecial");
remove = remove.concat(elements_by_class_cat("moneyrecurring"));
for (var j = 0; j < remove.length; j++) {
        remove[j].style.border = "0px";	
    }

  
   button.style.border="1px solid #006633";

//remove highlight from others


//pop amt box

//document.getElementById("otheramount").value = button.value.replace("$", "");
//document.getElementById("amount").value = button.value.replace("$", "");

}
function remove_highlight(button)
{


//remove others
var remove = new Array();
remove = elements_by_class_cat("moneyspecial");
remove = remove.concat(elements_by_class_cat("moneyrecurring"));
for (var j = 0; j < remove.length; j++) {
        remove[j].style.border = "0px";	
 }
//if button is clicked, highlight it


}
function show_cat_els(searchclass)
{
	 var els_to_show = new Array();
	 els_to_show =  elements_by_class_cat(searchclass);
 

	//show search class els
	for (var j = 0; j < els_to_show.length; j++) {
        els_to_show[j].style.display = "";
	
		
    }
	
}

function hide_all()
{
	//block out everything else
	var els_to_hide =  all_els();
	
	 for (var j = 0; j < els_to_hide.length; j++) {
        els_to_hide[j].style.display = "none";
		
		
    }
	
}

function all_els()
{
var els = new Array();
els = elements_by_class_cat("special");


return els.concat(elements_by_class_cat("recurring"));
}

function elements_by_class_cat(search_class) {
var class_elements = new Array();
var elements = document.getElementById("catalog").getElementsByTagName("*");
 
for (var i = 0; i < elements.length; i++) {
if (elements[i].className && (elements[i].className.indexOf(search_class.toLowerCase()) > -1) && (elements[i].tagName.toLowerCase() != "td") && (elements[i].tagName.toLowerCase() != "tr") && (elements[i].tagName.toLowerCase() != "tbody"))
 
{
class_elements.push(elements[i]);
}
}
return class_elements;
}
 


function elements_by_class(search_class) {
var class_elements = new Array();
var elements = document.getElementById("donation_form").getElementsByTagName("*");
 
for (var i = 0; i < elements.length; i++) {
if (elements[i].className && (elements[i].className.indexOf(search_class.toLowerCase()) > -1) && (elements[i].tagName.toLowerCase() != "td") && (elements[i].tagName.toLowerCase() != "tr") && (elements[i].tagName.toLowerCase() != "tbody"))
 
{
class_elements.push(elements[i]);
}
}
return class_elements;
}
 
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  query = query.replace(window.location.hash,"");
  query = query.replace(/[+]/gim," ");
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return "";
} 
 
function show_els(search_class) {
	
    
document.getElementById("sftag").value = getQueryVariable("tag");
 
    window.location.hash = search_class;
    
    var all_els = new Array();
    all_els = elements_by_class("");
	
    
    for (var k = 0; k < all_els.length; k++) {
        all_els[k].style.display = "none";
    }
 
    var all_trs = new Array();
    all_trs = document.getElementById("donation_form").getElementsByTagName("tr");
	
    document.getElementById("error_flag").style.display = "none";
document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
	

    for (var h = 0; h < all_trs.length; h++) {
        all_trs[h].style.backgroundColor = "";
		
    }
 
    var els_to_show = new Array();
    els_to_show = elements_by_class(search_class);
	
	
    
    for (var j = 0; j < els_to_show.length; j++) {
        els_to_show[j].style.display = "";
		
    }
	
	
    document.getElementById("donation_form").style.display = "";
		document.getElementById("amount").style.display = "none";
	
	

	
}
function show_el(search_id)
{
	  document.getElementById(search_id).style.display = "";
}
function populate_amount(amount)
{

	if( amount.toLowerCase() == "other")
	
	{ 	
	document.getElementById('amount').style.display = "";}
	else{	
	document.getElementById('amount').value = parseInt(amount);
	document.getElementById('amount').style.display = "none";

	}

}

function show_ack(search_id)
{
	document.getElementById("ack_info").style.display = "";
   if(search_id == "ack_in_memory")
   {
	  document.getElementById("ack_in_memory").style.display = "";
	  document.getElementById("ack_in_honor").style.display = "none";
   }
   else if (search_id == "ack_in_honor")
   
   {
	   document.getElementById("ack_in_memory").style.display = "none";
	  document.getElementById("ack_in_honor").style.display = "";
   }
   else
   {
	    document.getElementById("ack_in_memory").style.display = "";
	  document.getElementById("ack_in_honor").style.display = "";
	  document.getElementById("ack_info").style.display = "none";
   }
	
}

function form_validate() {
    var form_elements = new Array();
    var failed_validation = new String;
    failed_validation = "false";
	
	
	
    form_elements = document.getElementById("donation_form").getElementsByTagName("*");
    
    for (var i = 0; i < form_elements.length; i++) {
        if (
            form_elements[i].value == ""
            /*exclude fields we're not displaying*/
            && form_elements[i].style.display.toLowerCase() != "none"
            && (form_elements[i].tagName.toLowerCase() == "input" || form_elements[i].tagName.toLowerCase() == "select")
            
            /*exclude fields we don't require*/
            && form_elements[i].getAttribute("id").toLowerCase() != "sftag"
            && form_elements[i].getAttribute("id").toLowerCase() != "country"
            && form_elements[i].getAttribute("id").toLowerCase() != "stateinput"
            && form_elements[i].getAttribute("id").toLowerCase() != "company"
            && form_elements[i].getAttribute("id").toLowerCase() != "refer"
            && form_elements[i].getAttribute("id").toLowerCase() != "ack_name"
            && form_elements[i].getAttribute("id").toLowerCase() != "ack_email"
            && form_elements[i].getAttribute("id").toLowerCase() != "ack_type"
			&& form_elements[i].getAttribute("id").toLowerCase() != "optout"
			&& form_elements[i].getAttribute("id").toLowerCase() != "fornewsletter"
			&& form_elements[i].getAttribute("id").toLowerCase() != "cardtype"
            
            /*complicated. the next 2 say that we want to throw an error if we are not starting a new donation, and if donation email or new email is not filled out*/
            && !(form_elements[i].getAttribute("id").toLowerCase() == "donationemail" && document.getElementById("cancelbutton").checked == false && document.getElementById("updatebutton").checked == false && document.getElementById("amountbutton").checked == false)
            && !(form_elements[i].getAttribute("id").toLowerCase() == "newemail" && document.getElementById("cancelbutton").checked == false && document.getElementById("updatebutton").checked == false && document.getElementById("amountbutton").checked == false)
            )
        {

        form_elements[i].parentNode.parentNode.style.backgroundColor = "#FEEFB3";
        document.getElementById("error_flag").style.display = "block";
		window.scroll(0,200);
		document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
        failed_validation = "true"; 
        }
        
        else if (form_elements[i].value == "00" && form_elements[i].style.display != "none" && form_elements[i].tagName.toLowerCase() == "select" && form_elements[i].getAttribute("id").toLowerCase() != "start_month")
        {
        form_elements[i].parentNode.parentNode.style.backgroundColor = "#FEEFB3";
        document.getElementById("error_flag").style.display = "block";
		window.scroll(0,200);
document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
        failed_validation = "true"; 
        }
              
        else
        {
        form_elements[i].style.backgroundColor = "";
        }
    }
			
    
    //
    //validations for individual boxes
    //
    
    //
    //donation email address
    //
 
    //this next test asks - is the email not a valid email address, and is it not blank, and is it not null, and is the email box being displayed? if so, throw an error
 
    document.getElementById("donationemail").value = document.getElementById("donationemail").value.replace(/[' ']/gim,'');  
    document.getElementById("donationemail").value = document.getElementById("donationemail").value.toLowerCase();
    
    var regexp_test = new RegExp("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"); 
    
    if (
        !(regexp_test.test(document.getElementById("donationemail").value))
        && document.getElementById("donationemail").value != ""
        && document.getElementById("donationemail").value != null
        && document.getElementById("donationemail").style.display.toLowerCase() != "none"
        && document.getElementById("cancelbutton").checked == false
        && document.getElementById("updatebutton").checked == false
        && document.getElementById("amountbutton").checked == false
       )     
       
       {
		   
       document.getElementById("donationemail").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
       document.getElementById("valid_email_msg").style.display = "";
       document.getElementById("error_flag").style.display = "block";
	   window.scroll(0,200);
		document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
       failed_validation = "true"; 
       }
    
    //is the email valid, or is it empty or null, and do we not require it? if so, clear any error
    //
    else if (
        (
        (regexp_test.test(document.getElementById("donationemail").value) || document.getElementById("donationemail").value == "" || document.getElementById("donationemail").value == null || document.getElementById("donationemail").style.display.toLowerCase() == "none"))
        && document.getElementById("cancelbutton").checked == false
        && document.getElementById("updatebutton").checked == false
        && document.getElementById("amountbutton").checked == false
       )     
 
       {
      document.getElementById("donationemail").parentNode.parentNode.style.backgroundColor = "";
     // document.getElementById("valid_email_msg").style.display = "none";
       }
	   
	 
    //
    //expiration date
    //
    var today_date = new Date();
    var card_date = new Date(document.getElementById("card_exp_year").value,document.getElementById("card_exp_month").value - 1,"01");
    var card_exp_failed_validation = new String();
    card_exp_failed_validation = "false";
    //
	 
    if ((Date.parse(card_date) < Date.parse(today_date)) && (document.getElementById("card_exp_year").style.display.toLowerCase() != "none") && (card_date.getMonth() != today_date.getMonth()))
    {
    document.getElementById("card_exp_month").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
    document.getElementById("error_flag").style.display = "block";
	window.scroll(0,200);
document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
    document.getElementById("valid_exp_msg").style.display = "";
    failed_validation = "true"; 
    //so we can skip next test if expiration date fails this one
    card_exp_failed_validation = "true"; 
    }
    else
    {
    document.getElementById("card_exp_month").parentNode.parentNode.style.backgroundColor = "";
    document.getElementById("valid_exp_msg").style.display = "none";
    }
	
    
    //
    //call out expiration date, if it is before subscription start
    //
 
    if (card_exp_failed_validation == "false" /* document.getElementById("start_month").value > 0*/) {
      
		var start_year = new String();
	}
	
	
    //
    //amount
    //
	
    if (document.getElementById("amount").value != parseInt(document.getElementById("amount").value) && (document.getElementById("amount").style.display.toLowerCase() != "none"))
    {
    document.getElementById("amount").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
    document.getElementById("valid_amount_msg").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
    document.getElementById("error_flag").style.display = "block";
	window.scroll(0,200);
document.getElementById("error_flag").style.backgroundColor = "#FEEFB3";
    document.getElementById("valid_amount_msg").style.display = "";
    failed_validation = "true"; 
    }
    
    else
    {
    document.getElementById("valid_amount_msg").style.display = "none";
    document.getElementById("valid_amount_msg").parentNode.parentNode.style.backgroundColor = "";
    document.getElementById("amount").parentNode.parentNode.style.backgroundColor = "";
    }
	// was here
	
 
    //
    //card number
    //
    var test_card_val = document.getElementById("card_number").value.replace(/[' '-]/gim,'');
    if ((test_card_val != parseInt(test_card_val)) && (document.getElementById("card_number").style.display.toLowerCase() != "none"))
    {
    document.getElementById("card_number").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
    document.getElementById("error_flag").style.display = "block";
    document.getElementById("valid_card_msg").style.display = "";
    document.getElementById("valid_card_msg").parentNode.parentNode.style.backgroundColor = "#FEEFB3";
    failed_validation = "true"; 
    }
    
    else
    {
    document.getElementById("valid_card_msg").style.display = "none";
    document.getElementById("card_number").parentNode.parentNode.style.backgroundColor = "";
    }
	 
	
	
if (failed_validation == "false")
        {
			
        document.getElementById("error_flag").style.display = "none";
		//document.donation_form_all.submit();
		getnewsletter();
		
		//alert("no matter what:" +  document.getElementById("amount").value);
		document.getElementById("donation_form_all").submit();
	  
        }

}

function getnewsletter()
{

//if check box ! checked
if( document.getElementById("optout").value == "unchecked"){
document.getElementById("fornewsletter").value = document.getElementById("donationemail");}


}
function disableEnterKey(e)
{
     var key;      
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox      

     return (key != 13);
}


function init() {
	

		
//default value 25
populate_amount("25");



document.getElementById("recurringdonationbutton").checked = true;

document.getElementById("refer").value = getQueryVariable("refer");

 
   if (window.location.hash.indexOf('newmonthly') > -1) {show_new_donation(); show_els('newmonthly'); document.getElementById("recurringdonationbutton").checked = true;}
   else if (window.location.hash.indexOf('newonetime') > -1) {show_new_donation(); show_els('newonetime'); document.getElementById("onetimedonationbutton").checked = true;}
   else if (window.location.hash.indexOf('updateinfo') > -1) {show_update_donation(); show_els('updateinfo'); document.getElementById("updatebutton").checked = true;}
   else if (window.location.hash.indexOf('changeamount') > -1) {show_update_donation(); show_els('changeamount'); document.getElementById("amountbutton").checked = true;}
   else if (window.location.hash.indexOf('cancel') > -1) {show_update_donation(); show_els('cancel'); document.getElementById("cancelbutton").checked = true;}
   else {
	   show_new_donation(); 
	   show_els('newmonthly'); document.getElementById("recurringdonationbutton").checked = true;
   }
     
}
 
function show_new_donation() {
document.getElementById("donation_form_all").style.display = "";
document.getElementById("new_donation_form").style.display = "";
document.getElementById("update_donation_form").style.display = "none";
document.getElementById("donation_form").style.display = "";

document.getElementById("donate_pic_button").style.display = "none";
document.getElementById("manage_pic_button").style.display = "";

show_els('newmonthly'); 

}
 
function show_update_donation() {

document.getElementById("donation_form_all").style.display = "";
document.getElementById("update_donation_form").style.display = "";
document.getElementById("new_donation_form").style.display = "none";
document.getElementById("donation_form").style.display = "none";

document.getElementById("donate_pic_button").style.display = "";
document.getElementById("manage_pic_button").style.display = "none";

show_els('updateinfo');

}

function back_to_main()
{
document.getElementById("update_donation_form").style.display = "none";
document.getElementById("new_donation_form").style.display = "none";
document.getElementById("donation_form").style.display = "none";

document.forms['donation_form_all'].reset();
window.location.hash = "start";
}
 
function statedropdown()
{
   if (document.getElementById("country").value == "United States")
      {
		  

document.getElementById("state_required").style.display = "";
      document.getElementById("statelist").style.display = "";
      document.getElementById("stateinput").style.display = "none";
      }
   else
      {

	document.getElementById("state_required").style.display = "none";
      document.getElementById("statelist").style.display = "none";
      document.getElementById("stateinput").style.display = "";
	  
      }
}





/*-------------------------------*/

