Files
IPB/Development/javascript_uncompressed/jscripts/ips_profile_portal.js
T
2025-12-19 00:26:08 -08:00

1283 lines
36 KiB
JavaScript

//------------------------------------------------------------------------------
// IPS JS: Attach Functions
// (c) 2005 Invision Power Services, Inc.
// http://www.invisionpower.com
// Matt Mecham (16/12/05)
//------------------------------------------------------------------------------
var ips_personal_portal = new ips_personal_portal();
function ips_personal_portal()
{
/**
* Rating wrapper
*/
this.div_rating_wrapper = 'pp-rating-wrapper';
/**
* Rating image text piece
*/
this.text_rating_image = 'pp-rating-img-';
/**
* CSS classes
*/
this.css_classes = {
'pp-tabon' : 'pp-tabon',
'pp-taboff' : 'pp-taboff',
'pp-tabshaded' : 'pp-tabshaded',
'pp-contentbox-back' : 'pp-contentbox-back',
'pp-contentbox-entry-noheight' : 'pp-contentbox-entry-noheight',
'pp-contentbox-entry-noheight-mod' : 'pp-contentbox-entry-noheight-mod',
'pp-contentbox-entry-noheight-sel' : 'pp-contentbox-entry-noheight-sel'
};
/**
* Contact types
*/
this.contact_types = { 'aim' : 'aim',
'msn' : 'msn',
'icq' : 'icq',
'yahoo' : 'yahoo'
};
/**
* Content Tabs
*/
this.content_tabs = { };
/**
* Stored tabs
*/
this.stored_tabs = { };
/**
* Stored div classes
*/
this.stored_div_classes = { };
/**
* iframe tabs
*/
this.iframe_tabs = {
'comments' : ipb_var_base_url + 'act=profile&CODE=personal_iframe_comments',
'settings' : ipb_var_base_url + 'act=profile&CODE=personal_iframe_settings',
'friends' : ipb_var_base_url + 'act=profile&CODE=personal_iframe_friends'
};
/**
* Stored tabs
*/
this.stored_tabs_css = { };
/**
* Other wrappers
*/
this.div_names = {
'pp-entry-gender-wrap' : 'pp-entry-gender-wrap',
'pp-entry-gender-text' : 'pp-entry-gender-text',
'pp-entry-gender-img' : 'pp-entry-gender-img',
'pp-entry-gender-imgwrap' : 'pp-entry-gender-imgwrap',
'pp-entry-location-wrap' : 'pp-entry-location-wrap',
'pp-entry-location-text' : 'pp-entry-location-text',
'pp-entry-born-wrap' : 'pp-entry-born-wrap',
'pp-entry-born-text' : 'pp-entry-born-text',
'pp-entry-age-wrap' : 'pp-entry-age-wrap',
'pp-entry-age-text' : 'pp-entry-age-text',
'pp-entry-age-yearsold' : 'pp-entry-age-yearsold',
'pp-main-tab-content' : 'pp-main-tab-content',
'pp-content-tab' : 'pp-content-tab',
'pp-comment-textarea' : 'pp-comment-textarea',
'pp-comments-wrap' : 'pp-comments-wrap',
'pp-comment-entry' : 'pp-comment-entry',
'pp-comment-entry-main' : 'pp-comment-entry-main',
'pp-iframe-wrap' : 'pp-iframe-wrap',
'pp-entry-contact-wrap' : 'pp-entry-contact-wrap',
'pp-entry-contact-entry' : 'pp-entry-contact-entry',
'pp-main-photo' : 'pp-main-photo',
'pp-personal_statement' : 'pp-personal_statement',
'pp-checked' : 'pp-checked',
'pp-friend-img' : 'pp-friend-img',
'pp-friend-text' : 'pp-friend-text',
'pp-friend-wrap' : 'pp-friend-wrap'
};
/**
* Settings
*/
this.settings = {
'allow_rating' : 0,
'default_rating' : 3,
'edit_allowed' : 0,
'member_id' : 0,
'viewer_id' : 0,
'img_star_on' : 'star_filled.gif',
'img_star_selected' : 'star_selected.gif',
'img_star_off' : 'star_empty.gif',
'img_gender_male' : 'gender_male.png',
'img_gender_female' : 'gender_female.png',
'img_gender_mystery': 'gender_mystery.png',
'img_base_url' : '',
'img_menu_icon' : '',
'default_tab' : '',
'photo_def_width' : '150',
'photo_def_height' : '150',
'photo_def_src' : ipb_var_image_url + '/folder_profile_portal/pp-blank-large.png',
'img_friend_remove' : ipb_var_image_url + '/folder_profile_portal/friend_remove_small.png',
'img_friend_add' : ipb_var_image_url + '/folder_profile_portal/friend_add_small.png'
};
/**
* Language
*/
this.languages = {
'rate_me' : 'Rate Me',
'img_alt_rate' : 'Rate this member, click on desired star to send rating',
'gender_male' : 'Male',
'gender_female' : 'Female',
'gender_mystery' : 'Gender Not Set',
'saving_comment' : 'Saving Comment...',
'loading_tab' : ajax_load_msg,
'deleting_comment' : 'Deleting Comment...',
'friend_add' : 'Add as Friend',
'friend_remove' : 'Remove Friend'
};
/**
* Loaded tab
*/
var loaded_tab = null;
/**
* INIT
*/
this.init = function()
{
//-----------------------------------------
// INIT tabs
//-----------------------------------------
var divs = document.getElementsByTagName( 'DIV' );
var divcount = 0;
//----------------------------------
// Sort through and grab divs
//----------------------------------
for ( var i = 0 ; i <= divs.length ; i++ )
{
try
{
if ( ! divs[i].id )
{
continue;
}
}
catch(error)
{
continue;
}
var divid = divs[i].id;
var divname = ipsclass.get_name_from_text( divs[i].id );
var divnum = ipsclass.get_id_from_text( divs[i].id );
//----------------------------------
// Work with it?
//----------------------------------
if ( divname == this.div_names['pp-content-tab'] )
{
var _highlight = 0;
this.stored_tabs[ divnum ] = divs[i];
this.stored_tabs_css[ divnum ] = divs[i].className;
divs[i].style.cursor = 'pointer';
divs[i].onclick = this.tab_onclick;
//-----------------------------------------
// Show this tab?
//-----------------------------------------
if ( this.settings['default_tab'] != "" )
{
if ( this.settings['default_tab'] == divnum )
{
_highlight = 1;
}
}
else if ( divcount == 0 )
{
_highlight = 1;
}
//----------------------------------
// Set correct classes / display
//----------------------------------
if ( _highlight == 1)
{
// First tab...
divs[i].className = this.css_classes['pp-tabon'];
divs[i].style.display = 'block';
}
else
{
// Second tab
if ( divs[i].className != this.css_classes['pp-tabshaded'] )
{
divs[i].className = this.css_classes['pp-taboff'];
}
divs[i].style.display = 'block';
}
divcount++;
}
}
//-----------------------------------------
// Draw rating images...
//-----------------------------------------
this.init_rating_images();
//-----------------------------------------
// Render drop down boxes
//-----------------------------------------
this.show_dropdown_boxes();
};
/**
* Show friend add/remove
*/
this.show_friend_add_or_remove = function( add_friend )
{
try
{
var _div = document.getElementById( this.div_names['pp-friend-wrap'] );
var _html = '';
if ( _div.id )
{
if ( add_friend )
{
_html = "<img src='" + this.settings['img_friend_add'] + "' id='" + this.div_names['pp-friend-img'] + "' alt='' border='0' /> ";
_html += "<a href='#' onclick='friends_pop(\"&amp;do=add&amp;member_id=" + this.settings['member_id'] + "&amp;md5check=" + ipb_md5_check + "\"); ips_personal_portal.show_friend_add_or_remove(0); return false;' id='" + this.div_names['pp-friend-text'] + "'>" + this.languages['friend_add'] + "</a>";
}
else
{
_html = "<img src='" + this.settings['img_friend_remove'] + "' id='" + this.div_names['pp-friend-img'] + "' alt='' border='0' /> ";
_html += "<a href='#' onclick='friends_pop(\"&amp;do=remove&amp;member_id=" + this.settings['member_id'] + "&amp;md5check=" + ipb_md5_check + "\"); ips_personal_portal.show_friend_add_or_remove(1); return false;' id='" + this.div_names['pp-friend-text'] + "'>" + this.languages['friend_remove'] + "</a>";
}
_div.innerHTML = _html;
}
}
catch(error)
{
}
};
/**
* Toggle DIV class for a comment box
*/
this.toggle_comment_box = function( comment_id, from_iframe )
{
//-----------------------------------------
// INIT
//-----------------------------------------
comment_id = parseInt( comment_id );
from_iframe = parseInt( from_iframe );
//-----------------------------------------
// Work out document...
//-----------------------------------------
var _document = document;
if ( from_iframe )
{
var iframe = document.getElementById( 'pp-main-tab-content-iframe' );
if ( iframe.contentDocument )
{
_document = iframe.contentDocument;
}
else if ( iframe.contentWindow )
{
_document = iframe.contentWindow.document;
}
else if ( iframe.document )
{
_document = iframe.document;
}
}
//-----------------------------------------
// Continue...
//-----------------------------------------
if ( comment_id )
{
var _div = _document.getElementById( this.div_names['pp-comment-entry-main'] + '-' + comment_id );
var _box = _document.getElementById( this.div_names['pp-checked'] + '-' + comment_id );
var _class = _div.className;
if ( _class == this.css_classes['pp-contentbox-entry-noheight'] || _class == this.css_classes['pp-contentbox-entry-noheight-mod'] )
{
this.stored_div_classes[ this.div_names['pp-comment-entry'] + '-' + comment_id ] = _class;
_div.className = this.css_classes['pp-contentbox-entry-noheight-sel'];
}
else if ( this.stored_div_classes[ this.div_names['pp-comment-entry'] + '-' + comment_id ] )
{
_div.className = this.stored_div_classes[ this.div_names['pp-comment-entry'] + '-' + comment_id ];
}
else
{
_div.className = this.css_classes['pp-contentbox-entry-noheight'];
}
}
return true;
};
/**
* Convert some stuff to drop down boxes
*/
this.show_dropdown_boxes = function()
{
//-----------------------------------------
// INIT
//-----------------------------------------
var html = '';
//-----------------------------------------
// Are we the same ID as the viewer
//-----------------------------------------
if ( ( this.settings['member_id'] == this.settings['viewer_id'] ) && ( this.settings['viewer_id'] ) && ( this.settings['edit_allowed'] == 1 ) )
{
try
{
//-----------------------------------------
// Gender box...
//-----------------------------------------
var _wrap = document.getElementById( this.div_names['pp-entry-gender-wrap'] );
_wrap.className = 'popmenubutton-new';
ipsmenu.register( "pp-entry-gender-wrap" );
//-----------------------------------------
// Location box...
//-----------------------------------------
var _wrap = document.getElementById( this.div_names['pp-entry-location-wrap'] );
_wrap.className = 'popmenubutton-new';
ipsmenu.register( "pp-entry-location-wrap" );
//-----------------------------------------
// Birthdate box...
//-----------------------------------------
var _wrap = document.getElementById( this.div_names['pp-entry-born-wrap'] );
_wrap.className = 'popmenubutton-new';
ipsmenu.register( "pp-entry-born-wrap" );
}
catch( error )
{
}
//-----------------------------------------
// Contact messengers...
//-----------------------------------------
for ( var i in this.contact_types )
{
try
{
var _wrap = document.getElementById( this.div_names['pp-entry-contact-wrap'] + '-' + this.contact_types[i] );
_wrap.className = 'popmenubutton-new';
ipsmenu.register( "pp-entry-contact-wrap" + '-' + this.contact_types[i] );
}
catch(error)
{
}
}
}
};
/**
* INIT rating images
*/
this.init_rating_images = function()
{
//-----------------------------------------
// INIT
//-----------------------------------------
var html = '';
//-----------------------------------------
// Can rate this member?
//-----------------------------------------
if ( ! this.settings[ 'allow_rating' ] )
{
return false;
}
//-----------------------------------------
// Still here? OK...
//-----------------------------------------
for( var i = 1 ; i <= 5 ; i++ )
{
var _onmouseover = '';
var _onmouseout = '';
var _onclick = '';
var _title = '';
if ( ( this.settings['member_id'] != this.settings['viewer_id'] ) && ( this.settings['viewer_id'] ) )
{
_onmouseover = ' onmouseover="this.style.cursor=\'pointer\'; ips_personal_portal.show_rating_images(' + i + ', 0)"';
_onmouseout = ' onmouseout="ips_personal_portal.show_rating_images(-1, 1)"';
_onclick = ' onclick="ips_personal_portal.send_rating(' + i + ')"';
_title = this.languages['img_alt_rate'];
}
html += "<img src='" + this.settings['img_base_url'] + '/' + this.settings['img_star_off'] + "' " + _onmouseover + _onmouseout + _onclick + "id='" + this.text_rating_image + i + "' alt='-' title='" + _title + "' />";
}
try
{
if ( ( this.settings['member_id'] != this.settings['viewer_id'] ) && ( this.settings['viewer_id'] ) )
{
document.getElementById( this.div_rating_wrapper ).innerHTML = this.languages['rate_me'] + ' ' + html;
}
else
{
document.getElementById( this.div_rating_wrapper ).innerHTML = html;
}
//-----------------------------------------
// Now set the image...
//-----------------------------------------
this.show_rating_images( this.settings['default_rating'], 1 );
}
catch( e ) { }
};
/**
* Send rating..
*/
this.load_content_tab = function( tab )
{
//-----------------------------------------
// INIT
//-----------------------------------------
var html = '';
//-----------------------------------------
// IE is a pain...
//-----------------------------------------
if ( is_ie && !is_ie7 )
{
var _div = document.getElementById( ips_personal_portal.div_names['pp-main-tab-content'] );
var _width = parseInt( _div.offsetWidth - 12 );
// IE adds the 12 px from the padding set below back into the width..
}
//-----------------------------------------
// Got a rating?
//-----------------------------------------
if ( tab )
{
//-----------------------------------------
// Make sure messages are hidden
//-----------------------------------------
hide_inline_messages_instant();
//-----------------------------------------
// Loaded tab...
//-----------------------------------------
this.loaded_tab = tab;
//-----------------------------------------
// iFrame tab
//-----------------------------------------
if ( this.iframe_tabs[ tab ] )
{
var url = this.iframe_tabs[ tab ] + '&member_id=' + this.settings['member_id'] + '&md5check=' + ipb_md5_check;
document.getElementById( this.div_names['pp-main-tab-content'] ).innerHTML = '';
var iframeinclude = new iframe_include();
iframeinclude.iframe_id = 'pp-main-tab-content-iframe';
iframeinclude.iframe_add_to_div = 'pp-main-tab-content';
iframeinclude.iframe_main_wrapper = 'pp-iframe-wrap';
iframeinclude.init();
iframeinclude.include( url );
}
//-----------------------------------------
// Normal tab
//-----------------------------------------
else
{
//----------------------------------
// INIT
//----------------------------------
var url = ipb_var_base_url+'act=profile&CODE=personal_ajax_load_tab&member_id=' + this.settings['member_id'] + '&tab=' + tab + '&md5check=' + ipb_md5_check;
/*--------------------------------------------*/
// Main function to do on request
// Must be defined first!!
/*--------------------------------------------*/
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj.readystate_ready_and_ok() )
{
xmlobj.show_loading( ips_personal_portal.languages['loading_tab'] );
return;
}
xmlobj.hide_loading();
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj.xmlhandler.responseText;
if ( html != 'error' )
{
document.getElementById( ips_personal_portal.div_names['pp-main-tab-content'] ).innerHTML = html;
//-----------------------------------------
// Topic attachment sizes...
//-----------------------------------------
try
{
fix_linked_image_sizes();
xmlobj.execute_javascript( html );
//-----------------------------------------
// Resize box nicely...
//-----------------------------------------
document.getElementById( ips_personal_portal.div_names['pp-main-tab-content'] ).style.height = 'auto';
document.getElementById( ips_personal_portal.div_names['pp-main-tab-content'] ).style.padding = '6px';
document.getElementById( ips_personal_portal.div_names['pp-main-tab-content'] ).className = ips_personal_portal.css_classes['pp-contentbox-back'];
//-----------------------------------------
// IE is still a pain
//-----------------------------------------
if ( is_ie )
{
_div.style.width = ( _width ) ? _width + "px" : 'auto';
_div.style.overflowX = 'auto';
}
}
catch(error)
{
//alert(error);
}
}
else
{
alert( js_error_no_permission );
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
xmlobj.process( url );
return false;
}
}
};
/**
* Send rating..
*/
this.send_rating = function( rating )
{
//-----------------------------------------
// INIT
//-----------------------------------------
rating = rating ? rating : 0;
//-----------------------------------------
// Got a rating?
//-----------------------------------------
if ( rating )
{
//----------------------------------
// INIT
//----------------------------------
var url = ipb_var_base_url+'act=xmlout&do=member-rate&member_id=' + this.settings['member_id'] + '&rating=' + rating + '&md5check=' + ipb_md5_check;
/*--------------------------------------------*/
// Main function to do on request
// Must be defined first!!
/*--------------------------------------------*/
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj.readystate_ready_and_ok() )
{
xmlobj.show_loading( '' );
return;
}
xmlobj.hide_loading();
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj.xmlhandler.responseText;
if ( html == 'no_permission' )
{
alert( js_error_no_permission );
}
else if ( html != 'error' )
{
var _result = html.split(',');
var _new_value = _result[0];
var _new_hits = _result[1];
var _new_stars = _result[2];
var _type = _result[3];
//-----------------------------------------
// Now set the image...
//-----------------------------------------
ips_personal_portal.settings['default_rating'] = parseInt( _new_stars );
ips_personal_portal.show_rating_images( ips_personal_portal.settings['default_rating'], 1 );
ipsclass.fade_in_element( ips_personal_portal.div_rating_wrapper );
show_inline_messages_instant( 'rating_updated' );
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
xmlobj.process( url );
return false;
}
};
/**
* Show rating images..
*/
this.show_rating_images = function( rating, restore_default )
{
//-----------------------------------------
// INIT
//-----------------------------------------
rating = restore_default ? this.settings['default_rating'] : parseInt( rating );
var star = restore_default ? this.settings['img_star_on'] : this.settings['img_star_selected'];
//-----------------------------------------
// Set to 0
//-----------------------------------------
for( var i = 1 ; i <= 5 ; i++ )
{
var _img = document.getElementById( this.text_rating_image + i );
_img.src = this.settings['img_base_url'] + '/' + this.settings['img_star_off'];
}
//-----------------------------------------
// Show ones coloured...
//-----------------------------------------
for( var i = 1 ; i <= rating ; i++ )
{
var _img = document.getElementById( this.text_rating_image + i );
_img.src = this.settings['img_base_url'] + '/' + star;
}
};
/**
* Delete comment
*/
this.delete_comment = function( comment_id )
{
//-----------------------------------------
// INIT
//-----------------------------------------
var url = ipb_var_base_url+'act=profile&CODE=personal_ajax_delete_comment&member_id=' + this.settings['member_id'];
var final_fields = new Array();
//-----------------------------------------
// Populate the form fields
//-----------------------------------------
final_fields['md5check'] = ipb_md5_check;
final_fields['comment_id'] = comment_id;
//-----------------------------------------
// Ajaxify mah bad self!
//-----------------------------------------
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj.readystate_ready_and_ok() )
{
xmlobj.show_loading( ips_personal_portal.languages['deleting_comment'] );
return;
}
xmlobj.hide_loading();
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj.xmlhandler.responseText;
if ( html == 'nopermission' )
{
alert( message_pop_up_lang['no_permission'] );
}
else if ( html != 'error' )
{
document.getElementById( ips_personal_portal.div_names['pp-comments-wrap'] ).innerHTML = html;
//-----------------------------------------
// Reload comments tab
//-----------------------------------------
if ( ips_personal_portal.loaded_tab == 'comments' )
{
ips_personal_portal.load_content_tab( 'comments' );
}
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
var xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(final_fields) );
return false;
};
/**
* Reload comments
*/
this.reload_comments = function()
{
//-----------------------------------------
// INIT
//-----------------------------------------
var url = ipb_var_base_url+'act=profile&CODE=personal_ajax_reload_comments&member_id=' + this.settings['member_id'];
var final_fields = new Array();
//-----------------------------------------
// Populate the form fields
//-----------------------------------------
final_fields['md5check'] = ipb_md5_check;
//-----------------------------------------
// Ajaxify mah bad self!
//-----------------------------------------
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj_gender.readystate_ready_and_ok() )
{
return;
}
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj_gender.xmlhandler.responseText;
if ( html != 'error' && html != 'no_permission' )
{
document.getElementById( ips_personal_portal.div_names['pp-comments-wrap'] ).innerHTML = html;
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj_gender = new ajax_request();
xmlobj_gender.onreadystatechange( do_request_function );
var xmlreturn = xmlobj_gender.process( url, 'POST', xmlobj_gender.format_for_post(final_fields) );
return false;
};
/**
* Save comment
*/
this.save_comment = function()
{
//-----------------------------------------
// INIT
//-----------------------------------------
var url = ipb_var_base_url+'act=profile&CODE=personal_ajax_add_comment&member_id=' + this.settings['member_id'];
var final_fields = new Array();
//-----------------------------------------
// Close menu
//-----------------------------------------
menu_action_close();
//-----------------------------------------
// Populate the form fields
//-----------------------------------------
final_fields['md5check'] = ipb_md5_check;
final_fields['comment'] = document.getElementById( this.div_names['pp-comment-textarea'] ).value;
//-----------------------------------------
// Ajaxify mah bad self!
//-----------------------------------------
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj.readystate_ready_and_ok() )
{
xmlobj.show_loading( ips_personal_portal.languages['saving_comment'] );
return;
}
xmlobj.hide_loading();
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj.xmlhandler.responseText;
if ( html == 'nopermission' )
{
alert( message_pop_up_lang['no_permission'] );
return;
}
else if ( html == 'error-no-comment' )
{
show_inline_messages_instant( 'pp_comment_error' );
return;
}
else if ( html != 'error' )
{
document.getElementById( ips_personal_portal.div_names['pp-comments-wrap'] ).innerHTML = html;
xmlobj.execute_javascript( html );
//-----------------------------------------
// Reload comments tab
//-----------------------------------------
if ( ips_personal_portal.loaded_tab == 'comments' )
{
ips_personal_portal.load_content_tab( 'comments' );
}
document.getElementById( ips_personal_portal.div_names['pp-comment-textarea'] ).value = '';
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
var xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(final_fields) );
return false;
};
/**
* Updates the personal photo
*/
this.update_personal_photo = function( img_url, width, height )
{
if ( ! img_url || ! img_url.match( "/photo-" ) )
{
img_url = this.settings['photo_def_src'];
width = this.settings['photo_def_width'];
height = this.settings['photo_def_height'];
}
var _img = document.getElementById( this.div_names['pp-main-photo'] );
var mydate = new Date();
_img.src = img_url + '?__time=' + mydate.getTime();
_img.width = width;
_img.height = height;
};
/**
* Updates the personal statement
*/
this.update_personal_statement = function( content, website )
{
var _statement = document.getElementById( this.div_names['pp-personal_statement'] );
content = content.replace( /\[b\](.+?)\[\/b\]/gi, "<b>$1</b>" );
content = content.replace( /\[i\](.+?)\[\/i\]/gi, "<i>$1</i>" );
content = content.replace( /\[u\](.+?)\[\/u\]/gi, "<u>$1</u>" );
// Word wrap
content = content.replace( /(\S{19})(\S+?)/g , "$1 $2" );
_statement.innerHTML = content;
if ( website )
{
if ( website.length > 30 )
{
_statement.innerHTML += "<br /><br /><a href='"+website+"' target='_blank'>" + ipb_global_lang['visit_my_website'] + "</a>";
}
else
{
_statement.innerHTML += "<br /><br /><a href='"+website+"' target='_blank'>"+website+"</a>";
}
}
};
/**
* Saves settings to the Deebee.
*/
this.save_settings = function( func_name, field_data, get_data_from_this_id )
{
//-----------------------------------------
// INIT objects
//-----------------------------------------
var url = ipb_var_base_url+'act=xmlout&do=profile-save-settings&member_id=' + this.settings['member_id'];
var final_fields = new Array();
//-----------------------------------------
// Close menu
//-----------------------------------------
menu_action_close();
//-----------------------------------------
// Populate the form fields
//-----------------------------------------
final_fields['md5check'] = ipb_md5_check;
final_fields['cmd'] = func_name;
try
{
for( var i in field_data )
{
final_fields[ i ] = field_data[i];
}
}
catch(error)
{
}
if ( func_name == 'birthdate' )
{
final_fields['pp_b_day'] = document.getElementById('pp_b_day').options[ document.getElementById('pp_b_day').selectedIndex ].value;
final_fields['pp_b_month'] = document.getElementById('pp_b_month').options[ document.getElementById('pp_b_month').selectedIndex ].value;
final_fields['pp_b_year'] = document.getElementById('pp_b_year').options[ document.getElementById('pp_b_year').selectedIndex ].value;
}
if ( get_data_from_this_id != '' )
{
final_fields['value'] = document.getElementById( get_data_from_this_id ).value;
}
//-----------------------------------------
// Ajaxify mah bad self!
//-----------------------------------------
do_request_function = function()
{
//----------------------------------
// Ignore unless we're ready to go
//----------------------------------
if ( ! xmlobj.readystate_ready_and_ok() )
{
xmlobj.show_loading();
return;
}
xmlobj.hide_loading();
//----------------------------------
// INIT
//----------------------------------
var html = xmlobj.xmlhandler.responseText;
if ( html == 'nopermission' )
{
alert( message_pop_up_lang['no_permission'] );
}
else if ( html != 'error' )
{
switch( final_fields['cmd'] )
{
case 'gender':
var _txt = document.getElementById( ips_personal_portal.div_names['pp-entry-gender-text'] );
var _imgwrap = document.getElementById( ips_personal_portal.div_names['pp-entry-gender-imgwrap'] );
var _date = new Date();
var _src = '';
if ( html == 'male' )
{
_src = ips_personal_portal.settings['img_base_url'] + '/' + ips_personal_portal.settings['img_gender_male'] + "?__=" + _date.getTime();
_txt.innerHTML = ips_personal_portal.languages['gender_male'];
}
else if ( html == 'female' )
{
_src = ips_personal_portal.settings['img_base_url'] + '/' + ips_personal_portal.settings['img_gender_female'] + "?__=" + _date.getTime();
_txt.innerHTML = ips_personal_portal.languages['gender_female'];
}
else
{
_src = ips_personal_portal.settings['img_base_url'] + '/' + ips_personal_portal.settings['img_gender_mystery'] + "?__=" + _date.getTime();
_txt.innerHTML = ips_personal_portal.languages['gender_mystery'];
}
_imgwrap.innerHTML = "<img src='" + _src + "' alt='' border='0' />";
// Update gender icons...
ips_personal_portal.reload_comments();
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-gender-wrap'] );
break;
case 'contact':
if ( html == 'icqerror' )
{
show_inline_messages_instant( 'pp_icq_error' );
}
else
{
document.getElementById( ips_personal_portal.div_names['pp-entry-contact-entry'] + '-' + field_data['contacttype'] ).innerHTML = html;
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-contact-wrap'] + '-' + field_data['contacttype'] );
}
break;
case 'location':
document.getElementById( ips_personal_portal.div_names['pp-entry-location-text'] ).innerHTML = html;
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-location-wrap'] );
break;
case 'birthdate':
if ( html == 'dateerror' )
{
show_inline_messages_instant( 'pp_date_error' );
}
else
{
document.getElementById( ips_personal_portal.div_names['pp-entry-born-text'] ).innerHTML = html;
var _dates = html.split('-');
if ( _dates[2] )
{
var today = new Date();
var _years = today.getFullYear();
var _days = today.getDate();
var _mos = today.getMonth() + 1;
var _age = _years - _dates[2];
_dates[0] = month[ _dates[0] ];
if ( _dates[0] > _mos )
{
_age -= 1;
}
else if ( _dates[0] == _mos )
{
if ( _dates[1] > _days )
{
_age -= 1;
}
}
document.getElementById( ips_personal_portal.div_names['pp-entry-age-text'] ).innerHTML = _age;
document.getElementById( ips_personal_portal.div_names['pp-entry-age-yearsold'] ).style.display = '';
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-age-wrap'] );
}
else
{
document.getElementById( ips_personal_portal.div_names['pp-entry-age-text'] ).innerHTML = ips_personal_portal.languages['age_unknown'];
document.getElementById( ips_personal_portal.div_names['pp-entry-age-yearsold'] ).style.display = 'none';
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-age-wrap'] );
document.getElementById( ips_personal_portal.div_names['pp-entry-born-pretext'] ).style.display = '';
}
ipsclass.fade_in_element( ips_personal_portal.div_names['pp-entry-born-wrap'] );
}
}
}
};
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
var xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(final_fields) );
return false;
};
/**
* On mouseover event
*/
this.tab_onclick = function( event )
{
//-------------------------------
// No? Get one then
//-------------------------------
var tabid = ipsclass.get_id_from_text( this.id );
// Stop scrolling to top of the page...
ipsclass.cancel_bubble( event );
//----------------------------------
// Load tab
//----------------------------------
ips_personal_portal.tab_load( tabid );
return false;
};
/**
* On mouseover event
*/
this.tab_load = function( tabid )
{
//-------------------------------
// Got it?
//-------------------------------
for ( var i in ips_personal_portal.stored_tabs )
{
if ( i == tabid )
{
ips_personal_portal.stored_tabs[ i ].style.display = 'block';
ips_personal_portal.stored_tabs[ i ].className = ips_personal_portal.css_classes['pp-tabon'];
}
else
{
ips_personal_portal.stored_tabs[ i ].style.display = 'block';
if ( ips_personal_portal.stored_tabs_css[ i ] == ips_personal_portal.css_classes['pp-tabshaded'] )
{
ips_personal_portal.stored_tabs[ i ].className = ips_personal_portal.css_classes['pp-tabshaded'];
}
else
{
ips_personal_portal.stored_tabs[ i ].className = ips_personal_portal.css_classes['pp-taboff'];
}
}
}
//----------------------------------
// Load tab
//----------------------------------
ips_personal_portal.load_content_tab( tabid );
return false;
};
}