//browse page generator
var render = {

	programCategories : {
		 "0" : {
			"groupName" : "Business",
			"category" : [
							{ "categoryName" : "Management",
							  "categoryValue" : "30"
							},
							{ "categoryName" : "Accounting/Finance",
							  "categoryValue" : "51"
							},
							{ "categoryName" : "Business Administration",
							  "categoryValue" : "52"
							},
							{ "categoryName" : "Healthcare Management",
							  "categoryValue" : "53"
							},
							{ "categoryName" : "Human Resource",
							  "categoryValue" : "54"
							},
							{ "categoryName" : "IT/eCommerce",
							  "categoryValue" : "55"
							},
							{ "categoryName" : "Marketing/Communications",
							  "categoryValue" : "56"
							},
							{ "categoryName" : "Project/Operations Management",
							  "categoryValue" : "57"
							},
							{ "categoryName" : "Other",
							  "categoryValue" : "58"
							}
						 ]
		 }, //end 0

		 "1" : {
			"groupName" : "Trade",
			"category" : [
							{ "categoryName" : "Auto",
							  "categoryValue" : "1"
							},
							{ "categoryName" : "Aero",
							  "categoryValue" : "2"
							},
							{ "categoryName" : "Construction",
							  "categoryValue" : "3"
							},
							{ "categoryName" : "Massage and Spa",
							  "categoryValue" : "24"
							},
							{ "categoryName" : "Cosmetology",
							  "categoryValue" : "50"
							}
						]
		 }, //end 1

		 "2" : {
			"groupName" : "Legal",
			"category" : [
							{ "categoryName" : "Justice",
							  "categoryValue" : "6"
							},
							{ "categoryName" : "Legal/Paralegal",
							  "categoryValue" : "7"
							}
						]
		 }, //end 2

		 "3" : {
			"groupName" : "Hospitality",
			"category" : [
							{ "categoryName" : "Culinary Arts",
							  "categoryValue" : "8"
							},
							{ "categoryName" : "Hospitality",
							  "categoryValue" : "29"
							}
						]
		 }, //end 3

		 "4" : {
			"groupName" : "Education",
			"category" : [
							{ "categoryName" : "Education",
							  "categoryValue" : "9"
							},
							{ "categoryName" : "Liberal Arts",
							  "categoryValue" : "10"
							}
						]
		 }, //end 4

		 "5" : {
			"groupName" : "Technology",
			"category" : [
							{ "categoryName" : "IT",
							  "categoryValue" : "16"
							},
							{ "categoryName" : "Science",
							  "categoryValue" : "17"
							},
							{ "categoryName" : "Engineering",
							  "categoryValue" : "18"
							}
						]
		 }, //end 5

		 "6" : {
			"groupName" : "Healthcare",
			"category" : [
							{ "categoryName" : "Health Care",
							  "categoryValue" : "11"
							},
							{ "categoryName" : "Human Services",
							  "categoryValue" : "12"
							},
							{ "categoryName" : "Psychology",
							  "categoryValue" : "15"
							},
							{ "categoryName" : "Dental Assistant",
							  "categoryValue" : "45"
							},
							{ "categoryName" : "Medical Assistant",
							  "categoryValue" : "46"
							},
							{ "categoryName" : "Medical Billing/Coding",
							  "categoryValue" : "47"
							},
							{ "categoryName" : "Medical Technician",
							  "categoryValue" : "48"
							},
							{ "categoryName" : "Pharmacy",
							  "categoryValue" : "49"
							}
						]
		 }, //end 6

		 "7" : {
			"groupName" : "Arts & Design",
			"category" : [
							{ "categoryName" : "Web",
							  "categoryValue" : "19"
							},
							{ "categoryName" : "Fashion",
							  "categoryValue" : "20"
							},
							{ "categoryName" : "Graphic Design",
							  "categoryValue" : "21"
							},
							{ "categoryName" : "Fine Art",
							  "categoryValue" : "22"
							},
							{ "categoryName" : "Design",
							  "categoryValue" : "23"
							}
						]
		 }, //end 7

		 "8" : {
			"groupName" : "Nursing",
			"category" : [
							{ "categoryName" : "Bachelor's in Nursing",
							  "categoryValue" : "25"
							},
							{ "categoryName" : "Diploma in Nursing",
							  "categoryValue" : "26"
							},
							{ "categoryName" : "LPN/LVN",
							  "categoryValue" : "27"
							},
							{ "categoryName" : "MSN",
							  "categoryValue" : "28"
							}
						]
		 } //end 8
	//end programCategories
	},


	createSelections : function() {
		var inputValue = id_categoryGroup;
		var categoryWrapper = document.getElementById("programCategoryWrapper");
		categoryWrapper.innerHTML = "";
		for (key in render.programCategories) {
		  if(key == inputValue){
				var e_div = document.createElement("div");
				try{
					var e_input = document.createElement('<input type="radio" name="programCategories" />');  //IE6 workaround
					}catch(err){
					var e_input = document.createElement("input");
					}
				var e_label = document.createElement("label");
				e_div.className = "categoryGroupName";
				e_div.innerHTML = 'Show <strong>'+render.programCategories[key].groupName+'</strong> Programs in: ';
				e_input.type = "radio";
				e_input.id = 'group'+key;
				e_input.name = 'programCategories';
				e_input.className = 'pcgRadio';
				e_label.htmlFor = 'group'+key;
				e_label.innerHTML = ' All '+render.programCategories[key].groupName+' Programs';
				e_div.appendChild(e_input);
				e_div.appendChild(e_label);
				categoryWrapper.appendChild(e_div);
				e_input.checked = 'checked';
				e_input.defaultChecked = 'checked'; //IE6 workaround
				for(key2 in render.programCategories[key].category) { //loop through each category key
					e_div = document.createElement("div");
					try{
  						var e_input = document.createElement('<input type="radio" name="programCategories" />');
						}catch(err){
						var e_input = document.createElement("input");
						}
					e_label = document.createElement("label");
					e_div.className = 'programCategory';
					e_input.type = 'radio'
					e_input.id = 'category_'+render.programCategories[key].category[key2].categoryValue;
					e_input.name = 'programCategories';
					e_input.className = 'pcgRadio';
					e_label.htmlFor = 'category_'+render.programCategories[key].category[key2].categoryValue;
					e_input.value = render.programCategories[key].category[key2].categoryValue;

					e_label.innerHTML = ' '+render.programCategories[key].category[key2].categoryName;
					e_div.appendChild(e_input);
					e_div.appendChild(e_label);
					categoryWrapper.appendChild(e_div);
					if(id_category == e_input.value){
						e_input.checked = 'checked';
						e_input.defaultChecked = 'checked'; //IE6 workaround
					}
				} //end for
			} // end if
		} //end for
	} //end createSelections
};//end render

var clean = {
	removeTags : function() {
		$('div.editEdit').each(function() {
		var cleanStr = $(this).text();
		if(cleanStr.length > 255) {
			var newStr = cleanStr.substring(0,255);
			$(this).html(newStr+"...");
		}
		 else {
			 $(this).html(cleanStr);
			 }
									  });
	 }
};

//find current state and style
var nav = {

	eduDegreeMap : {
	"0" : "0",
	"2" : "0",
	"5" : "1",
	"6" : "1",
	"7" : "2",
	"8" : "3"
	},

	setYourEduLevel : function() {
		$("ul#eduId a").each(function(){
			if(id_eduLvl !='') {
				$(this).parent('li').hide();
				 var eduHref = $(this).attr('href').match(/currentEducationLevelId=\d/);
				 eduHref = eduHref.toString().match(/[0-9]/,'');
				 if(eduHref == id_eduLvl){
					 $(this).parent('li').show();
					 $(this).parent('li').addClass('edustatus').append("<div class='alteredu'>change</div>");
				 }
			 }
										});
	},
	setCatGroupId : function() {
		$("ul#catId a").each(function(){
		     var catHref = $(this).attr('href').match(/categoryGroupId=\d/);
			 if(catHref != null){
			     catHref = catHref.toString().match(/[0-9]/,'');
			 }
			 if(catHref == id_categoryGroup){
			     $(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 }
			 else if(catHref == null && id_categoryGroup ==''){
			     $(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 } else{}
										});
	},
	setDegreeId : function() {
		$("ul#degId a").each(function(){
		     var degHref = $(this).attr('href').match(/degreeId=\d/);
			 if(degHref != null){
				 degHref = degHref.toString().match(/[0-9]/,'');
			 }
			 if(degHref == id_degree){
				$(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 }
			 else if(degHref == null && id_degree ==''){
				 $(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 } else{}
										});
	},
	setCampusTypeId : function() {
		if (id_campusType == 'international') {
			   $("ul#typeIdInt a").each(function(){
			   	$(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			   });
		} else {
		  $("ul#typeId a").each(function(){
		     var typeHref = $(this).attr('href').match(/campusType=\D*(?=&)/);
			 typeHref = typeHref.toString().replace(/campusType=/,'');
			 if(typeHref == id_campusType){
			     $(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 }
			 else if(typeHref == 'both' && id_campusType ==''){
			     $(this).parent('li').addClass('onstatus').append("<div class='arrow'></div>");
			 } else{}
										});
		}
	}

}; //end nav


var degreeTitle = {

	render : function() {
		if(id_degree != ''){
				var degreeDisplay = degreeTitle.findit[id_degree];
				$('div.degreetitle').append(degreeDisplay);
				}
		},

	findit : {
		"0" : "Associate's Degrees in: ",
		"1" : "Bachelor's Degrees in: ",
		"2" : "Master's Degrees in: ",
		"3" : "Doctoral Degrees in: ",
		"4" : "Certificate Programs in: "
		}
	};

var zip = {
    verifyZip: function(){
        leadZipCode = $('input#zip').val();
        $.ajax({type: 'POST', url: '/dynamic/school-form/validateZip', data: 'zipCode='+leadZipCode,
            success: function(jsonObject){
              jsonZip = eval('(' + jsonObject + ')');
                if(!jsonZip.isValid) {
       	             alert('Please enter a valid U.S. zip code');
	          	     return false;
	        	}
				zip.submitGroundSearch();
	   		 }
        });
    },

    submitGroundSearch: function() {
        var addzip = 'zipCode='+$('input#zip').val();
		var setCampusType = $('div.modal input:eq(1)').attr('name');
		if(!document.getElementById("flagDomExist")) {
			var mod_appendZipUrl = appendZipUrl.replace(/campusType=\D*(?=&)/,'campusType='+setCampusType);
			window.location ='/browse/?'+mod_appendZipUrl+addzip;
		}
		else {
			window.location ='/browse/?'+appendZipUrl+addzip;
		}
    }
}

var browsepageForm = {
	errormsg : [
				"Please select an Area of Study","Plese select Your Highest Level of Education."
				],
	validate : function() {
		var pass = false;
		$("select").each(function(i) {
			var isSelected = $(this).val();
			if(isSelected == '-1'){
				alert(browsepageForm.errormsg[i]);
				pass = false;
				return false;
				}
				else {
					pass = true;
					}
		});
		if(pass){
			browsepageForm.retrieveUrl();
			}
	},
	retrieveUrl : function() {
		var eduDegreeMap = {
		"0" : "0",
		"2" : "0",
		"5" : "1",
		"6" : "1",
		"7" : "2",
		"8" : "3"
		};
		var areaofstudy = $("select#programCategoryGroups").val();
		var highestedlvl = $("select#highestLevelOfEducation").val();
		//var degreeId = eduDegreeMap[highestedlvl];
		window.location = "/browse/?campusType=online&categoryGroupId="+areaofstudy+"&currentEducationLevelId="+highestedlvl;
		}
}

var abTest = {
	hideElements : function() {
		if($("div#cta").length > 0){
			$("div.pagecta").hide();
			$(".navWrapper").hide();
		}
		else {
			$("div.pagecta").show();
			$(".navWrapper").show();
			}
	}
}

$(function(){
	var categoryIdValue;
	clean.removeTags();

	$('input[name="programCategories"]:eq(0)').click(function(){
		window.location ='/browse/?'+programCategoryUrl;
	});

	$('input[name="programCategories"]:gt(0)').click(function(){
		categoryIdValue = $(this).val();
		window.location ='/browse/?'+programCategoryUrl+'categoryId='+categoryIdValue;
	});

	nav.setYourEduLevel();
	nav.setCatGroupId ();
	nav.setDegreeId();
	nav.setCampusTypeId();
	degreeTitle.render();
	abTest.hideElements();

//edlvl dialog box
	$('div.alteredu').mouseover(function(){
		$(this).css('background-color', '#ccc');
		$('div#eduModal').show();
	});

	$('div#eduModal').bind("mouseleave",function(){
		$('div.alteredu').css('background-color', '#fff');
		$(this).hide();
	});
//zip dialog box
	$('span.alterzip').click(function(){
		$(this).css('background-color', '#ccc');
		$('div.msg').html("<strong>Change Your Zip Code</strong>");
		$('div.modal').css('top','84px').show();
		$("#zip").focus();
	});

	$('div:not(.modal)').mousedown(function() {
		$('span.alterzip').css('background-color', '#fff');
		$('div.modal').hide();
		$('#typeId li:not(:first)').css('background-color', '#fff');
	});

	$('div.modal').hover(
		function(){
			$('div:not(.modal)').unbind('mousedown');
		 },
		function(){
			$('div:not(.modal)').mousedown(function() {
				$('span.alterzip').css('background-color', '#fff');
				$('div.modal').hide();
				$('#typeId li:not(:first)').css('background-color', '#fff');
			});
		}
	 );

	$('#typeId li:not(:first)').click(function(event) {
		//prevent click if no zip
		if(!document.getElementById("flagDomExist")){
			event.preventDefault();
		}
	});

	$('#typeId li:not(:first)').click(function(){
		if(!document.getElementById("flagDomExist")) {
			$('div.modal').hide();
			$('#typeId li').css('background-color', '#fff');
		}
	 if(!document.getElementById("flagDomExist") && ($(this).find('a').html() == 'Both')){
		 $(this).css('background-color', '#ccc');
		 $('div.modal input:eq(1)').attr('name','both');
		 $('div.msg').html("To see local campuses,<br/> <strong>Please enter your ZIP Code</strong>");
		 $('div.modal').css('top','65px').show();
		 $("#zip").focus();
		 }
	  if(!document.getElementById("flagDomExist") && ($(this).find('a').html() == 'Campus')){
		 $(this).css('background-color', '#ccc');
		 $('div.modal input:eq(1)').attr('name','ground');
		 $('div.msg').html("To see local campuses,<br/> <strong>Please enter your ZIP Code</strong>");
		 $('div.modal').css('top','46px').show();
		 $("#zip").focus();
		 }
	});

   $('#indexgroundsearch').click(function(event) {
        event.preventDefault();
        zip.verifyZip();
    });

   $('input[name="search"]').click(function(event) {
        event.preventDefault();
        zip.verifyZip();
    });

   	$("input.submitBrowse").click(function() {
		browsepageForm.validate();
		return false;
	});

    //Inernational Link
    $('#intlLink').click(function(){
 	  eventLogger.logEvent("EVENT_CA_LINKOUT");
       //add great exposure campus id as request param
       document.location.href='/canada/?campusId=53701';
    });

});
