var g = {
	payPalForm: 'payPalForm',
	subscr: {
		1:'MENYJWWRPGTZE',
		5:'JB5Y832ZQRNNN',
		10:'TF45E62WHWFLY',
		20:'MZU3K5APNGZHE',
		50:'GTV3FY72ZFHZ8'
		}
}
// INITIALIZATION ***********************************
jQuery(function($) {
$(document.body).removeClass("jsOff").addClass("jsOn");

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');
	}
})
/*add local scroll*/
$('#contentMiddle').localScroll();

// 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 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 {
				$('#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;
}