// 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;
		}

	}

	
	$('#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').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(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();
			}
		}
    });
	
	
});

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;
	
}