window.addEvent("domready", function() {
	if($("memberLoginLink") && $("memberMenu")) {
		var memberLoginSlideFx = new Fx.Slide("memberMenu", {
			duration: 200,
			transition: Fx.Transitions.Quad.easeInOut
		});
		memberLoginSlideFx.hide();
		$("memberMenu").setStyle("display", "block");
		$("memberLoginLink").addEvent("click", function() {
			if(memberLoginSlideFx.open) {
				this.removeClass("down");
				this.addClass("up");
			} else {
				this.removeClass("up");
				this.addClass("down");
			}
			memberLoginSlideFx.toggle();
		});
	}
    if($('memberLoginTop')) {
        var memberLoginKeyEvent = function(e) {
            if(e.key=='esc' || e.key=='Escape') {
                $('overlay-background').addClass('hidden');
                $('membersLogin').addClass('hidden');
            }
        };
        $('memberLoginTop').addEvent('click', function(e) {
            e.preventDefault();
            $('membersLogin').removeClass('hidden');
            if(!$('overlay-background')) {
                $$('body')[0].adopt(new Element('div', {
                    'id': 'overlay-background',
                    'class': 'hidden'
                }));
                var bgTimeout = setTimeout(function() {
                    if($('overlay-background')) {
                        $('overlay-background').removeClass('hidden');
                        clearTimeout(bgTimeout);
                    }
                }, 100);
            } else 
                $('overlay-background').removeClass('hidden');

            $$('body')[0].addEvent('keyup', memberLoginKeyEvent);
        });
        $('membersLogin-close').addEvent('click', function(e) {
            e.preventDefault();
            $('membersLogin').addClass('hidden');
            $('overlay-background').addClass('hidden');
            $$('body')[0].removeEvent('keyup', memberLoginKeyEvent);
        });
    }
    if($('mailingListTop')) {
        var mailingListKeyEvent = function(e) {
            if(e.key=='esc' || e.key=='Escape') {
                $('overlay-background').addClass('hidden');
                $('mailingListForm').addClass('hidden');
            }
        };
        $('mailingListTop').addEvent('click', function(e) {
            e.preventDefault();
            $('mailingListForm').removeClass('hidden');
            if(!$('overlay-background')) {
                $$('body')[0].adopt(new Element('div', {
                    'id': 'overlay-background',
                    'class': 'hidden'
                }));
                var bgTimeout = setTimeout(function() {
                    if($('overlay-background')) {
                        $('overlay-background').removeClass('hidden');
                        clearTimeout(bgTimeout);
                    }
                }, 100);
            } else 
                $('overlay-background').removeClass('hidden');

            $$('body')[0].addEvent('keyup', mailingListKeyEvent);
        });
        $('mailingList-close').addEvent('click', function(e) {
            e.preventDefault();
            $('mailingListForm').addClass('hidden');
            $('overlay-background').addClass('hidden');
            $$('body')[0].removeEvent('keyup', mailingListKeyEvent);
        });
    }
    var target = $($('menu-toggle').get('data-target'));
    var size = target.getSize();
    if(!target.retrieve('height') && size.y===0) {
        var transition = target.getStyle('transition-duration');
        target.setStyle('transition-duration','0');
        target.setStyle('position','absolute');
        target.setStyle('left', -10000);
        target.setStyle('height', 'auto');

        var size = target.getSize();
        target.store('height', size.y + 'px');
        target.setStyle('position', 'static');
        target.setStyle('transition-duration',transition);
        target.setStyle('left', '');
        target.setStyle('height', '0');

        target.getElements('li.has-children').each(function(ele) {
		    var childTarget = ele.getElement('.submenu-container');
		    var size = childTarget.getSize();
		    if(!childTarget.retrieve('height') && size.y===0) {
		        var transition = childTarget.getStyle('transition-duration');
		        childTarget.setStyle('transition-duration','0');
		        childTarget.setStyle('position','absolute');
		        childTarget.setStyle('left', -10000);
		        childTarget.setStyle('height', 'auto');

		        var size = childTarget.getSize();
		        childTarget.store('height', size.y + 'px');
		        childTarget.setStyle('position', 'static');
		        childTarget.setStyle('transition-duration',transition);
		        childTarget.setStyle('left', '');
		        childTarget.setStyle('height', '0');

		    }

        });
    }

    $('menu-toggle').addEvent('click', function(ele) {
        var target = $($('menu-toggle').get('data-target'));
        target.toggleClass('collapsed');

        if(target.hasClass('collapsed')) {
            target.setStyle('height', 0);
            $$('.has-children .submenu-container').addClass('collapsed');
            $$('.has-children .submenu-container').setStyle('height', 0);
        } else
            target.setStyle('height', target.retrieve('height'));
    });

    if(is_mobile() || is_tablet() || is_phablet()) {
        $$('.has-children > a, .has-children > span').addEvent('click', function(e) {
            var childTarget = this.getSiblings('.submenu-container')[0];
        	if(childTarget.hasClass('collapsed')) {
    	    	e.preventDefault();
    	        childTarget.removeClass('collapsed');

    	        var target = $($('menu-toggle').get('data-target'));
    	        childTarget.setStyle('height', childTarget.retrieve('height'));
    	        target.setStyle('height', parseInt(target.retrieve('height')) + parseInt(childTarget.retrieve('height')));
    	    }
        });
    }
    $$('.has-children-close button').addEvent('click', function(e) {
        var parentTarget = this.getParent('.submenu-container');
        var target = $($('menu-toggle').get('data-target'));

        parentTarget.addClass('collapsed');
        parentTarget.setStyle('height', 0);
        target.setStyle('height', target.retrieve('height'));
    });

    if($('mlUnsubscribe')) {
        $('mlUnsubscribe').addEvent('click', function(e) {
            e.preventDefault();
            $('mailingListForm').set('action', $('mailingListForm').get('action') + "?action=unsubscribe");
            $('mailingListForm').submit();
        });
    }
	$$("input.overText").each(function(ele) {
        if(!ele.get('placeholder')) {
    		if(ele.name.toLowerCase().indexOf("password")==-1) {
    			if(ele.value=="" || ele.value==ele.get("title")) {
    				ele.value = ele.get("title");
    				ele.addClass("overText");
    				ele.addEvent("focus", function() {
    					this.removeClass("overText");
    					if(this.value == this.get("title"))
    						this.value = "";
    				});
    			}
    			ele.addEvent("blur", function() {
    				if(this.value == "") {
    					this.addClass("overText");
    					this.value = this.get("title");
    				}
    			});
    		} else {
    			if(ele.value=="") {
    				// If loginMenuPassword has no value, we clone it and create a text field with "Password:" inside it. We then replace
    				// the password field with this new one.
    				// When it gains focus, we switch out the text field to a password field.
    				eleID = ele.get("id");
    				if(ele.get("maxlength") < 0)
    					ele.set("maxlength",100);
    				var newInput = new Element("input", {"type":ele.get("type"),"value":ele.get("title"),"class":ele.get("class"),"name":ele.get("name"),"maxlength":ele.get("maxlength"),"title":ele.get("title")});
    				newInput.addEvent("focus", function() {
    					eleID = this.get("id");
    					var newInput2 = new Element("input", {"type":"password","class":this.get("class"),"name":this.get("name"),"maxlength":this.get("maxlength"),"title":this.get("title")});
    					newInput2.addEvent("focus", function() {
    						this.removeClass("overText");
    					});
    					this.blur();
    					this.parentNode.replaceChild(newInput2,this);
    					newInput2.set("id",eleID);
    					setTimeout('$(\'' + eleID + '\').focus()',100);	// If I don't set a timeout, than it won't have anything to focus on.
    				});
    				ele.parentNode.replaceChild(newInput,ele);
    				newInput.set("id",eleID);
    			}
    		}
        }
	});
	$$('a.mediaPlayer').addEvent('click',function(e) {
        e.preventDefault();
		var width = 500;
		var height = 200;
		
		var regExp = /([a-z]+)\[(\d+),(\d+)\]/i;
		var varArr = regExp.exec(this.get('rel'));
		if(varArr) {
			if(varArr[1]=="video") {
				if(varArr[2]!=0)
					width = parseInt(varArr[2]);
				if(varArr[3]!=0)
					height = parseInt(varArr[3]);
			}
			width+=37;
			height+=95;
			newWin = window.open(this.get('href'),"newWin","width=" + width + ",height=" + height);
			newWin.focus();
		}
	});
});

function getNodeText(node) {
	if(!node.text) 
		return node.textContent;
	else 
		return node.text;
	
}

function is_tablet() {
    if(window.matchMedia) {
        var mq = window.matchMedia( "screen and (max-width: 800px)" ).matches;
        return mq;
    } else
        return false;
}