var $j = jQuery.noConflict();

//create container for checkmark and error icon
function errorStatusIcons(){
	

$j('input#email,input#repeat_email,input#password,input#ConfirmPassword,input#currentPassword,input#first_name,input#last_name,select#Country,select#State,input#Nick_name,select#Profession,select#Speciality,select#Graduate_year,select#Graduate_state,select#Graduate_school,input#Graduate_school_other,select#Work_place,input#Workplace_zipcode,input#ourterms').each(function(){
		if($j(this).hasClass('text') && $j(this).next().hasClass('help')){
			if(!$j(this).nextAll('span.status').length){
				$j(this).next().after('<span></span>');
				$j(this).next().next().addClass('status');
			}
		}
		else if($j(this).get(0).tagName == 'SELECT'){
			if(!$j(this).nextAll('span.status').length){
				$j(this).after('<span></span>');
				$j(this).next().addClass('status');
			}
		}
		else if($j(this).attr('type') == 'checkbox'){
			if(!$j(this).nextAll('span.status').length){
				$j(this).next().after('<span></span>');
				$j(this).next().next().addClass('status');
			}
		}
		else{
			if(!$j(this).nextAll('span.status').length){
				$j(this).after('<span></span>');
				$j(this).next().addClass('status');
			}
		}
	});
}

function setSpeciality(){
	var profession = $j('#Profession');
	var specialtycontainer = $j('#specialty_container');
	var specialityparent = $j('#Speciality_hidden');
	var specialitychildren = specialityparent.children();
	var speciality = $j('#Speciality');
	var graduationyear = $j('#graduation_year_container');
	var graduationstate = $j('#graduation_state_container');
	var medschool = $j('#Graduate_school_container');
	var otherschool = $j('#Graduate_school_other_container');
	var workzip = $j('#Workplace_zipcode_container');
	var workplace = $j('#Workplace_container');
	var currentstate = $j('select#Country');
	specialtycontainer.hide();
	speciality.attr("disabled","disabled");
	speciality.removeClass('error');
	speciality.nextAll('span.status').removeClass('error');
	speciality.nextAll('span.status').removeClass('ok');
	$j('.formError.SpecialityformError').remove();
	graduationyear.hide();
	graduationyear.children('#Graduate_year').attr("disabled","disabled");
	graduationyear.children('#Graduate_year').removeClass('error');
	graduationyear.children('span.status').removeClass('error');
	graduationyear.children('span.status').removeClass('ok');
	$j('.formError.Graduate_yearformError').remove();
	graduationstate.hide();
	graduationstate.children('#Graduate_state').attr("disabled","disabled");
	graduationstate.children('#Graduate_state').removeClass('error');
//	graduationstate.children('#Graduate_state').val("EIS_Empty");
	graduationstate.children('span.status').removeClass('error');
	graduationstate.children('span.status').removeClass('ok');
	$j('.formError.Graduate_stateformError').remove();
	medschool.hide();
	medschool.children('#Graduate_school').attr("disabled","disabled");
	medschool.children('#Graduate_school').removeClass('error');
//	medschool.children('#Graduate_school').val("EIS_Empty");
	medschool.children('span.status').removeClass('error');
	medschool.children('span.status').removeClass('ok');
	$j('.formError.Graduate_schoolformError').remove();
	otherschool.hide();
	otherschool.children('#Graduate_school_other').attr("disabled","disabled");
	otherschool.children('#Graduate_school_other').removeClass('error');
//	otherschool.children('#Graduate_school_other').attr('value','');
	otherschool.children('span.status').removeClass('error');
	otherschool.children('span.status').removeClass('ok');
	$j('.formError.Graduate_school_otherformError').remove();
	workzip.hide();
	workzip.children('#Workplace_zipcode').attr("disabled","disabled");
	workzip.children('#Workplace_zipcode').removeClass('error');
	workzip.children('span.status').removeClass('error');
	workzip.children('span.status').removeClass('ok');
	$j('.formError.Workplace_zipcodeformError').remove();
	speciality.find('option').remove();
	
	if($j(profession).val() == 'Physician' || $j(profession).val() == 'Fellow/Resident'){
		var selectedval = '';
		specialitychildren.eq(0).clone().appendTo(speciality);
		specialitychildren.each(function(){
			if($j(this).hasClass('Group_1')){
				$j(this).clone().appendTo(speciality);
			}
			if($j(this).attr('selected')){
				selectedval = $j(this).val();
			}
		});
		
		speciality.removeAttr('disabled');
		graduationyear.children('#Graduate_year').removeAttr('disabled');
		graduationstate.children('#Graduate_state').removeAttr('disabled');
		workzip.children('#Workplace_zipcode').removeAttr('disabled');


		$j(speciality).find('option').each(function() {
			if($j(this).val() == selectedval){
				try {
					$j(this).attr('selected',true);
				}
				catch(err) {
					$j(this).selected = true;
				}
			}
		});
		
		
				
		specialtycontainer.show();
		graduationyear.show();
		graduationstate.show();
		workzip.show();
//		setGradSchool() handles the medical school setup
	}
	if($j(profession).val() == 'Nurse' || $j(profession).val() == 'Nurse Practitioner' || $j(profession).val() == 'Pharmacist' || $j(profession).val() == 'Physician Assistant' || $j(profession).val() == 'Other Health Professional'){
		specialitychildren.eq(0).clone().appendTo(speciality);
		var selectedval = '';
		specialitychildren.each(function(){
			if($j(this).hasClass('Group_1')){
				$j(this).clone().appendTo(speciality);
			}
			if($j(this).attr('selected')){
				selectedval = $j(this).val();
			}
		});
		$j(speciality).find('option').each(function(){
			if($j(this).val() == selectedval){
				try {
					$j(this).attr('selected',true);
				}
				catch(err) {
					$j(this).selected = true;
				}
			}
		});
		speciality.removeAttr('disabled');
		specialtycontainer.show();
		
	}
	if($j(profession).val() == 'Faculty/Educator' || $j(profession).val() == 'Student'){
		specialitychildren.eq(0).clone().appendTo(speciality);
		var selectedval = '';
		specialitychildren.each(function(){
			if($j(this).hasClass('Group_2')){
				$j(this).clone().appendTo(speciality);
			}
			if($j(this).attr('selected')){
				selectedval = $j(this).val();
			}
		});
		$j(speciality).find('option').each(function(){
			if($j(this).val() == selectedval){
				try {
					$j(this).attr('selected',true);
				}
				catch(err) {
					$j(this).selected = true;
				}
			}
		});
		speciality.removeAttr('disabled');
		specialtycontainer.show();
	}
	/*
	if($j(profession).val() == 'Librarian' || $j(profession).val() == 'Researcher/Scientist' || $j(profession).val() == 'Media/Press' || $j(profession).val() == 'Consumer/Other'){
		specialitychildren.each(function(){
			if($j(this).hasClass('Group_3')){
				$j(this).clone().appendTo(speciality);
			}
		});
		speciality.removeAttr('disabled');
		specialtycontainer.show();
	}
	*/
}

//populate grad school based on state
//if 'other', add text input
function setGradSchool(){
	var state = $j('#Graduate_state option:selected').val();
//	alert($j('#Graduate_state option[selected="true"]').val());
	$j('#Graduate_state').find('option').each(function() {
		//alert($j(this).val());
		//alert($j(this).attr('selected'));
		if($j(this).attr('selected')=='true'){
			try {
				state= $j(this).val();
				$j(this).attr('selected',true);
				//alert($j(this).val());
			}
			catch(err) {
				$j(this).selected = true;
				setTimeout(addOtherSchool,1);
			}
		}
	});
	
	
	var schoolparent = $j('select#Graduate_school_master');
	var schoolkids = schoolparent.children();
	var school = $j('select#Graduate_school');
	var otherschool = $j('input#Graduate_school_other');
	var selectedval = '';
	school.find('option').remove();
	school.attr("disabled","disabled");
	school.next('span.status').removeClass('error');
	school.next('span.status').removeClass('ok');
	$j('.formError.Graduate_schoolformError').remove();
	otherschool.parent().hide();
	otherschool.attr("disabled","disabled");
//	otherschool.val('');
	otherschool.removeClass('error');
	otherschool.next('span.status').removeClass('error');
	otherschool.next('span.status').removeClass('ok');
	$j('.formError.Graduate_school_otherformError').remove();


	var statenames = new Array(new Array('Alabama','AL'),new Array('Arizona','AZ'),new Array('Arkansas','AK'),new Array('California','CA'),new Array('Colorado','C0'),new Array('Connecticut','CT'),new Array('District of Columbia','DC'),new Array('Florida','FL'),new Array('Georgia','GA'),new Array('Hawaii','HI'),new Array('Illinois','IL'),new Array('Indiana','IN'),new Array('Iowa','IA'),new Array('Kansas','KS'),new Array('Kentucky','KY'),new Array('Louisiana','LA'),new Array('Maryland','MD'),new Array('Massachusetts','MA'),new Array('Michigan','MI'),new Array('Minnesota','MN'),new Array('Mississippi','MS'),new Array('Missouri','MO'),new Array('Nebraska','NE'),new Array('Nevada','NV'),new Array('New Hampshire','NH'),new Array('New Jersey','NJ'),new Array('New Mexico','NM'),new Array('New York','NY'),new Array('North Carolina','NC'),new Array('North Dakota','ND'),new Array('Ohio','OH'),new Array('Oklahoma','OK'), new Array('Oregon','OR'),new Array('Pennsylvania','PA'),new Array('Puerto Rico','PR'),new Array('Rhode Island','RI'),new Array('South Carolina','SC'),new Array('Tennessee','TN'),new Array('Texas','TX'),new Array('Utah','UT'),new Array('Vermont','VT'),new Array('Virginia','VA'),new Array('Washington','WA'),new Array('West Virginia','WV'),new Array('Wisconsin','WI'))
	var statefound = false;

	for(i=0;i<statenames.length;i++){
		if(statenames[i][0] == state){
			statefound = true;
			school.attr("disabled","");
			schoolkids.eq(0).clone().appendTo(school);
			var stateabbr = 'option[class="'+statenames[i][1]+'"]';
			schoolparent.find(stateabbr).clone().appendTo(school);
			schoolparent.find(':last-child').clone().appendTo(school);
			school.parent().show();
		}
	}
	if(!statefound){
		if(state != 'EIS_Empty'){
			school.attr("disabled","");
			schoolparent.find(':last-child').clone().appendTo(school);
			school.parent().show();
			addOtherSchool();
		}
		else{
			school.parent().hide();
			school.attr("disabled","disabled");
		}
	}
	
	schoolparent.find('option').each(function(){
		if($j(this).attr('selected')){
			selectedval = $j(this).val();
		}
	});
	$j(school).find('option').each(function() {
		if($j(this).val() == selectedval){
			try {
				$j(this).attr('selected',true);
			}
			catch(err) {
				$j(this).selected = true;
				setTimeout(addOtherSchool,1);
			}
		}
	});
}

function addOtherSchool(){
	var medschool = $j('#Graduate_school').val();
	var otherschool = $j('#Graduate_school_other_container');
	if(medschool == 'other'){
		otherschool.show();
		otherschool.children('input').attr('disabled','');
	}
	else{
		otherschool.hide();
		otherschool.children('span.status').removeClass('ok');
		otherschool.children('span.status').removeClass('error');
		otherschool.children('input').removeClass('error');
		otherschool.children('input').attr('disabled','disabled');
	}
}

//display US States
function displayStates(){
	var country = $j('#Country');
	var state = $j('#State_container');
	if(country.val() == 'United States'){
		state.children('#State').attr('disabled','');
		state.show();
	}
	else{
		state.children('#State').attr('disabled','disabled');
		state.hide();
	}
}

// Use jQuery via $j
$j(document).ready(function(){
                 $j("a[href^='mailto']").each(function()
                { 
                          this.href = this.href.replace(/;jsessionid=[0-9A-Z]+/,  "");
                 });

	$j("#profile").ready(function(){
		$j("#profile").show();
		$j('<input id="registration_submit" type="image" src="/sysimages/btn_submit.gif" value="submit"/>').appendTo("#profile #submit_wrapper");
	
		errorStatusIcons();
	
	
		/*hide info messaging*/
		$j('#email').focus(function(){
			$j('.emailhelpformError').remove();
		});
		
		$j('#password').focus(function(){
			$j('.passwordhelpformError').remove();
		});
		
		$j('#Country').change(displayStates)
		displayStates();
		
//		$j('#Profession').live('change',setSpeciality);
		$j('#Profession').change(setSpeciality);
		setSpeciality();
		
		$j('select#Graduate_state').change(setGradSchool);
		setGradSchool();
		
		$j('select#Graduate_school').change(addOtherSchool);
		addOtherSchool();
		
		//hide second cancertype selectionmenu
		$j(this).find('.selector').each(function(){
			if($j(this).prev().children('#com_prefs_modify').length){
				$j(this).hide();
			}
		});
		
		if($j('#cancer_newsletter.update').length){
			var field = $j('#cancer_updates');
			var label = field.next();
			var selection = $j('#cancerNewsletter').val().replace(/,/g,', ');
			label.text(selection.substr(0,(selection.length-2)));
		}
		if($j('#cancer_newsletter.update').length){
			if(!$j('#cancer_newsletter.update p.checklist label').text().length){
				label.html('<em>No cancer types have been selected</em>');
				field.attr('checked','');
				field.css('visibility','hidden');
				label.css('cursor','default');
			}
		}

	});
	
	$j("#reg").validationEngine({
		inlineValidation:true,
		success:false,
		failure:function() {
//			callFailFunction()
		}
	});
	
	$j('#com_prefs_modify').click(function(e){
		e.preventDefault();
		$j(this).fadeOut();
		$j(this).parent().prev().fadeOut();
		$j(this).parent().next('.selector').find('#cancerNewsletter').val('');
		$j(this).parent().prev().find('#cancer_updates').removeAttr('checked');
		$j(this).parent().next('.selector').show();
		$j(this).parent().next('.selector').find('.option li').each(function(){
			$j(this).removeClass('selected');
		});
		$j(this).parent().next('.selector').find('.result').empty();
	});
	$j('#cancer_updates').click(function(){
		if(!$j(this).is(':checked')){
			$j(this).parent().next().next().find('#cancerNewsletter').val('');
		}
		else{
			if($j('#cancerInterest').length && ($j('#cancerInterest').val().length == 0)){
				$j(this).parent().next().next().find('#cancerNewsletter').val('All Cancer Types');
			}
			else{
				$j(this).parent().next().next().find('#cancerNewsletter').val($j('#cancerInterest').val());
			}
		}
	})
	
	//Cancer type selector
	// mimic multiple select menu, populate hidden field
	$j('.selector .option').bind('click',function(e){
		var el = $j(e.target);
		var hiddenfield = $j(el).parent().parent().siblings('input[type="hidden"]');
		var newsletterhiddenfield = $j(el).parents('fieldset').next().find('.selector input#cancerNewsletter');
		var fielddata = '';
		if(!($j(el).is('li[class="selected"]')) && !($j(el).is(':contains("All Cancer Types")'))){
			$j(el).clone().appendTo($j(el).parent().parent().next('.selection').children(".selector ul.result"));
			$j(el).addClass('selected');
			fielddata = $j(el).text() + ',';
		}
		else if(!($j(el).is('li[class="selected"]')) && ($j(el).is(':contains("All Cancer Types")'))){
			$j(el).parent().parent().next('.selection').children('.selector .result').empty();
			$j(el).clone().appendTo($j(el).parent().parent().next('.selection').children('.selector ul.result'));
			$j(el).siblings().andSelf().each(function(){
				$j(this).addClass('selected');
			});
			hiddenfield.val('');
			fielddata = $j(el).text() + ',';
		}
		if(!$j(this).parents('#cancer_newsletter').hasClass('update')){
			hiddenfield.val(hiddenfield.val()+fielddata);
		}
		else{
			newsletterhiddenfield = $j(el).parents('fieldset').find('.selector input#cancerNewsletter');
			newsletterhiddenfield.val(newsletterhiddenfield.val()+fielddata);
		}

		if((newsletterhiddenfield.length > 0) && $j('#cancer_updates').is(':checked')){
			newsletterhiddenfield.val(hiddenfield.val());


			//set cancer newsletter types
			var cancertypes = $j('#cancer_updates').next('label');
			var labelfield = hiddenfield.val().replace(/,/g,', ');
			cancertypes.text(labelfield.substr(0,(labelfield.length-2)));
		}
	});
	$j('.selector .result').bind('click',function(e){
		var el = $j(e.target);
		var hiddenfield = $j(el).parent().parent().siblings('input[type="hidden"]');
		var newsletterhiddenfield = $j(el).parents('fieldset').next().find('.selector input#cancerNewsletter');
		var fielddata = '';
		if($j(el).is('li')){
			$j(el).parent().parent().prev('.options').find('ul.option li').each(function(){
				if($j(this).text() == $j(el).text() && !($j(el).is(':contains("All Cancer Types")'))){
					$j(this).removeClass('selected');
				}
				else if($j(this).text() == $j(el).text() && ($j(el).is(':contains("All Cancer Types")'))){
					$j(el).parent().parent().prev('.options').find('ul.option li').each(function(){
						$j(this).removeClass('selected');
					});
				}
			});
			$j(el).siblings().each(function(){
				fielddata += $j(this).text() + ',';
			});
			$j(el).remove();
		}
		hiddenfield.val(fielddata);
		if((newsletterhiddenfield.length > 0) && $j('#cancer_updates').is(':checked')){
			newsletterhiddenfield.val(hiddenfield.val());
			//set cancer newsletter types
			var cancertypes = $j('#cancer_updates').next('label');
			if(hiddenfield.val().length>0){
				var labelfield = hiddenfield.val().replace(/,/g,', ');
				cancertypes.text(labelfield.substr(0,(labelfield.length-2)));
			}
			else{
				cancertypes.text('All Cancer Types');
				newsletterhiddenfield.val('All Cancer Types');
			}
		}
	});


//			$j("#masthead").hide();
//			$('masthead').hide();
});