/**
 * frm object used to maintain state of form parts
 */
var frm = {
	current : 0,			// current part id
	total_parts : 1,	// total parts that exist
	parts_index : 0,	// essentially a parts primary key
	// update this object when a part is added
	increment : function() {
		this.total_parts++;
		this.parts_index++;
		this.current = this.parts_index;
	},
	// debug function to output current state
	toString : function() {
		alert('current: ' + this.current + "\n" + 'total_parts: ' + this.total_parts + "\n" + 'parts_index: ' + this.parts_index);
	}
}

/**
 * function checkValue validate form fields based on required class
 * @param form_id form id to check against
 * @param required class to validate form components against
 */
function checkValue(form_id, required) {
  var error = '';
	form_id = form_id.replace(/\s/g, '');
	form_id = form_id == '' ? '' : '#' + form_id;
  jQuery("input."+required + ", textarea."+required, form_id).each(function(){
    if( (jQuery(this).val() == '') || (jQuery(this).attr("name") == 'email' && !is_valid_email(jQuery(this).val())) ) {
			var fieldname = jQuery(this).attr("name");
			fieldname = fieldname.substr(0, 1).toUpperCase() + fieldname.substr(1);
			fieldname = fieldname.replace(/\_/g, ' ');
			error += fieldname + " is a required field \n";
			jQuery(this).addClass('required_field');
		}
		else {
			jQuery(this).removeClass('required_field');
		}
  });
  return error;
}


jQuery(function($) {
	$("#uselessreset").click(function() {
		setTimeout(function() {$("#general").trigger("click");}, 100);
	});
	$("#editForm").submit(function(){
		$("input[type=submit]").attr("disabled","disabled").val("Submitting...");
		var error = checkValue('editForm', 'required');
		if(error != '') {
			alert(error);
			$("input[type=submit]").attr("disabled","").val("Submit");
			return false;
		}
		// if validation passes, fire off a message to the insites
		var formdata = $("#editForm").serialize();
		formdata = '?actk=cweavw-3ld5a25r2u&' + formdata;//
		formdata += "&imReferrerField=" + escape(document.referrer);
		formdata += "&imEmailField=" + $("#email").val(); // replaced a call to replace
		var img = new Image(0,0);
		setTimeout(function(){img.src = 'http://www.topfloortech.com/insitemetrics/uRMJ/uniformv2.php' + formdata;},300);
		// if validation passes, fire off a message to the googles
		var how_can_we_help = $('input[name=how_can_we_help]:checked').attr('id');
		pageTracker._trackPageview('/rfq/' + how_can_we_help);
		/* // use for conversion tracking
		var conversion = new Image(0,0);
    conversion.src = 'http://www.googleadservices.com/pagead/conversion/1034854433/?label=b_XVCJmWdxChwLrtAw&guid=ON&script=0';
		// */
		return true;
	});

	var parts_section = $("#parts_list li:first").html();//$("#parts_list li").clone();//$("#parts_section").clone(true);
	$("#sections input").click(function(){
		$("#sections_q .section").hide();
		$("#" + this.id + "_section").fadeIn('normal');
	});
	
	$(".addnewpart").live("click", function(){
		// update class active
		$(".active").removeClass('active');

		$("#parts_p" + frm.current + ":last-child").fadeOut('fast');

		frm.increment();
		$("#curid").html(frm.current);

		var parts_section_copy = parts_section.replace(/\_p0/g, '_p' + frm.current);
		parts_section_copy = parts_section_copy.replace(/\_0/g, '_' + frm.current);
		parts_section_copy = parts_section_copy.replace("Part 1", 'Part ' + (frm.current+1));
		var val = frm.current * 28;
		$("#parts_list").append(parts_section_copy).fadeIn('slow');
		$.scrollTo( 570+val, 100);//val+'px'

	});
	
	// for debug
	$("#curid").click(function() {frm.toString();});

	// used to display other country field
	$(".country").click(function() {
		switch(this.id) {
			case 'country_us':
				$("#country_other_field").fadeOut();
				break;
			case 'country_other':
				$("#country_other_field").fadeIn().focus();
				break;
		}
	});

	// handle editing parts
	$("span.edit").live('click', function(){
		var id = this.id.replace(/parts\_edit\_p/, '');
		$(".active").removeClass('active');
		$("parts_p" + id + " .part_details").hide();
		$("#parts_p" + frm.current).hide();//.slideUp('slow');
		$.scrollTo("#"+this.id,100);
		$("#curid").html(id);
		frm.current = id;
		var val = 'parts_p' + id;//this.id.replace(/parts\_edit/, 'parts');
		$("#" + val).show();
		$("#p_p" + id + " li.part_label").addClass('active');
	});

	// handle deleting parts
	$("span.delete").live('click', function(){
		if(frm.total_parts == 1) {
			alert("You cannot delete the last part");
			return false;
		}
		var val = this.id.replace(/parts\_delete/, 'p');
		frm.total_parts--;
		$("#" + val).remove();
	});
	
	// expand/contract textarea when value.length exceeds 100
	$("textarea").keyup(function(){
		if(this.value.length >= 100){
			$(this).addClass('bigtextarea');
		}
		else {
			$(this).removeClass('bigtextarea');
		}
	});

});

function is_valid_email (email) {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
}