var DropDownMenu = new Class({

 initialize: function(menuElement) {

  this.menu = menuElement;
  this.id = menuElement.id;
  this.duration = 333;
  this.buttons = [];


  $A(this.menu.getElementsByTagName('li')).each(
   function(li) {
    if(li.parentNode == menuElement) { this.buttons.push($(li)); }
   }.bind(this)
  );
  this.submenus = $A(this.menu.getElementsByTagName('ul'));

  this.submenus.each(
   function(submenu) {
    submenu = $(submenu);
    submenu.setStyle('display','');
    submenu.originalHeight = submenu.offsetHeight;
    submenu.effect = new Fx.Style(submenu, 'height',{ duration: this.duration, transition:Fx.Transitions.quartOut });
    submenu.effect.set(0);
   }.bind(this)
  );

  this.buttons.each(
   function(button) {
    button.addEvent('mouseover',this.expand.bindAsEventListener(this));
    button.addEvent('mouseout', this.collapse.bindAsEventListener(this));
   }.bind(this)
  );

 },

 findButton: function(element) {
  var button = false;
  while(element.parentNode) {
   if(this.buttons.test(element)) { button = element; }
   element = element.parentNode;
  }
  return button;
 },

 findSubmenu: function(element) {
  var button = this.findButton(element);
  var submenu = button.getElementsByTagName('ul')[0];
  return submenu;
 },

 expand: function(event) {
  var submenu = this.findSubmenu(event.target || event.srcElement);
  if(submenu) {
   submenu.effect.clearTimer();
   submenu.effect.start(submenu.originalHeight);
  }
 },

 collapse: function(event) {
  var submenu = this.findSubmenu(event.target || event.srcElement);
  if(submenu) {
   submenu.effect.clearTimer();
   submenu.effect.start(0);
  }
 }

});

var recipients = new Array();
var recipientnames = new Array();

window.addEvent('domready', function(){

	var list = $$('.menuitem');
	list.each(function(element) {
 
		var fx = new Fx.Styles(element, {duration:200, wait:false});
 
		element.addEvent('mouseenter', function(){
			fx.start({
				'backgroundColor': ["#ebeff1","#c2d0d7"]
			});
		});
		element.addEvent('mouseleave', function(){
			fx.start({
				'backgroundColor':["#c2d0d7","#ebeff1"]
			});
		});
	});

	var list = $$('.submenu');
	list.each(function(element) {
 
		var fx = new Fx.Styles(element, {duration:200, wait:false});
 
		element.addEvent('mouseenter', function(){
			fx.start({
				'backgroundColor': ["#7c93a0","#53656e"]
			});
		});
		element.addEvent('mouseleave', function(){
			fx.start({
				'backgroundColor':["#53656e","#7c93a0"]
			});
		});
	});

	var list = $$('.dropdown');
	list.each(function(element) {
 
		var fx = new Fx.Styles(element, {duration:200, wait:false});
 
		element.addEvent('mouseenter', function(){
			fx.start({
				'backgroundColor': ["#7c93a0","#53656e"]
			});
		});
		element.addEvent('mouseleave', function(){
			fx.start({
				'backgroundColor':["#53656e","#7c93a0"]
			});
		});
	});


	$('referaddrecipient').addEvent('click', function() {
		addrecipients();
	});

	$('refersendemail').addEvent('blur', function() {
		senderprep();
	});

	$('refersend').addEvent('click', function() {
		if (recipients.length == 0) {
			if (addrecipients() == false) { return false; };
		}

		if (senderprep() == false) { return false; };
		
		var json = Json.toString(
			{
				recipients: recipients,
				sendername: $('refersendname').value.capitalize(),
				senderemail: $('refersendemail').value,
				message: $('refermessage').value.replace(/\n/g,"<br />")
			});
		
		new Ajax("./referresponse.php", {
			method: 'get', 
			postBody: 'event=' + json,
			onComplete: function(response, responseText) {
			}
		}).request();
		hiderefer();
	});

	$('referdisplayname').addEvent('click', function() {
		$('referdisplayname').innerHTML = "";
		$('referdisplayname').addClass('hidden');
		$('refersendname').removeClass('hidden');
	});
	$('referdisplayemail').addEvent('click', function() {
		$('referdisplayemail').innerHTML = "";
		$('referdisplayemail').addClass('hidden');
		$('refersendemail').removeClass('hidden');
	});

	$('receivesubmit').addEvent('click', function() {
		if (checkMail($('receiveemail').value)) {
			var json = Json.toString(
				{
					optout: $('optout').checked,
					receivename: $('receivename').value.capitalize(),
					receiveemail: $('receiveemail').value
				}
			);
			
			new Ajax("./receiveresponse.php", {
				method: 'get', 
				postBody: 'event=' + json,
				onComplete: function(response, responseText) {
					hidereceive();
				}
			}).request();
		} else {
			alert('Invalid Email Address');
		}
	});



});

function addrecipients() {
	if (checkMail($('referrecemail').value) == false) {
		alert('Recipient Email is invalid');
		return false;
	} else if (checkMail($('referrecemail').value) == true) {

		recipients.include([$('referrecname').value.capitalize(),$('referrecemail').value]);
		$('referrecname').value = "";
		$('referrecemail').value = "";

		updaterecipients();
		senderprep();
		return true;
	}
}

function editrec(index) {
	$('referrecname').value = recipients[index][0];
	$('referrecemail').value = recipients[index][1];
	recipients[index].remove(recipients[index][1]);
	recipients[index].remove(recipients[index][0]);
	updaterecipients();
}

function updaterecipients() {
	$('referrecipients').innerHTML = '';
	$('recname').innerHTML = "Hi "
	recipients.each(function(item, index) {
		if (item[0] == null && item[1] == null) {} else {
			$('recname').innerHTML += item[0];
			$('referrecipients').innerHTML += "<a href='#' onclick='editrec("+ index +");'>" + item[0] + ' &lt;' + item[1] + '&gt;';
			if (recipients.getLast() !== item) {
				$('recname').innerHTML += ", ";
				$('referrecipients').innerHTML += "</a>, ";
			}
		}
	});
}

function senderprep() {
	if (checkMail($('refersendemail').value) == false) {
		alert("Sender Email is Invalid");
		return false;
	} else {
		if ($('refersendname').value == "") {
			alert("Sender Name is not completed");
			return false;			
		} else {
			$$('#sender input').each(function(item, index) {
				item.addClass('hidden');
			});
			$('referdisplayname').removeClass('hidden');
			$('referdisplayemail').removeClass('hidden');
			
			$('referdisplayname').innerHTML = $('refersendname').value.capitalize();
			$('referdisplayemail').innerHTML = $('refersendemail').value;		
			$('sendername').innerHTML = $('refersendname').value.capitalize();
		}
	}
}

window.onload = function() {
		if(DropDownMenu && $('menu_top')) {
			var menu = new DropDownMenu($('menu_top'));
		}

		if(DropDownMenu && $('charity_top')) {
			var menu = new DropDownMenu($('charity_top'));
		}

		if(DropDownMenu && $('charity1')) {
			var menu = new DropDownMenu($('charity1'));
		}

		var fader = new Scroller('fader', true);
};

function shownews(article) {
	originalheight = $('newsitem').clientHeight - 18;
	if (originalheight < 487) { originalheight = 487; }
	$('loading').setStyle("opacity","0");
	$('loading').setStyle("display","block");
	showloading();

	new Ajax("./news.php?id="+article, {
		method: 'get', 
		update: $('newsitem'), 
		onComplete: function() {
			
			if (parseInt($('page').value) == '1') {
				$('bottom_box').setStyle("background","none");
			}
			
			var fx = new Fx.Styles($('newsitem'), {
				duration: 400,
				wait: false,
				transition: Fx.Transitions.Quad.easeIn,
				onComplete: function() {
					hideloading();			
				}
			});
			fx.start({
				'opacity': [0, 1]
			});
			newheight = $('newsitem').scrollHeight;
			if (newheight < 487) { newheight = 487; }
			var heightfx2 = new Fx.Styles($('newsitem'), {
				duration: 400,
				wait: false,
				transition: Fx.Transitions.Quad.easeIn
			});
			heightfx2.start({
				'height': [originalheight + "px", newheight + "px"],
				'min-height': [originalheight + "px", newheight + "px"]
			});
			var heightfx = new Fx.Styles($('content'), {
				duration: 400,
				wait: false,
				transition: Fx.Transitions.Quad.easeIn
			});
			heightfx.start({
				'height': [originalheight + "px", newheight + "px"],
				'min-height': [originalheight + "px", newheight + "px"]
			});
		}
	}).request();
}

function showrefer() {
	var fx = new Fx.Styles($('referafriend'), {
		duration: 200,
		wait: false,
		transition: Fx.Transitions.Quad.easeIn
	});
	fx.start({
			'opacity': [0, 1]
	});
}

function hiderefer() {
	var fx = new Fx.Styles($('referafriend'), {
		duration: 200,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});
	fx.start({
			'opacity': [1, 0]
	});
}

function showreceive() {
	var fx = new Fx.Styles($('receiveupdates'), {
		duration: 200,
		wait: false,
		transition: Fx.Transitions.Quad.easeIn
	});
	fx.start({
			'opacity': [0, 1]
	});
}

function hidereceive() {
	var fx = new Fx.Styles($('receiveupdates'), {
		duration: 200,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});

	fx.start({
			'opacity': [1, 0]
	});
}


function closenews() {

	if (parseInt($('page').value) == '1') {
		$('bottom_box').setStyle("backgroundImage", "url(./images/contentareabottom.gif)");
	}


	originalheight = 487;

	var fx = new Fx.Styles($('newsitem'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});
	fx.start({
			'opacity': [1, 0]
	});

	var heightfx = new Fx.Styles($('content'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeIn
	});
	heightfx.start({
			'height': [newheight + "px", originalheight + "px"],
			'min-height': [newheight + "px", originalheight + "px"]

	});

	$('newsitem').innerHTML = '&nbsp;';
}


function openpage() {
	var fx = new Fx.Styles($('pagecontent'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeIn
	});
	fx.start({
			'opacity': [0, 1]
	});
}

function closepage() {
	var fx = new Fx.Styles($('pagecontent'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});
	fx.start({
			'opacity': [1, 0]
	});
}


function showmailer() {
	var fx = new Fx.Styles($('mailer'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});
	fx.start({
			'opacity': [0, 0.9]
	});

}

function hidemailer() {
	var fx = new Fx.Styles($('mailer'), {
		duration: 400,
		wait: false,
		transition: Fx.Transitions.Quad.easeOut
	});
	fx.start({
			'opacity': [0.9, 0]
	});

}

function checkMail(email)
{
	var x = email;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else return false;
}

function TextScroll(scrollname, div_name, up_name, down_name)
{
    this.div_name = div_name;
    this.name = scrollname;
    this.scrollCursor = 0;
    this.speed = 5;
    this.timeoutID = 0;
    this.div_obj = null;
    this.up_name = up_name;
    this.dn_name = down_name;

{
        if (document.getElementById) {
            div_obj = document.getElementById(this.div_name);
            if (div_obj) {
                this.div_obj = div_obj;
                this.div_obj.style.overflow = 'hidden';
            }
            div_up_obj = document.getElementById(this.up_name);
            div_dn_obj = document.getElementById(this.dn_name);
            if (div_up_obj && div_dn_obj) {
		div_up_obj.onmouseover = function() { eval(scrollname + ".scrollUp();"); };
		div_up_obj.onmouseout = function() { eval(scrollname + ".stopScroll();") };
		div_dn_obj.onmouseover = function() { eval(scrollname + ".scrollDown();") };
		div_dn_obj.onmouseout = function() { eval(scrollname + ".stopScroll();") };
            }
        }
    }

this.stopScroll = function() {
        clearTimeout(this.timeoutID);
    }

this.scrollUp = function() {
        if (this.div_obj) {
            this.scrollCursor = (this.scrollCursor - this.speed) < 0 ? 0 : this.scrollCursor - this.speed;
            this.div_obj.scrollTop = this.scrollCursor;
            this.timeoutID = setTimeout(this.name + ".scrollUp()", 60);

        }
    }

this.scrollDown = function() {
	if (this.div_obj) {
		this.scrollCursor += this.speed;
		this.div_obj.scrollTop = this.scrollCursor;
		if (this.div_obj.scrollTop == this.scrollCursor) {
			this.timeoutID = setTimeout(this.name + ".scrollDown()", 60);
		} else {
			this.scrollCursor = this.div_obj.scrollTop;
		}
	}
}

this.resetScroll = function() {
        if (this.div_obj) {
            this.div_obj.scrollTop = 0;
            this.scrollCursor = 0;
        }
    }
}
