var ajaxSubmitting = false;

$(document).ready(function(){
	// Create history object

	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChange);

	if(dhtmlHistory.isFirstLoad()){

		if( ! document.location.hash.match("step=") ){

		} else {
			historyChange(document.location.hash.replace("#",""),"");
		}
	}




});


// Called on back/forward button click
var historyChange = function(newLocation, historyData){

	var params = toQueryParams( newLocation );

	//console.dir(params);

	if(params){
		if(params.reqstep){
			$("#requesting_step").val(params.reqstep);
		}
		if(params.parent_cat){
			$("#g_parent_cat").val(params.parent_cat);
		}
		if(params.cat_id){
			$("#g_cat").val(params.cat_id);
		}
		if(params.degree_level){
			$("#g_degree_level").val(params.degree_level);
		}
		if(params.order){
			$("#g_order").val(params.order);
		}
		if(params.order_asc){
			$("#g_order_asc").val(params.order_asc);
		}
		if(params.distance){
			$("#g_distance").val(params.distance);
		}
		if(params.zipcode){
			$("#g_zipcode").val(params.zipcode);
		}
		if(params.selected_programs){
			$("#g_selected_programs").val(params.selected_programs);
		}

		submitAjaxForm();
	}

};



function goToStep(num){
	$("#requesting_step").val(num);
	submitAjaxForm();
}

function submitAjaxForm(){
	var dataStr = $("#frmMain").serialize();


	if(!ajaxSubmitting){
		ajaxSubmitting = true;
		$.ajax({
			url: "/ajax.compare-programs.php",
			data: dataStr,
			type: 'POST',
			success: function(respData){
				$("#stepForm").html(respData);
				ajaxSubmitting = false;
			}

		});
	}
}

function showSubCatsForTools()
{

	var parent_id = $("#parent_cat_id").val();
	if($("#sub_cat_select").length > 0){
		$("#sub_cat_select")[0].selectedIndex = 0;
	}
	$("#g_parent_cat").val( parent_id );
	$("#g_cat").val(0);
	$("#submit_1").attr("disabled","disabled");
	$("#submit_1").addClass("disabled");
	$("#requesting_step").val(1);

	dhtmlHistory.add("reqstep=1&parent_cat=" + parent_id );
	submitAjaxForm();
}

function subCatSelected()
{
	var cat_id =  $("#sub_cat_select").val();

	var parent_id = $("#parent_cat_id").val();
	$("#g_parent_cat").val( parent_id );
	$("#g_cat").val( cat_id );
	$("#requesting_step").val(1);

	if (cat_id > 0 ){
		$("#submit_1").removeAttr("disabled");
		$("#submit_1").removeClass("disabled");
		$(".prev_step").show();
	}else{
		$("#submit_1").attr("disabled","disabled");
		$("#submit_1").addClass("disabled");
		$(".prev_step").hide();
	}

	dhtmlHistory.add("reqstep=1&parent_cat=" + parent_id + "&cat_id=" + cat_id);
}

function selectedDegreeLevel()
{

	var value = $('input[type=radio][name=degree_level_id]:checked').val();

	if (value > 0 || value == 'all'){
		$("#submit_1").removeAttr("disabled");
		$("#submit_1").removeClass("disabled");
		$("#g_degree_level").val(value);

	}else{
		$("#submit_1").attr("disabled","disabled");
		$("#submit_1").addClass("disabled");
		$("#g_degree_level").val("");
	}

}

function submitStep1(reset_it)
{
	$("#requesting_step").val(2);

	dhtmlHistory.add("reqstep=2&parent_cat=" + $("#g_parent_cat").val() + "&cat_id=" + $("#g_cat").val() );

	submitAjaxForm();

}

function submitStep2()
{
	$("#requesting_step").val(3);

	dhtmlHistory.add("reqstep=3&parent_cat=" + $("#g_parent_cat").val() + "&cat_id=" + $("#g_cat").val()
					 + "&degree_level=" + $("#g_degree_level").val() );

	submitAjaxForm();


}

function programSelected(selectedProgram)
{
	var allBoxes = $(".programCheckbox");
	var checked = $(".programCheckbox:checked");
	var programsCSV = "";

	checked.each(function(i){
		programsCSV += "_" + this.value;
	});
	programsCSV = programsCSV.substring(1);

	$("#g_selected_programs").val( programsCSV );

	if (checked.length >= 5 || checked.length == allBoxes.length){
		for(var j=0;j<allBoxes.length;j++){
			if (!allBoxes[j].checked)
				allBoxes[j].disabled = true;

		}
	}else{
		for(var j=0;j<allBoxes.length;j++){
			allBoxes[j].disabled = false;

		}
	}
	if (checked.length >= 1){
		$("#submit_1").removeAttr("disabled");
		$("#submit_1").removeClass("disabled");
	}else{
		$("#submit_1").attr("disabled","disabled");
		$("#submit_1").addClass("disabled");
	}

}

/* Submit Button for Compare Programs */
function submitStep3(params)
{
	$("#requesting_step").val(4);
	submitAjaxForm();

	dhtmlHistory.add("reqstep=4&parent_cat=" + $("#g_parent_cat").val() + "&cat_id=" + $("#g_cat").val()
					 + "&degree_level=" + $("#g_degree_level").val() + "&selected_programs=" + $("#g_selected_programs").val() );

}

function showRows()
{
	var checked = $(".compareRowCheckbox:checked");
	var allBoxes = $(".compareRowCheckbox");
	var selected_row = 0;
	for(var i=0;i<allBoxes.length;i++){
		//alert(checked[i].id);
		if (allBoxes[i].checked){
			selected_row++;
			$("#"+allBoxes[i].id+"_row").show();
			if ((selected_row % 2) == 0)
				$("#"+allBoxes[i].id+"_row").addClass("even");
			else
				$("#"+allBoxes[i].id+"_row").removeClass("even");

		}
		else
			$("#"+allBoxes[i].id+"_row").hide();

	}
	if((selected_row % 2) != 0){
		$("#learn_more_row").addClass("even");
	}else{
		$("#learn_more_row").removeClass("even");
	}
}

function chooseOrder()
{
	$(".subbox").hide();
	$(".subbox input[type=radio]").removeAttr("checked");

	$("#submit_1").attr("disabled","disabled");
	$("#submit_1").addClass("disabled");

	var allOrderChoices = $(".orderChoiceRadio");

	$("#next_step").fadeOut();

	for(var i=0;i<allOrderChoices.length;i++){
		if (allOrderChoices[i].checked){
			$("#subbox_"+allOrderChoices[i].value).fadeIn();
			$("#g_order").val( allOrderChoices[i].value );
		}else{

		}
	}

	setTimeout(function(){
		if($("#order_distance")[0].checked && $("form input[name=zipcode]:last").val().length == 5){
			orderAscSelected();
		}
	},500);

//	return false;
}

function orderAscSelected(obj)
{
	$("#submit_1").removeAttr("disabled");
	$("#submit_1").removeClass("disabled");

	if(obj){
		$("#g_order_asc").val( obj.value );
	}

	// dhtmlHistory.add("step="+g_step + "&parent=" + g_parent_cat_id + "&cat_id=" + g_cat_id + "&degree_level=" + g_degree_level + "&order=" + g_order + "&order_asc=" + g_order_asc + "&distance=" + g_distance + "&zipcode=" + g_zipcode);
}


function makeYourOwn_Results(params){

	$("#g_distance").val( $("select[name=distance]:last").val() );
	$("#g_zipcode" ).val( $("input[name=zipcode]:last"  ).val() );
	$("#requesting_step").val(4);

	submitAjaxForm();

	dhtmlHistory.add("reqstep=4&parent_cat=" + $("#g_parent_cat").val() + "&cat_id=" + $("#g_cat").val()
					 + "&degree_level=" + $("#g_degree_level").val() + "&order=" + $("#g_order").val()
					 + "&order_asc=" + $("#g_order_asc").val() + "&distance=" + $("#g_distance").val()
					 + "&zipcode=" + $("#g_zipcode").val() );

}

function zebraUL(){
	$("ul.zebra li").each(function(i){
		if(i % 2 == 0){
			$(this).addClass("even");
		}
	});
}