jQuery.fn.highlight = function (str, className)
{
    var regex = new RegExp(str, "g");

    return this.each(function ()
    {
        this.innerHTML = this.innerHTML.replace(regex, "<span class=\"" + className + "\">" + str + "</span>");
    });
};
var g = {
	payPalForm: 'payPalForm',
	eventPreps: ['What:','When:','Where:','Who:','Reserve:'],
	subscr: {
		1:'MENYJWWRPGTZE',
		5:'JB5Y832ZQRNNN',
		10:'TF45E62WHWFLY',
		20:'MZU3K5APNGZHE',
		50:'GTV3FY72ZFHZ8'
		}
}
// INITIALIZATION ***********************************
jQuery(function($) {
setUpHrefs();

var bc = $('#outerWrap').css('background-color');
	var insertStr = '<div id="sameHrefPopup" style="background-color:' +
					bc + '" class="jqmWindow">'+
					'<div class="jqmContent">You are already on this page…</div></div>';
	$(insertStr).appendTo($(document.body));
	$('#sameHrefPopup').jqm({
	 trigger: '.cur', overlay: 0,
	  onShow: function(h) {
		h.w.css('opacity',1).slideDown();
		setTimeout(function() {
			h.w.slideUp("slow",function() { if(h.o) h.o.remove(); }); 
			},3000);
	   }
	})

$('noscript').remove();
if (getBodyId()==='home') {	
	var imgCount = 2;
	var ctner = $('#slideShow');
	while (imgCount < 6) {
		ctner.append('<img src="images/homeSlideShow/'+imgCount+'.jpg" alt="" width="490" height="260">');
		imgCount++;
	};
	ctner.cycle({
		speed: 2000,
		timeout: 3000,
		pause: 1
	});
}
$('.fadeInOnLoad').each( function() {
	if ($(this).is(':hidden')) {
		$('.fadeInOnLoad').fadeIn('slow', function() {
			if (document.getElementById('tnr-policy')) {
				tnrPolicyHashScrollDown();
			}
		});
	}
})

if ($('#iFrame').length>0 && $('#iFrame').html().length<50) {
	if (document.getElementById('home')) {
		var fr = '<iframe src="http://rcm.amazon.com/e/cm?t=wwapor-20&amp;o=1&amp;p=42&amp;l=ur1&amp;category=home&amp;banner=1VCFP7EH9H4CBCD6ADR2&amp;f=ifr" width="234" height="60" scrolling="no" border="0" marginwidth="0" frameborder="0"></iframe>'
	} else if (document.getElementById('support')) {
		var fr = '<iframe src="http://rcm.amazon.com/e/cm?t=wwapor-20&amp;o=1&amp;p=26&amp;l=ur1&amp;category=home&amp;banner=0CNPW84RJT727JH67TG2&amp;f=ifr" width="468" height="60" scrolling="no" border="0" marginwidth="0" frameborder="0"></iframe>'
	}
	$('#iFrame').html(fr);
}

/*add local scroll*/
$('#contentMiddle').localScroll({
	offset:-16
	});
if (document.getElementById('events')) {
	var $ps = $('.oneEvent'), $eventPreps = $(g.eventPreps);
	$ps.each(function() {
		var $this = $(this), cd = new Date(), ed = new Date(this.getAttribute('title'));
		if (cd.getMonth() > ed.getMonth() || (cd.getMonth() == ed.getMonth() && cd.getDate() > ed.getDate())) {
				$this.hide(); return;
			}
		if ($this.find('h2.onBase').length>0) { return; }
		var t = $this.find('p:contains("When:")').text();
		t = replaceInStr('When:','',t);
		$('<h2 class="onBase">'+t+'</h2>').prependTo($this);
		$eventPreps.each(function() {
			$this.highlight(this, "eventCol");
		})
	})
}
// INITIALIZE CONTACT FORM

if (document.getElementById(g.payPalForm)) {
	var contactForm = formContactBuilder( {formId : g.payPalForm, thanksId: '' } );
	contactForm.prepareForm();
};
//START IE
/*@cc_on
//START IE6
if (parseInt(jQuery.browser.version)===6) { 
	
}//end IE6
@*/
//end IE
// formatting bits
$('ul.liSpaced li:first,#contentMiddle > h2:first').css('margin-top','0');
if(!cssBorderRadiusSupported()) { $('a.am-rc22,a.am-rc24,a.am-rc40').hover(function() { 
		$(this).css('background-repeat','no-repeat'); },function() {
		$(this).css('background-repeat','no-repeat'); }
	)};

});//end init
// FUNCTIONS ***********************************

// ORGANIZE LINKS 
var setUpHrefs = function() {
	$('a[href]').each( function() { 
		var h = this.href, $t = $(this);
		if(h===location.href) {
			$t.addClass('cur');
		} else if (h.indexOf('.pdf') > -1) {
			$t.attr('target', 'pdf');
		} else if (this.hostname && this.hostname !== location.hostname && (this.hostname.indexOf('aplnj.org') == -1) && (this.hostname.indexOf('antemeridiem') == -1)) {
			$t.addClass('outsource').attr('target', 'out');
		} else if ( (h.indexOf('index') > -1) && (getBodyId()==='home')) {
			$t.addClass('cur');
		}
	});
}
var tnrPolicyHashScrollDown = function() {
	var lochash = location.hash;
	if (lochash) {
		$(lochash).addClass('requested');
		$.localScroll.hash({
			offset:-16
		});
		$('#contentRight a, #contentMiddle a').click(function() {
			$('.requested').removeClass('requested');
		});
	}
	$('#contentRight').localScroll({
			offset:-30
		});
}
var formContactBuilder = function(paramsClass) {
	var paramsInstance = { };
	var that = formConstructor(paramsClass,paramsInstance);
	return that;
}

var formConstructor = function(paramsClass,paramsInstance) {
	
	var formId = '#' + paramsClass.formId,
		thanksId = paramsClass.thanksId,
		$formJQ = $(formId);

	var prepareForm = function() {

		$formJQ.find('.validate').focus( function() { 
			
			var li = $(this).closest('li');
			
			var errSpan = $(li).find('.error:visible')[0];
			if(errSpan) {
				if($(errSpan).closest('label')[0]) {
					$(errSpan).hide();
				} else {
					$(errSpan).hide('slow');
				}
			}
		});

		if (jQuery.browser.msie) {
			if (parseInt(jQuery.browser.version) < 7) {
				$formJQ.find('#submitBtn').hover(function() { 
					$(this).toggleClass("over"); },function() {
					$(this).toggleClass("over"); 
				});
			}
			$formJQ.find('input, textarea').focus(function() { 
				$(this).addClass('ieFocus');
			});
			$formJQ.find('input, textarea').blur(function() {
				$(this).removeClass('ieFocus');
			});
		};
		
		var options;
		switch(paramsClass.formId) {
		  case g.payPalForm:
				var options = { 
					beforeSubmit: validatePayPal
				};
			break; 
		  default:
				var options = { 
					dataType: 'json',
					beforeSubmit: validate,
					success: showResponse 
				};			
			break;
		}
		$formJQ.ajaxForm(options);
	};

	var validate = function(formData, jqForm, options) { 
		var form = jqForm[0], err = 0, errThis;
		for (var i=0; i < formData.length; i++) {
			var $this = $(form [name=formData[i].name]);
			var v = formData[i].value;
			if ($this.hasClass('validate')) {
				if ($this.hasClass('notempty') || $this.hasClass('radio')) {
					errThis = valFields(v,$this,formData[i].type);
					err = err + Number(errThis);
				}
				if ($this.hasClass('email')) {
					errThis = valFields(v,$this,'email');
					err = err + Number(errThis);
				}
			}
		}
		return !err;
	};

	var valFields = function(v,$field,type) {
			var isErr, errMsg;
		
		if (type === 'email') {
			isErr = !v.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
			errMsg = '<span class="error">Please enter a valid e-mail address!</span>';
		} else if (type === 'radio') {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please select one of the choices!</span>';
		}  else {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please fill out the field above!</span>';
		}
			
		if ( isErr ) {
			if (paramsClass.formId === g.signUpForm) {
				var li = formId;
			} else {
				var li = $field.closest('li');
			}
			
			errSpan = $(li).find('.error')[0];

			if ( !errSpan ) {
				$(li).append(errMsg);
				errSpan = $(li).find('.error')[0];
			} 
			
			$(errSpan).show();
			
		}
		
		return isErr;
	};
	
	var validatePayPal = function(formData, jqForm, options) {
		var form = jqForm[0]; 
		var sel = form.subscr.value;
		if(sel==='0') {
				$('#selSubscr').prepend('<span id="noSubscr">Please choose the donation!</span>');
				
			} else {
				$.post("http://www.aplnj.org/code/forms/process_howFound.php", 
				{howFound:form.howFound.value},
				function(data) {
				  $('#res').html(data.message);
				}, "json");
				
				$('#payPalFormSend input[name="hosted_button_id"]')[0].value = g.subscr[sel];
				$('#payPalFormSend').submit();
			}
			return false;
	};
	
	var showResponse = function(data)  {	
			$formJQ.unbind('submit').find('ol *').remove();
			var cont = $formJQ.closest('div');
			cont.slideUp('slow',function() {
				cont.empty()
				.addClass('processed')
				.append('<h3 id="' + thanksId + '">' + data.message + '</h3>').slideDown('slow');
			});
	};
	
	var that = {};
	that.prepareForm = prepareForm;
	return that;
}
//END formConstructor
function getBodyId() {
		return document.body.getAttribute('id');
	};
function replaceInStr(a,b,c) {
	var re = new RegExp(a , "g");
	return c.replace(re, b);
}
function cssBorderRadiusSupported() {
  var docEl = document.documentElement, s;
  if (docEl && (s = docEl.style)) {
    return (typeof s.borderRadius == 'string'
      || typeof s.MozBorderRadius == 'string'
      || typeof s.WebkitBorderRadius == 'string'
      || typeof s.KhtmlBorderRadius == 'string');
  }
  return null;
}

