function get_share_this_button(page_title, page_description){
    
    // turn it off for https because sharethis doesn't support ssl yet
    if("https:" == document.location.protocol){
        return false;
    }
    
    var object = SHARETHIS.addEntry({
    title: page_title,
    summary: page_description},
    {button:false});
    document.write('<span id="share_this"><a href="javascript:void(0);" id="sharemenulink"><input type="image" src="/img/bt-share.gif" alt="Share this page" /></a></span>');
    var element = document.getElementById("share_this");
    object.attachButton(element);
}

function initShareDialog(){

}


function rate_resource(caller_ref, resource_id, num_stars){
    
    var url = caller_ref.href;
    var parent_node = caller_ref.up();
    
    if(url.indexOf('login') > -1){
        document.location = url;
        return true;
    }
    
    
    var loader_image = '<img src="/img/ajax-loader.gif" style="display: inline; vertical-align: text-bottom;" />';
    
    $('rating_id').remove();
    $('rating_wrapper').innerHTML = 'Saving&nbsp;' + loader_image;

    new Ajax.Request(url, 
        {  
            method: 'get', 
            parameters: { 'resource_id':  resource_id, 'num_stars': num_stars},
            onSuccess: function(transport) {
                $('rating_wrapper').innerHTML = transport.responseText;
            } 
          }
    );
     
}


function save_to_my_ico(caller_ref, return_button){
    
    var url = caller_ref.href;
    var parent_node = caller_ref.up();
    
    if(url.indexOf('login') > -1){
        document.location = url;
        return true;
    }
    
    //if(! return_button){
        var loader_image = '<img src="/img/ajax-loader.gif" style="display: inline; vertical-align: text-bottom;" />';
        parent_node.innerHTML = "Saving " + loader_image;
    //}
    
    
    new Ajax.Request(url, 
        {  
            method: 'get', 
            parameters: {},
            onSuccess: function(transport) {
                if(return_button){
                    parent_node.innerHTML = '<img src="/img/bt-saved.gif" alt="You\'ve saved this item" />';
                }
                else{
                    parent_node.innerHTML = transport.responseText;
                }
            } 
          }
    );    
}

function remove_from_my_ico(caller_ref, return_button, delete_node){
    
    var url = caller_ref.href;
    var parent_node = caller_ref.up();
    
    if(url.indexOf('login') > -1){
        document.location = url;
        return true;
    }
    
    //if(! return_button){
        var loader_image = '<img src="/img/ajax-loader.gif" style="display: inline; vertical-align: text-bottom;" />';
        parent_node.innerHTML = "Removing " + loader_image;
    //}
    
    new Ajax.Request(url, 
        {  
            method: 'get', 
            parameters: {},
            onSuccess: function(transport) {
                if(return_button){
                    parent_node.innerHTML = '<img src="/img/bt-saved.gif" alt="You\'ve removed this item" />';
                }
                else if(delete_node){
                    delete_node.remove();
                }
                
                else{
                    
                    parent_node.innerHTML = transport.responseText;
                }
            } 
          }
    );    
}


function delete_leader_link(caller_ref, link_id){
	return delete_society_link(caller_ref, link_id);
}

function delete_society_link(caller_ref, link_id){
    
    var url = caller_ref.getAttribute('href');
    var parent_node = caller_ref.up();
    
    var link_id = parent_node.select('.' + link_id).first().getValue();
    
    
    var loader_image = '<img src="/img/ajax-loader.gif" style="display: inline; vertical-align: text-bottom;" />';
    

    parent_node.select('.delete_link').last().innerHTML = "deleting " + loader_image;
    //parent_node.innerHTML = "Deleting " + loader_image;


    new Ajax.Request(url, 
        {  
            method: 'post', 
            parameters: {'link_id': link_id},
            onSuccess: function(transport) {
                if (transport.responseText == 'Ok'){
                    parent_node.remove();
                }
                else{
                    parent_node.innerHTML = transport.responseText;
                }
            } 
          }
    );   


}

function add_another_input(field_id, max_rows){

    var rows = $$('#' + field_id);
    
    if((max_rows > 0) && (rows.length > (max_rows-1))){
        alert('Only ' + max_rows + ' items are allowed');
        return false;
    }
    
    var last_row = rows.last();
    
    if(last_row){ 
        var new_row = last_row.cloneNode(true);
        new_row.value='';
        new_row.selected='';
        Element.insert(last_row, { 'after': new_row});
        Element.insert(new_row, { 'before': '<br /><label></label>'});
    
    }    
}

function add_another_input_text_row(field_id){
    var last_row = $$('#' + field_id).last();
    var first_row = $$('#' + field_id).first();
    
    if(first_row){ 
        var new_row = first_row.cloneNode(true);
        new_row.value='';
        new_row.selected='';
        Element.insert(last_row, { 'after': new_row});
        
		var rewrite_elements = new_row.descendants();

        for(var i = 0; i < rewrite_elements.length; i++){
            var oChild = rewrite_elements[i];
            
            if(oChild.value){
                oChild.value = '';
            }
        }

        new_row.show();


    
    }    
}



            

function add_another_input_autofill(field_id){
    
    var rows = $$('.' + field_id + '_block');
    
    if(rows.first()){ 
        var new_row = rows.first().cloneNode(true);
        new_row.value='';
        new_row.selected='';
        Element.insert(rows.last(), { 'after': new_row});
        
        //reset each of the child id's to be id_{row_count}
        //set the values to null
        var new_row_count = rows.length;
		
		var rewrite_elements = new_row.descendants();

        for(var i = 0; i < rewrite_elements.length; i++){
            var oChild = rewrite_elements[i];
            
            if(oChild.id){
                oChild.id = oChild.id + '_' + new_row_count;
            }
            if(oChild.value){
                oChild.value = '';
            }
        }
        new_row.show();
        
        initAutoFill(field_id, new_row_count);
        
    } 
}


//since we're adding fields dynamically and numbering them, this function just helps us build the field names with the correct numbers
function get_autofill_id_field_id(autofill_field_id){
    var id_field_id;
    
    var extra_row_count = autofill_field_id.match(/_[0-9]+/);
    if(extra_row_count){
        id_field_id = autofill_field_id.replace(extra_row_count, '') + '_id' + extra_row_count;  
    }
    else{
        id_field_id = autofill_field_id + '_id';
    }
    
    return id_field_id;
}

function requestAutofillData(inputField, queryString){

    var autofill_field_id = inputField.id;
    var id_field_id = get_autofill_id_field_id(autofill_field_id);

    //reset the actual value
    $(id_field_id).setValue('');   
   
    return queryString;
}


function setSocietyId(inputField, li){

    var autofill_field_id = inputField.id;
    var id_field_id = get_autofill_id_field_id(autofill_field_id);
    
    //set the actual value
    $(id_field_id).setValue(li.id);
    
    var parent = $(id_field_id).up();
    
    if(checkboxes = parent.select('input[type="checkbox"].request_can_edit')){
        var checkbox = checkboxes.first();
		if(checkbox){
        	checkbox.setValue(li.id);
        	checkbox.setAttribute('value', li.id);//no idea why you need both of these, but....
			checkbox.checked = false;
		}
	}
    
    
}


function clear_society_data(){
    var autofill_field_id = this.id;
    var id_field_id = get_autofill_id_field_id(autofill_field_id);
        
    $(id_field_id).setValue('');
    $(autofill_field_id).setValue('');
}

function stop_editing_autofill_field(){
    //if they didn't select one of the items in the list, reset their value

    var autofill_field_id = this.id;
    var id_field_id = get_autofill_id_field_id(autofill_field_id);
    
    if($(id_field_id).getValue() == ''){
        $(autofill_field_id).setValue('');
    }
}

function initAutoFill(autofill_field_id, new_row_count){

    var absolute_autofill_field_id = autofill_field_id;
    var choices_id = autofill_field_id + "_choices";
    var loading_indicator_id  = 'loading_indicator';

    if(new_row_count){
        absolute_autofill_field_id += '_' + new_row_count;
        choices_id  += '_' + new_row_count;
        loading_indicator_id += '_' + new_row_count;
    }
    else{
        loading_indicator_id += '_' + 200;
    }

    new Ajax.Autocompleter(absolute_autofill_field_id, choices_id, $(choices_id).getAttribute('url'), {
      paramName: "query", 
      minChars: 1, 
      indicator: loading_indicator_id,
      callback: requestAutofillData,
      afterUpdateElement: setSocietyId,
	  method: 'post'

    });   
    
    addAnEvent($(absolute_autofill_field_id), "blur", stop_editing_autofill_field);
    addAnEvent($(absolute_autofill_field_id), "click", clear_society_data);
    addAnEvent($(absolute_autofill_field_id), "select", clear_society_data);    

}


function show_professional_info(){

    var professions = new Array('Ophthalmologist','Ophthalmology resident','Non-ophthalmologist physician','PhD/researcher','Medical student', 'Administrator', 'Allied eye care personnel', 'Nurse', 'Optometrist','Scientist','Educator');

    var do_show = false;
    
    for(i = 0; i < professions.length; i++){
        if(professions[i] == $('Level_of_Training__c').value){
            do_show = true;
            break;
        }
    }
    
    if(do_show){
        $('professional_info_details').show();
    }
    else{
        $('professional_info_details').hide();
    }
    
}

function change_password(caller_ref){
    
    var url = caller_ref.href;

    new Ajax.Request(url, 
        {  
            method: 'post', 
            parameters: {'new_password': $('new_password').getValue(), 'new_password_again': $('new_password_again').getValue()},
            onSuccess: function(transport) {
                if(transport.responseText == 'Ok'){
                    closePasswordDialog();
                }
                else{
                    var message_block = $('passwordform').select('.messages').first();
                    message_block.innerHTML = transport.responseText;
                }
            } 
          }
    );    
}
 
function textsize_down(){
	resize_text('down');	
}

function textsize_up(){
	resize_text('up');	
}



function resize_text(resize_type){
	var textsize;
	
	if(readcookie('textsize')){
		textsize = parseInt(readcookie('textsize'));
	}
	else{
		textsize = 85;
	}
	
	if(resize_type == 'up'){
		textsize += 10;
	}
	else{
		textsize -= 10;
	}
		
	var date = new Date();
	date.setTime(date.getTime()+(86400 * 365 * 1000));

	setcookie('textsize', textsize, date);

	document.body.style.fontSize = textsize + '%';

}

function toggleMe(section_id){
    var section_ref;
    
    if((section_id) && (typeof section_id == 'string')){
        section_ref = $(section_id);
    }
    else{
        section_ref = this;
    }
    
	var set = section_ref.id.split("toggle_");
	set = set[1];
	var set = document.getElementById(set);
	
	if (section_ref.className == "toggle") {
		section_ref.className = "toggleon";
		set.style.display = "block";
	}
	else {
		section_ref.className = "toggle";
		set.style.display = "none";
		
	}
}

function verify_society_leader(checkbox){
    if(checkbox.checked){
        if(! verify_continue("To edit a society’s listing on the ICO Web site, you must be a member and leader (i.e. president, secretary general, administrator, etc.) of that society.")){
            checkbox.checked = false;
        }
    }
}

function initChecks(div){
}

function initEditUserProfile(){
    show_professional_info();
    addAnEvent($('Level_of_Training__c'), "change", show_professional_info);    

    var autofill_field_id = 'society';
    return initAutoFill(autofill_field_id);
}

function initImpersonateUser(){
    var autofill_field_id = 'customer';
    return initAutoFill(autofill_field_id);   

}


function initExtra(){
    if (document.getElementById("my_profile")) initEditUserProfile();
  	if (document.body.id == 'impersonate_user') initImpersonateUser();
}


