/**********************************************************
 * Fixes, hacks, and stuff to make the world a better place
**********************************************************/
/* lets me use console.log like it's going' out of style */
try{console.log('init console... done'); } catch(e) { console = { log: function(){}}};

$(document).ready(function(){
	if($.browser.msie) { /***** IE HACKS *****/
	$("#nav_news").css({'width': '135px'});
	}
});
/* END HACKS */


var RecaptchaOptions = {
   theme: 'white'
};


var profile_add_more_row = function(div_class){
	var el = $("."+div_class+".hidden:first");
	el.slideDown("normal",function(){
		el.removeClass("hidden")
	});
}

var profile_remove_more_row = function(el_to_hide){
	var el = $("#"+el_to_hide);
	el.slideUp("normal",function(){
		$("#" + el_to_hide + " input").each(function(){ this.value = ""; }); /* clear all inputs */
		$("#" + el_to_hide + " textarea").each(function(){ this.value = ""; }); /* clear all textareas */
		$("#" + el_to_hide + " select").each(function(){ this.selectedIndex = -1; }); /* clear all selects */
	})
	el.addClass("hidden");
}

var profile_collapse_section = function(el_id,click_el,speed,cookie){
	var s = (speed!=null)?speed:"normal";
	var c = (cookie==null)?c=true:c=cookie;
	
	/*
	if (c) {
		if()
		var collapse_cookie_val = ($.cookie('careers_profile_collapsed') != null) ? $.cookie('careers_profile_collapsed') : '';
		$.cookie('careers_profile_collapsed', collapse_cookie_val + el_id + "|", {path: '/', expires: 365});
	}
	*/
	var el = $("#"+el_id);
	el.toggle(s,function(){
		if (click_el.innerHTML == "(show this)") {
			click_el.innerHTML = "(hide this)";
		}else{
			click_el.innerHTML = "(show this)";
		}
	});
}

var profile_collapse_cookied = function(){
	/* FINISH WHEN TIME ALLOWS -- "NICE TO HAVE" FEATURE
	if ($.cookie('careers_profile_collapsed')) {
		console.log($.cookie('careers_profile_collapsed'))
		var ca = $.cookie('careers_profile_collapsed').split("|");
		for (i = 0; i < ca.length; i++) {
			var collapse_toggle = document.getElementById(ca[i] + "_collapse");
			console.log(collapse_toggle)
			profile_collapse_section(ca[i], collapse_toggle, "", false)
		}
	}
	*/
}


var job_setup_job_post_page = function(){	
	/* */
	job_main_cat_option_setup("job_main_category1");
	/* 'MORE INFO' Popups */
	$(".contract_info").click(function(){
		window.open("/views/jobs/_rates_popup.php",null,"height=400,width=500,status=yes,toolbar=no,menubar=no,location=no,top=100,left=200");
		return false;
	})
			
	/* ATTACH EVENTS TO 'ADD ANOTHER JOB' BUTTON */
	$("#add_another_job").click(function(){
		$("#num_jobs").attr("value",(parseInt($("#num_jobs").attr("value"))+1));
		var curr_iteration = $("#num_jobs").attr("value");
		job_post_add_another_job(curr_iteration);	
	});
	
	if(!$.browser.msie) {
		$(".job_description").autogrow({
			maxHeight: 300,
			minHeight: 100
		});
	}else{
		$(".job_description").focus(function(){ $(this).css({'height':'250px'}) })
		$(".job_description").blur(function(){ $(this).css({'height':'50px'}) })
	}	
	/* ATTACH EVENTS TO RADIO BUTTONS FOR RATES */
	$(".job_post_rate").click(function(){ $("#job_contract_fax").hide(); $("#job_contract_fax").slideDown(); });
	
	/* ATTACH EVENTS TO RADIO BUTTONS FOR PAYMENT TYPE */
	$('#card_info_row').hide();
	$(".job_post_payment_method").click(function(){
		if($("input[@name='job_post_payment_method']:checked").val()=="cc"){
			$('#card_info_table input').addClass("required");
			$('#cc_num').addClass("creditcard");
			$('#cc_cvv').addClass("digits");
			$('#card_info_row').fadeIn();
			$('#cc_name').focus();
		}else{
			$('#card_info_table input').removeClass("required");
			$('#cc_num').removeClass("creditcard");
			$('#cc_cvv').removeClass("digits");
			$('#card_info_row').hide();
		}
	})

	/* FORM VALIDATION */
	$("#job_post_form").validate({ });

	/* JOB REVIEW */
	$("#job_post_submit_old").remove();
	$("#job_post_submit").click(function(){
		scrollTo(0,0);
		if ($("#job_post_form").valid()) {
			show_job_review();
		}
	})
}

var job_main_cat_option_setup = function(main_option_id){
	var num = main_option_id.match("\\d");
	var dropdown = "job_sub_category"+num;

	$('#'+dropdown).attr('disabled',true);

	$("#"+main_option_id).change(function(){		
		if(this.value!=""){
			job_populate_secondary_dropdown(dropdown,this.value);
		}else{
			$('#'+dropdown+' option').remove(); 
			$('#'+dropdown).attr('disabled',true);
		};
	});
}

var job_post_add_another_job = function(fields_id){
	if(fields_id > 4){ //limit job postings to 5 at a time
		$("#add_another_job").hide();
	}
	
	$('#add_another_job img').attr("src","/img/shell/ajax_load_bar.gif");
	$.ajax({ url: "/views/jobs/job_post_chunk.php?FIELDS_ID="+fields_id, cache: false, success: function(html){ 
		$('.job_post_chunk_close').hide(); // remove previous remove button
		$("#job_post_body_fields_wrap").append(html);
		$("#job_fields_"+fields_id).slideDown(); 
		$('#add_another_job img').attr("src","/img/shell/btn_add_another_job.png");
		job_main_cat_option_setup("job_main_category"+fields_id);

		if(!$.browser.msie) {
			$(".job_description").autogrow({
				maxHeight: 300,
				minHeight: 100
			});
		}else{
			$(".job_description").focus(function(){ $(this).css({'height':'250px'}) })
			$(".job_description").blur(function(){ $(this).css({'height':'50px'}) })
		}	
	}});
}

var job_populate_secondary_dropdown = function(dropdown_id,main_cat_id){
	$('#'+dropdown_id+' option').remove(); 
	
	$.getJSON("/careers_core/remote/?method=get_job_subcat_list&main_cat_id="+main_cat_id+"&jsoncallback=?",function(data){
          $.each(data, function(i,item){
			var thisOpt   = document.createElement('option');
			thisOpt.value = item.id;
			thisOpt.appendChild(document.createTextNode(item.name));
			$("#"+dropdown_id).append(thisOpt);
		});
		$("#"+dropdown_id).attr("disabled",false);
	});
}

var job_slide_up_and_remove = function(el_id,msg){
	if (confirm(msg)){
		// decrement the counter
		$("#num_jobs").attr("value",(parseInt($("#num_jobs").attr("value"))-1));
		// show remove button on last one
		var closes = $('.job_post_chunk_close');
		if (closes.length > 1) {
			$(closes[closes.length - 2]).show();
		}
		// if less than 5 now, show the add button
		if(parseInt($("#num_jobs").attr("value")) < 5){
			$("#add_another_job").show();
		}
		
		$("#"+el_id).slideUp("normal",function(){
			$("#"+el_id).remove();
		})
	}
}

var show_job_review = function(){
	$("#job_post_body_fields").slideUp();
	$("#job_post_payment").slideUp();
	$("#job_post_review").slideDown();
	
	$("#job_post_step1").addClass("inactive");
	$("#job_post_step2").removeClass("inactive");
	
	/** JOB DETAILS **/
	var i = 1;
	$("#job_post_body_fields_wrap .job_fields_x").each(function(){
		var job_title = $("#job_title"+i).val();
		var job_description = $("#job_description"+i).val();
		var job_main_cat = $("#job_main_category"+i+" :selected").text();		
		var job_sub_cat = $("#job_sub_category"+i+" :selected").text();		
		var job_terms = $("#job_terms"+i+" :selected").text();		
		var job_pay_terms = $("#pay_terms"+i+" :selected").text();		
		var job_zip = $("#job_zip"+i).val();
		var job_city = $("#job_city"+i).val();
		var job_state = $("#job_state"+i+" :selected").text();
		var job_keywords = $("#job_keywords"+i).val();
		var job_external_website = $("#job_external_website"+i).val();

		$('#job_post_review_wrap').createAppend(
		    'div', { className: 'job_post_review_row' }, [
		        'h3', {}, "Job Posting #"+ i + ": <span>" + job_title + "</span>",
		        'p', {className: 'job_post_review_row_description'}, "<b>Job Description:</b> " +job_description,
				'p', {}, "<b>Main Category:</b> " + job_main_cat,
				'p', {}, "<b>Sub Category:</b> " + job_sub_cat,
				'p', {}, "<b>Terms:</b> " + job_terms,
				'p', {}, "<b>Pay Terms:</b> " + job_pay_terms,
				'p', {}, "<b>City:</b> " + job_city,
				'p', {}, "<b>State:</b> " + job_state,
				'p', {}, "<b>Zip Code:</b> " + job_zip,
				'p', {}, "<b>Job Keywords:</b> " + job_keywords,
				'p', {}, "<b>Extermal Website:</b> " + job_external_website,
				'a', { href:"javascript:void(0)", onclick:function(){hide_job_review()} }, [ 'p', {style:'color:#FF6600'}, "[ EDIT POSTING ] " ]
		    ]
		);
		$(".job_post_review_row_description").truncate( 350,{
	        chars: /\s/,
	        trail: [ "<a href='#' class='truncate_show' style='color:green'>[+] view more...</a>", "<a href='#'  style='color:green' class='truncate_hide'>[-] view less</a>" ]
	    });
		i++;
	});

	/** PAYMENT DETAILS **/
		if ($(".job_post_payment_method:checked").val() == "cc") {
			$('#job_post_review_wrap').createAppend('div', { className: 'job_post_review_row'}, [
				'h3', {}, "<b>Payment Information:</b> <span>" + $(".job_post_payment_method:checked").attr("title") + "</span>", 
				'p', {}, "<b>Name on Card:</b> <span>" + $("#cc_name").val() + "</span>", 
				'p', {}, "<b>Card Number:</b> <span>" + "XXXXXXXXXXXX"+ $("#cc_num").val().substring($("#cc_num").val().length,$("#cc_num").val().length-4) + "</span>", 
				'p', {}, "<b>Expiration Date:</b> <span>" + $("#cc_ex_mo").val() + "/" + $("#cc_ex_yr").val() + "</span>", 
				'p', {}, "<b>CVV#:</b> <span>" + $("#cc_cvv").val() + "</span>", 
				'a', {href: "javascript:void(0)", onclick: function(){ hide_job_review()}}, [
					'p', {style: 'color:#FF6600'}, "[ EDIT ] "
				]]);
		}else{
			$('#job_post_review_wrap').createAppend('div', { className: 'job_post_review_row'}, [
				'h3', {}, "<b>Payment Information:</b> <span>" + $(".job_post_payment_method:checked").attr("title") + "</span>", 
				'a', {href: "javascript:void(0)", onclick: function(){ hide_job_review()}}, [
					'p', {style: 'color:#FF6600'}, "[ EDIT ] "
				]]);
		}	
	
	/** RATE DETAILS **/
	/*
	$('#job_post_review_wrap').createAppend(
	    'div', { className: 'job_post_review_row' }, [
	        'h3', {}, "Job Post Rate:<span> " + $(".job_post_rate:checked").attr("title") + "</span>",
			'a', { href:"javascript:void(0)", onclick:function(){hide_job_review()} }, [ 'p', {style:'color:#FF6600'}, "[ EDIT ] " ]
	    ]
	);
	*/

	/** CHARGE DETAILS **/
	$('#job_post_review_wrap').createAppend(
	    'div', { className: 'job_post_review_row' }, [
	        'h3', {}, "Total Charges Due:<span> " + "$"+(parseInt($("#num_jobs").val()) * 99) + "</span>"
	    ]
	);
	
	/** SUBMIT BUTTON **/
	$("#job_post_submit_final").remove();
	$("#job_post_review_wrap").createAppend(
		'input', {type:'image', src:'/img/shell/btn_post_this_job.png', id:'job_post_submit_final'}
	);	
}

var hide_job_review = function(){
	$("#job_post_body_fields").slideDown();
	$("#job_post_payment").slideDown();
	$("#job_post_review").slideUp();
	$('#job_post_review_wrap div').remove();
	scrollTo(0,0);
}


var setup_employer_registration = function(){
		$("#register_emp_form").validate({});
}

var set_cert_value = function(){
	// set certifications values
	var certs_array = new Array();
	$(".register_certs").each(function(){
		if ($(this).attr("value") != "") {
			certs_array.push($(this).attr("value"));
		}
	});
	$("#register_certs_array").attr("value",certs_array);
	console.log($("#register_certs_array").attr("value"));
}

function set_ed_value(){
	// set education values
	var ed_array = new Array();
	$(".register_eds").each(function(){
		if ($(this).attr("value") != "") {
			ed_array.push($(this).attr("value"));
		}
	});
	$("#register_edus_array").attr("value",ed_array);
	console.log($("#register_edus_array").attr("value"));
};	

var setup_seeker_attribute_registration = function(form_name){
	/* EDUCATIONS */
	// attach events to select boxes
	$(".register_eds").change(function(){
		set_ed_value();
		
		if (this.value == "") {
			$("#addl_edus").slideUp();//hide "add more" row
			$(this).removeClass("required");
		}
		else {
			$("#addl_edus").slideDown();//display "add more" row
			$(this).addClass("required");
		}
	});
	
	//click function for the "add an education button"
	var num_eds = 1;
	$("#register_add_edu").click(function(){
		console.log("checking: "+'#register_edu_row'+num_eds+ ' .register_eds')
		console.log(("#register_edu_row"+num_eds));

		$(".register_edu_row label.error").remove(); //hack to remove existing errors
				
		if(num_eds < 5 && $('#'+form_name).validate().element('#register_edu_row'+num_eds+ ' .register_eds')){
			num_eds++;
			$("#register_edu_row"+(num_eds-1)).clone().insertBefore("#addl_edus").attr('id', 'register_edu_row' + num_eds).css('display', 'none');
			// attach events to select boxes
			$(".register_eds").change(function(){ set_ed_value(); })

			$("#register_edu_row" + num_eds).slideDown();

			$(".register_edu_remove").css("display","none");
			
			$("#register_edu_row" + num_eds + " .register_edu_remove").css("display","inline").css("padding","0").click(function(){
				$(this).unbind("click"); //stop double clicks
				if(num_eds==5){
					$("#register_add_edu").fadeIn(1000);
				}
				$("#register_edu_row" + num_eds).slideUp("fast",function(){
					$("#register_edu_row" + num_eds).remove();
					set_ed_value();
					num_eds--;
					if (num_eds != 1) { //dont show #1
						$("#register_edu_row" + num_eds + " .register_edu_remove").css("display", "inline");
						console.log("showing: #register_edu_row" + num_eds + " .register_edu_remove");
					}
				})					
			});			
			
			if(num_eds==5){
				$(this).slideUp(500);
			}
		}
		set_ed_value();
	}); // end click function for the "add an education button"

	
	/* CERTIFICATIONS */
	// attach events to select boxes
	if ($.browser.msie) {
		$(".register_certs").mousedown(function(){
			$(this).css("width", "auto");
		})
	};
	$(".register_certs").blur(function(){
		$(this).css("width","85%");
	});
	$(".register_certs").change(function(){
		set_cert_value();
		$(this).css("width","85%");

		if (this.value == "") {
			$("#addl_certs").slideUp();//hide "add more" row
			$(this).removeClass("required");
		}
		else {
			$("#addl_certs").slideDown();//display "add more" row
			$(this).addClass("required");
		}

	});

	var num_certs = 1;

	$("#register_add_cert").click(function(){
		console.log("checking: "+'#register_cert_row'+num_certs+ ' .register_certs')

		$(".register_cert_row label.error").remove(); //hack to remove existing errors

		if(num_certs < 5 && $('#'+form_name).validate().element('#register_cert_row'+num_certs+ ' .register_certs')){
			num_certs++;
				
			$("#register_cert_row"+(num_certs-1)).clone().insertBefore("#addl_certs").attr('id', 'register_cert_row' + num_certs).css('display', 'none');

			// attach events to select boxes
			if ($.browser.msie) {
				$(".register_certs").mousedown(function(){
					$(this).css("width", "auto");
				})
			};
			$(".register_certs").blur(function(){
				$(this).css("width","85%");
			});
			$(".register_certs").change(function(){
				set_cert_value();
				$(this).css("width","85%");
			})

			$("#register_cert_row" + num_certs).slideDown();
			$(".register_cert_remove").css("display","none");
			$("#register_cert_row" + num_certs + " .register_cert_remove").css("display","inline").css("padding","0").click(function(){
				$(this).unbind("click"); //stop double clicks
				if(num_certs==5){
					$("#register_add_cert").fadeIn(1000);
				}
				$("#register_cert_row" + num_certs).slideUp("fast",function(){
					$("#register_cert_row" + num_certs).remove();
					set_cert_value();
					num_certs--;
					if (num_certs != 1) { //dont show #1
						$("#register_cert_row" + num_certs + " .register_cert_remove").css("display", "inline");
						console.log("showing: #register_cert_row" + num_certs + " .register_cert_remove");
					}
				})					
			});			
			
			if(num_certs==5){
				$(this).slideUp(500);
			}
		}
		set_cert_value();
	});
}
