/**
* Formats base business info for preview window.
*/
function previewBasicInfo(stateCode){
	var name = jQuery("#name").val();

	if (name && jQuery.trim(name) != '')
		jQuery("#pre_name").text(jQuery.trim(name));
	else
		jQuery("#pre_name").text('');
	
	var street = jQuery("#address1").val();
	var city = jQuery("#city").val();
	var zip = jQuery("#postal_code").val();
	var address = '';

	if (street && jQuery.trim(street) != '')
		address += jQuery.trim(street) + '<br/>';
		
	if (city && (jQuery.trim(city) == 'Washington DC' || jQuery.trim(city) == 'Washington, DC' || jQuery.trim(city) == 'Washington, Dc' || jQuery.trim(city) == 'Washington Dc'))
	  city = 'Washington';
	
	if (city && jQuery.trim(city) != '')
		address += jQuery.trim(city) + ', ' + stateCode;

	if (zip && jQuery.trim(zip) != '')
		address += ' ' + jQuery.trim(zip);

	jQuery("#pre_street").html(address);
	
	var xstreet = jQuery("#cross_street").val();

	if (xstreet && jQuery.trim(xstreet) != '')
		jQuery("#pre_xstreet").text('cross street: ' + xstreet);
	else
		jQuery("#pre_xstreet").text('');

	var phone = jQuery("#phone_number").val();

	if (phone && jQuery.trim(phone) != ''){
		jQuery("#pre_phone").empty();
		jQuery("#pre_phone").append('<dt>Tel.<dd>' + jQuery.trim(phone) + '</dd></dt>');
	}
	else
		jQuery("#pre_phone").empty();

	var url = jQuery("#website_url").val();
	var email = jQuery("#contact_email").val();
	var urlUpdated = false;

	if (url && validUrl(url)){
		jQuery("#pre_url").empty();
		//jQuery("#pre_url").append('<a href=\"' + url + '\" target=\"_blank\">Website</a>');
		jQuery("#pre_url").append('<a href="javascript:return 0;">Website</a>');
		urlUpdated = true;
	} else
		jQuery("#pre_url").empty();

	if (email && validEmail(email)){
		jQuery("#pre_email").empty();

		if (urlUpdated)
			jQuery("#pre_email").append(' | ');

		//jQuery("#pre_email").append('<a href=\"mailto:' + email + '\">Email</a>');
		jQuery("#pre_email").append('<a href="javascript:return 0;">Email</a>');
	} else
		jQuery("#pre_email").empty();
}

/**
* Formats hours user entry for preview window.
* Searches the hours user entry for a contiguous range and formats it for
* the preview window.
* e.g.  Input -- Mon: 9a-5p Tue: 9a-5p  
*       Output -- Mon - Tue: 9a-5p
*/
function generateHoursPreviewText(hours_values_array){
	var days_of_week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
	var range_start_idx = -1;
	var range_start_value = '';
	var preview_txt = '';
	var end_of_array = false;

	for(var i = 0; i < hours_values_array.length; i++){
		if (hours_values_array[i] == '')
			continue;
	
		if (range_start_idx == -1)
			range_start_value = hours_values_array[i];
	
		//window.console.log(range_start_value);
		
		if (range_start_value == hours_values_array[i+1]){
			if (range_start_idx == -1){
				range_start_idx = i;
			}	
		} else {
		
			if (range_start_idx > -1){
				preview_txt += days_of_week[range_start_idx] + ' - ' + days_of_week[i] + ': ' + range_start_value + ' | ';
				range_start_idx = -1;
			} else
				preview_txt += days_of_week[i] + ': ' + hours_values_array[i] + ' | ';
		}
	}

	preview_txt = preview_txt.replace(/\|\s$/, '');
	//window.console.log(preview_txt);
	return preview_txt;
}

/**
* Format the district selected for the preview window.
*/
function previewDistrict(districtControl, previewControl){
	var districtKey = jQuery(districtControl).val();

	if (districtKey && districtKey != 'NONE'){
		var districtSelect = jQuery(districtControl).get(0);
		var districtName = districtSelect.options[districtSelect.selectedIndex].text;
	
		jQuery(previewControl).text('district: ' + districtName);
		setSelectedDistrictName(districtName);
	}
	else{
		jQuery(previewControl).text('');
	}
}

/**
* Saves district name to a hidden field
*/
function setSelectedDistrictName(districtName){
	jQuery("#selected_district_name").val(districtName);
}

/**
* Format the topic select entries for the preview field
*/
function previewTopic(topicNames, previewControl, previewTitleControl){
	var previewText = '';

	topicNames = flagDupes(topicNames);

	// build topic list
	for(var i = 0; i < topicNames.length; i++){
		if (topicNames[i] != 'NONE'){
			previewText += topicNames[i] + ', ';
		}
	}

	// remove trailing comma
	previewText = previewText.replace(/,\s$/, '');
	// display topics
	jQuery(previewControl).text(previewText);
	// save topic list to hidden field
	setSelectedTopicNames(previewText);
	// display title  e.g. Business Listing - Topic1, Topic2
	if (previewText == '')
		jQuery(previewTitleControl).hide();
	else
		jQuery(previewTitleControl).show();
}

/**
* Flags duplicate entries from an array by setting
* the duplicate value to 'NONE'.
*/
function flagDupes(dataArr){
	var searchValue = '';
	
	for(var i = 0; i < dataArr.length; i++){
		searchValue = dataArr[i];
	
		for(var n = dataArr.length - 1; n > i; n--){
			if (searchValue == dataArr[n]){
				dataArr[n] = 'NONE';
			}
		}
	}

	return dataArr;
}

/**
* Saves topic name preview text into a hidden field. 
*/
function setSelectedTopicNames(topicName){
	jQuery("#selected_topic_name").val(topicName);
}

/**
* Format the description user entry for display in the preview field.
*/
function previewDescription(description){
	var moreLink = '';
	
	if (description && description.length > 800){
		description = description.substr(0, 800);
		moreLink = ' [ <a href="javascript:return 0;">Read more</a> ]';
	}
	
	if (description)
		jQuery('#pre_description_body').html(description + (moreLink ? moreLink : ''));
	else
		jQuery('#pre_description_body').html('');
}
