// default

var currentLevel 	= 0;
var genNumber 		= 0;
var bCount			= 0;
var bValid 			= true;

// triangle

$(function(){

	$('.tierButton>a,#tierContent>a').click(function(){
		return false;					   
	});
	
	$('#genItem.template').hide();
	$('.hide').hide();
	
	function updateTips(t) {
		bCount++;
		if(bCount < 2){
			$('#signupMsg').text(t).show();
		} else {
			$('#signupMsg').text('You currently have ' + bCount + ' errors that need to be fixed before the form will be submitted.').show();
		}
	}

	function checkLength(o,n,min,max) {

		if ( o.val().length > max || o.val().length < min ) {
			o.addClass('error');
			updateTips("Length of " + n + " must be between "+min+" and "+max+".");
			bValid = bValid && false;
		} else {
			bValid = bValid && true;
		}

	}

	function checkSelection(o,n){
		if( o.val().length < 1 ){
			o.addClass('error');
			updateTips("Select a choice from " + n + ".");
			bValid = bValid && false;
		} else {
			bValid = bValid && true;
		}
	}

	function checkRegexp(o,regexp,n) {

		if ( !( regexp.test( o.val() ) ) ) {
			o.addClass('error');
			updateTips(n);
			bValid = bValid && false;
		} else {
			bValid = bValid && true;
		}

	}
	
	//
	function checkRegexpSimple(obj,regexp) {
		if (!(regexp.test(obj.val()))){
			return false;
		} else {
			return true;
		}
	}
	
	function checkEmail(obj){
		return checkRegexpSimple(obj, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
	}

	
	$('#signup').ajaxForm({ 
        dataType:  		'json',
		url: 			'/ajax.php?action=post&ajax=y',
		beforeSubmit: 	function(data, jqform, options){
			$('#signupMsg,#addAttendee,#removeAttendee,#submit').hide();
			bCount = 0;
			bValid = true;
			
			$('input, select,#accept-box').removeClass('error');
			
			for (var i=0; i < data.length; i++) { 
				
				if($('input[name=' + data[i].name + ']').val() == data[i].value){
					
					tempName = data[i].name;
					
					if((tempName == 'email' || tempName.indexOf('addEmail') >= 0) && data[i].value){
						checkRegexp($('input[name=' + data[i].name + ']'),/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"Invalid email address eg. jdoe@nysrti.org");
					} else if(tempName.indexOf('addEmail') < 0){
						checkLength($('input[name=' + data[i].name + ']'), data[i].name ,1,128);
					}
					
				} else if($('select[name=' + data[i].name + ']').val() == data[i].value){
					checkSelection($('select[name=' + data[i].name + ']'),data[i].name);
				}
				
			}
			
			if(!$('input[name=accept]').is(':checked')){
				$('#accept-box').addClass('error');
				updateTips('You must accept the terms and conditions');
				bValid = bValid && false;	
			}
			
			if(bValid != true){
				$('#addAttendee,#removeAttendee,#submit').show();
			}
			
			return bValid;
		},
        success:   		function(data){
			if(data.success == true){
				$('#signupMsg').text('The registration form was submitted successfully. Please print this page for your records.').show();
			} else {
				$('#signupMsg').text('There was a server error submitting the form.If this error persists, please contact a site administrator.').show();
				$('#addAttendee,#removeAttendee,#submit').show();
			}
		}
    });
	
	$('#contact').ajaxForm({ 
        dataType:  		'json',
		url: 			'/ajax.php?action=post&ajax=y',
		beforeSubmit: 	function(data, jqform, options){
			$('#signupMsg,#submit').hide();
			bCount = 0;
			bValid = true;
			
			$('input, select, textarea').removeClass('error');
			
			for (var i=0; i < data.length; i++) { 
				
				if($('input[name=' + data[i].name + ']').val() == data[i].value){
					
					tempName = data[i].name;
					
					if((tempName == 'email') && data[i].value){
						checkRegexp($('input[name=' + data[i].name + ']'),/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"Invalid email address eg. jdoe@nysrti.org");
					} else {
						checkLength($('input[name=' + data[i].name + ']'), data[i].name ,1,128);
					}
				} else if($('textarea[name=' + data[i].name + ']').val() == data[i].value){
					checkLength($('textarea[name=' + data[i].name + ']'),data[i].name, 1, 2000);
				} else if($('select[name=' + data[i].name + ']').val() == data[i].value){
					checkSelection($('select[name=' + data[i].name + ']'),data[i].name);
				}
			}
			
			if(bValid != true){
				$('#submit').show();
			}
			
			return bValid;
		},
        success:   		function(data){
			if(data.success == true){
				$('#signupMsg').text('The contact form was submitted successfully.').show();
			} else {
				$('#signupMsg').text('There was a server error submitting the form.If this error persists, please contact a site administrator.').show();
				$('#submit').show();
			}
		}
    });
	
	// email list form
	$('#newsletter').ajaxForm({
		dataType		:	'json',
		url				: 	'/ajax.php?action=post&ajax=y',
		beforeSubmit	:	function(){
								$('#n_email').removeClass('error');
								if(checkEmail($('#n_email'))){
									return true;
								} else {
									$('#n_email').addClass('error');
									return false;
								}
							},  
        success			:	function(data){
								if(data.success == true){
									$('#newsletter').fadeOut();
								} else {
									$('#n_email').addClass('error');
								}
							}
	});
	
	// email list input 
	$('#newsletter input').focus(function(){														 
		if($(this).val() == $(this).attr('title')){
			$(this).val('');
		}
	}).blur(function(){
		if($(this).val() == ''){
			$(this).val($(this).attr('title'));
		}
	});
	
});

function tierOpen(level, obj){
	var offset 		= obj.parent('div').offset();
	
	if(level != currentLevel){
		
		if(currentLevel == 0){
			
			$('#tierText').html($('#hidden'+level).html());
			
			$('#opacity').animate({'opacity': 0.15},500, function(){
				$('#tierContent').addClass('tier'+level+'content').removeClass('tier'+currentLevel+'content').css({'top': offset.top - 25}).animate({'width': 390}, 500);
				currentLevel = level;
			});
		}else{
			$('#tierContent').animate({'width': 0}, 500, function(){
																  
				$('#tierText').html($('#hidden'+level).html());
				
				$('#tierContent').addClass('tier'+level+'content').removeClass('tier'+currentLevel+'content').css({'top': offset.top - 25}).animate({'width': 390}, 500);
				currentLevel = level;
			});	
		}
	}
}

function tierClose(){
	$('#tierContent').animate({'width': 0},500, function(){
		$('#tierContent').removeClass('tier'+currentLevel+'content');											 
		$('#opacity').animate({'opacity': 1},500, function(){ if(!$.support.opacity){this.style.removeAttribute('filter');} });	
		currentLevel = 0;
	});
}

// form effects
function addRequest(){

	$('#genList').append($('#genItem.template').clone());
	
	genNumber++;
	
	$('#genList #genItem.template').removeClass('template').attr('id', 'genItem_' + genNumber).fadeIn('slow').find('input,select').each(function(){
		$(this).attr('name', $(this).attr('name') + '[' + genNumber + ']');
	});

	return false;

}

function deleteRequest(){
	
	if(genNumber > 0){
		
		$('#genItem_' + genNumber).remove();
	
		genNumber--;
		
	}
	
	return false;
	
}