function add_to_tags (search)
{
	if(search.match(/\s/)) { search = '"' + search + '"'; }
	$('tag_list').value = $F('tag_list') + " " + search;
}

function toggle_popup (element) {
Effect.toggle(element,'appear',{});
}

function submit_category_form (form_id,pop_up_id) {
    toggle_popup(pop_up_id);
    var form = $(form_id);
    form.submit();
    form.clear();
    return false;
}

function position_category_popup (pop_up_id,target_id) {
    var target = $(target_id);
    var pop_up = $(pop_up_id);
    pop_up.clonePosition(target);
}

function close_popup (element) {
new Effect.Fade(element,{});
setTimeout(function() {
Element.remove(element);
}, 1000);
}

function replace_id_and_names(placeholder,parent,attribute) {
  var name = parent + "_attributes_" + placeholder + "_" + attribute; 
  var new_id = new Date().getTime();
  var regexp = new RegExp(placeholder, "g");
  var field = $(name);
  
  if(field) {
   field.name = field.name.replace(regexp, new_id);
   field.id = field.id.replace(regexp, new_id);
  }
}

function add_to_list (search_term, url)
{
   	new Ajax.Request(url, {method: 'get', asynchronous:true, evalScripts:true, parameters:'search=' + escape(search_term)});
}

function remove_with_fade (element)
{
	new Effect.Fade(element,{});
	setTimeout(function() {
	[element].each(Element.remove);
	}, 2000);
}

function mark_for_destroy(element,klass) { 
  $(element).next('.should_destroy').value = 1;
  slide_back_element($(element).up(klass));
	setTimeout(function() {
	  $(element).up(klass).hide(); 
	}, 700);
}

function remove_with_slider(element,klass) {
	slide_back_element($(element).up(klass));
	setTimeout(function() {
		$(element).up(klass).remove();
	}, 700);
}

function do_not_submit_on_enter() {
  return !(window.event && window.event.keyCode == 13); 
}

function slide_back_element(element) {
	new Effect.BlindUp(element,{});
}

function flash_fade ()
{
	setTimeout(function() {
	remove_with_fade ('flash_notice');
	}, 4000);
}

function flash_fade_with_focus_on (element) {
	focus_on(element);
	flash_fade();
}

function focus_on (element) {
	$(element).className = "focused";
	$(element).scrollTo();
}

function change_country() {
    $$(".country_code").each(function(item) { Form.Element.enable(item); });
}

function select_check_box(element) {
    /* Form.getInputs('recipe_form','checkbox').each(function(item) { item.checked = false; }); */
    $$(element).checked = !$$(element).checked;
}


function toggle_list (list_items,offset,link) {
	$$(list_items).each(function(item,index) {
		if ((index+1) > offset) {
			Effect.toggle(item,'appear',{});
		}
		});
}


function getLocationTopics(field,insert_element) {
	if(field.value != '') {
	new Ajax.Request("/locations/"+ field.value +"/topics", {asynchronous:true, evalScripts:true, parameters:'element=' + escape(insert_element)});
	}
}

function toggle_event_option(field){
	var r = 'reoccurring_event';
	var s = 'scheduled_event';
	
	if (field.checked){
		visible_element = s;
		hidden_element = r;
	}
	else {
		visible_element = r;
		hidden_element = s;
	}
	
	setTimeout(function() {
		$(visible_element).hide();
		$$('#' + visible_element + ' select').each(function(value, index) { value.disable();});
	}, 800);
		setTimeout(function() {
		$$('#' + hidden_element + ' select').each(function(value, index) { value.enable();});
		$(hidden_element).show();
		}, 800);

}


function update_frequency_unit(value) {
	var short_text;
	var long_text;
	var membership_dd = $('event_frequency_members').up();
	var membership_dt = $('event_frequency_members').up().previous();
	
	switch(value)
	{
	case "daily":
	 short_text = 'day(s)';
	 long_text = "";
	 membership_dd.hide();
	 membership_dt.hide();
	 break;    
	case "monthly":
	  short_text = 'month(s)';
	  long_text = "Enter the days of the month (<strong>1-31</strong>) separated by semicolon";
	  membership_dd.show();
	  membership_dt.show();
	  break;
	case "weekly":
	  short_text = 'weeks(s)';
	  long_text = "Enter the names of the weekdays (<strong>Mon-Sun</strong>) separated by semicolon";
	  membership_dd.show();
	  membership_dt.show();
	break;
	case "yearly":
	  short_text = 'weeks(s)';
	  long_text = "Enter the months of the year (<strong>1-12</strong>) separated by semicolon";
	  membership_dd.show();
	  membership_dt.show();
	  break;
	}
	
	$("frequency_unit").innerHTML = short_text;
	$("frequency_members").innerHTML = long_text;
}

function insertAtCursor(myField, myValue) {
  //IE support
  
  myValue = myValue + ' ';
  if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
  }

  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == '0') {	
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
	var old_value = myField.value.substring(startPos,endPos);
	if(old_value != '') { 
		myValue = myValue.sub(/"(.*?)"/,'"'+ old_value +'"');
		 }
	
    myField.value = myField.value.substring(0, startPos)
                  + myValue
                  + myField.value.substring(endPos, myField.value.length);
  } else {
    myField.value += myValue;
  }
}

function forwardSelectedUrlTo (element) {
	window.location.href = element.value;
	return false;
}


function forwardSelectedUrlToForField(field) {
	var element = $(field);
	forwardSelectedUrlTo(element);
	return false;
}

function forwardSelectedUrlToForForm (form) {
	var element = form.elements[0];
	forwardSelectedUrlTo(element);
	return false;
}

function remove_lines_from (element,lines) {
	new_height = (parseInt($(element).style.height,10) || parseInt($(element).rows,10)) - lines;
	if (new_height > 1) {
	$(element).style.height = new_height + "em";
	}
}

function add_lines_to (element,lines) {
	new_height = (parseInt($(element).style.height,10) || parseInt($(element).rows,10)) + lines;
	$(element).style.height = new_height + "em";
}

function remove_nested_resource (el) {
// el = Event.findElement(e);
    target = el.href.replace(/.*#/, '.');
    el.up().up().hide();
    if(hidden_input = el.up().previous().down("input[type=hidden]")) {
		hidden_input.value = '1';
	}
}

function toggle_toc(link) {
        Effect.toggle('publication_toc','appear',{});
        if(link.innerHTML == "Hide Table of Contents") {
            link.innerHTML = link.imageHTML;
        }
        else {
            link.imageHTML = link.innerHTML;
            link.innerHTML = "Hide Table of Contents";
        }
}

function load_flowplayer (size,id) {
    var volume = true;
    var mute = true;
    if(size == "small") {
        volume = false;
        mute = false;
    }
    flowplayer(id, "/tools/flowplayer.swf", { 
        key: '#$4cae7d0524b10209b76',
        clip:  { 
            scaling: 'fit',
            autoPlay: false, 
            autoBuffering: false,
            // track start event for this clip 
            onStart: function(clip) { 
                _gaq.push(["_trackEvent","Videos","Play",clip.url])
            }, 

    		// track pause event for this clip 
            onPause: function(clip) { 
                _gaq.push(["_trackEvent","Videos","Pause",clip.url])
            }, 

    		// track stop event for this clip 
            onStop: function(clip) { 
                _gaq.push(["_trackEvent","Videos","Stop",clip.url])
            }, 

    		// track finish event for this clip 
            onFinish: function(clip) { 
                _gaq.push(["_trackEvent","Videos","Finish",clip.url])
            }
        } ,
        plugins: { 

            // The controlbar is called "controls". By tweaking this, you can modify its look and feel 
            controls: {
                url: '/tools/flowplayer.controls.swf', 
                all: false, 
                play: true,
                volume: volume,
                mute: mute,
                scrubber: true,
                fullscreen: true
            }
        }
    });
}

function set_positions_for (list) {
    var position = 1;
    var list_name = list + '_list';
	Sortable.sequence(list_name).each(
	    function(id) {
	      var name = list + '_' + id + '_list_position';
	      Form.Element.setValue(name,position++);

	});
}

function toggle_df_options (element) {
    Effect.toggle(element,'appear',{});
}

function toggle_df_filters (element) {
    var list_name = "df_" + element + '_list';
    var label_name = "df_" + element + '_label';
    var label_element = $(label_name);
    
    if(label_element.className == "closed") {
        label_element.className = 'open';
    }
    else {
        label_element.className = 'closed';
        
    }
    
    Effect.toggle(list_name,'slide',{});
}

function toggle_bio(link) {
    Effect.toggle('hidden-bio','appear',{});
    if(link.innerHTML == "Read More") {
        link.innerHTML = "Show Less";
    }
    else {
        link.innerHTML = "Read More";
        
    }
}

function toggle_map_size (element_name) {
    element = $(element_name);
    if(element.className == "preview") {
        element.className = 'expanded';
    }
    else {
        element.className = 'preview';
        
    }
}

function update_schedule_context(value,do_not_change) {
    var domain = $('cnt_domain');
    if(!do_not_change) {
        var target = $('campaign_newsletter_schedule_attributes_recurrence_members').value = "";
        $$('#sched-contexts a').each(function(element, index) { element.className = 'inactive';});
    }
    switch(value) {
    case "daily":
    hide_all_schedule_contexts();
    domain.innerHTML = "day(s)";
    break;
    case "weekly":
    hide_all_schedule_contexts();
    $('cnt_weekly').show();
    domain.innerHTML = "week(s) on:";
    break;
    case "monthly":
    hide_all_schedule_contexts();
    deactivate_combined_placement();
    $('cnt_combined').show();
    $('cnt_monthly').show();
    domain.innerHTML = "month(s)";
    break;
    case "yearly":
    hide_all_schedule_contexts();
    activate_combined_placement();
    $('cnt_combined').show();
    $('cnt_yearly').show();
    domain.innerHTML = "year(s)";
    break;
    default:
    hide_all_schedule_contexts();
    domain.innerHTML = "day(s)"; 
    }
    
}

function hide_all_schedule_contexts() {
    $('cnt_combined').hide();
    $('cnt_yearly').hide();
    $('cnt_monthly').hide();
    $('cnt_weekly').hide();
   
}

function add_or_remove_from_recurrence_members(element,name) {
     
     if($('campaign_newsletter_schedule_attributes_recurrence_domain').value == 'monthly') {
         var has_placement = $('campaign_newsletter_schedule_attributes_placement_true').checked;
     
         if(has_placement) {
              $('campaign_newsletter_schedule_attributes_placement_false').checked = true;
              $('campaign_newsletter_schedule_attributes_placement_true').checked = false;
              set_placement();
         }
     }
    
    var target = $('campaign_newsletter_schedule_attributes_recurrence_members');
    var recurrence_members = target.value.split(',');
    if(element.className == "active") {
        element.className = 'inactive';
        var index = recurrence_members.indexOf(name);
        if(index) {
            recurrence_members.splice(index,1);
        }
        target.value = recurrence_members.join(',');
    }
    else {
        recurrence_members.unshift(name);
        target.value = recurrence_members.join(',');
        element.className = 'active';
    }
}

function toggle_section_context (name) {
    var element = $(name);
    Effect.toggle(element,'appear',{});
}


function toggle_tabs(tab,section) {
    tab.up().up().up().select('.tab').each(function(element, index) { element.removeClassName('active');});
    tab.addClassName("active");
    var section = $(section);
    section.up('div.unit').select('div.content').each(function(element, index) { element.addClassName('hidden');});
    section.removeClassName('hidden');
};

function toggle_tabs_for(tab,section,container) {
    $(container).select('.tab').each(function(element, index) { element.removeClassName('active');});
    tab.addClassName("active");
    var section = $(section);
    $(container).select('div.content').each(function(element, index) { element.addClassName('hidden');});
    section.removeClassName('hidden');
};

function activate_combined_placement() {
    $('campaign_newsletter_schedule_attributes_calculated_date_placement').disabled = false;
    $('campaign_newsletter_schedule_attributes_calculated_date_weekday').disabled = false;
    $('campaign_newsletter_schedule_attributes_placement_true').hide();
    $('campaign_newsletter_schedule_attributes_placement_false').hide();
}

function deactivate_combined_placement() {
    $('campaign_newsletter_schedule_attributes_placement_true').show();
    $('campaign_newsletter_schedule_attributes_placement_false').show();
    $('campaign_newsletter_schedule_attributes_placement_true').checked;
    set_placement();
}

function set_placement(do_not_change) {
    
    var has_placement = $('campaign_newsletter_schedule_attributes_placement_true').checked;
    
    if(!do_not_change) {
        var target = $('campaign_newsletter_schedule_attributes_recurrence_members').value = "";
        $$('#sched-contexts a').each(function(element, index) { element.className = 'inactive';});
    }
    
    if(has_placement) {        
        $('campaign_newsletter_schedule_attributes_calculated_date_placement').disabled = false;
        $('campaign_newsletter_schedule_attributes_calculated_date_weekday').disabled = false;
    }
    else {        
        $('campaign_newsletter_schedule_attributes_calculated_date_placement').disabled = true;
        $('campaign_newsletter_schedule_attributes_calculated_date_weekday').disabled = true;
    }
}

function rate(rating) {
    var i = 0.5;
    $$('ul.star-rating li a').each(function(star) { 
       if(i <= rating) {
           star.className = "full-star";
       }
       else {
           star.className = 'empty-star';
       }
       i = i + 0.5;
    } );
};

