/***************************************************************************
 *                            Dolphin Web Community Software
 *                              -------------------
 *     begin                : Mon Mar 23 2006
 *     copyright            : (C) 2007 BoonEx Group
 *     website              : http://www.boonex.com
 *
 *
 *
 ****************************************************************************/

/***************************************************************************
 *
 *   This is a free software; you can modify it under the terms of BoonEx
 *   Product License Agreement published on BoonEx site at http://www.boonex.com/downloads/license.pdf
 *   You may not however distribute it for free or/and a fee.
 *   This notice may not be removed from the source code. You may not also remove any other visible
 *   reference and links to BoonEx Group as provided in source code.
 *
 ***************************************************************************/

/**
 * Checks/unchecks all tables
 *
 * @param   string   the form name
 * @param   boolean  whether to check or to uncheck the element
 *
 * @return  boolean  always true
 */
function setCheckboxes(the_form, do_check)
{
var elts  = document.forms[the_form].getElementsByTagName('input');
var elts_cnt  = elts.length;
for ( i = 0; i < elts_cnt; i++)
{
elts[i].checked = do_check;
if ( elts[i].type == "submit" )
elts[i].disabled = !do_check;
}
}
function UpdateSubmit(the_form) {
var elts  = document.forms[the_form].getElementsByTagName('input');
var elts_cnt  = elts.length;
var bChecked = false;
for ( i = 0; i < elts_cnt; i++) {
if (elts[i].type == "checkbox" && elts[i].checked == true) {
bChecked = true;
}
if ( elts[i].type == "submit" ) {
elts[i].disabled = true;
}
}
for ( i = 0; i < elts_cnt; i++) {
if ( elts[i].type == "submit" ) {
if (bChecked == true) {
elts[i].disabled = false;
} else {
elts[i].disabled = true;
}
}
}
}
function setCheckbox(the_form)
{
var elts      = document.forms[the_form].getElementsByTagName('input');
var elts_cnt  = elts.length;
var allUnchecked = true;
for (var i = 0; i < elts_cnt; i++)
if(elts[i].checked)
allUnchecked = false;
for (var i = 0; i < elts_cnt; i++)
if( elts[i].type == "submit" )
elts[i].disabled = allUnchecked;
}
var win = 'width=500,height=600,left=100,top=100,copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes';
function get_gallery( id_prof ) {
window.open('photos_gallery.php?ID='+id_prof,'gallery',win);
}
function launchTellFriend() {
var sBaseUrl = document.getElementsByTagName('base')[0].href;
var win = 'width=300,height=300,left=200,top=100,copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=no';
return !window.open(sBaseUrl + 'tellfriend.php', 'tellfriend', win);
}
function launchTellFriendProfile( sID ) {
var sBaseUrl = document.getElementsByTagName('base')[0].href;
var win = "width=300,height=300,left=200,top=100,copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=no";
return !window.open(sBaseUrl + 'tellfriend.php?ID='+sID,'tellfriendprofile',win);
}
function BxShowBlock( id )
{
var el;
el = document.getElementById( id );
if( el.style.display == 'none' )
{
el.style.display = 'block'
}
else
{
el.style.display = 'none'
}
return false;
}
function ShowShowHide ( show_name, show_name2, hide_name )
{
if (hide_name) hide_name.style.display = 'none';
if (show_name) show_name.style.display = 'inline';
if (show_name2) show_name2.style.display = 'inline';
}
function ShowHideHide ( show_name, hide_name, hide_name2 )
{
if (hide_name) hide_name.style.display = 'none';
if (hide_name2) hide_name2.style.display = 'none';
if (show_name) show_name.style.display = 'inline';
}
function charCounter(field,maxLength,countTarget)
{
field = document.getElementById(field);
countTarget = document.getElementById(countTarget);
var inputLength=field.value.length;
if(inputLength >= maxLength)
{
field.value=field.value.substring(0,maxLength);
}
countTarget.innerHTML=maxLength-field.value.length;
}
function show(FileName,jpg1Name)
{
document.images[FileName].src = jpg1Name;
}
function ss(s)
{
window.status = s;
return true;
}
function ce()
{
window.status='';
}
function emoticon( txtarea, text ) {
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
txtarea.focus();
} else {
txtarea.value  += text;
txtarea.focus();
}
}
function launchAddToIM (id)
{
var win = "width=600,height=160,left=100,top=100,copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes";
window.open("explanation.php?explain=imadd&ID="+id,'add_to_im',win);
return false;
}
function docOpen(text)
{
newWindow=window.open('','','toolbar=no,resizable=yes,scrollbars=yes,width=400,height=300');
newWindow.document.open("text/html");
newWindow.document.write(unescape(text));
newWindow.document.close();
}
function get_data( container, url, siteUrl )
{
if ( container )
{
var container = document.getElementById( container );
container.innerHTML = "loading ... ";
}
var XMLHttpRequestObject = createXmlHttpObj();
if( !XMLHttpRequestObject )
return false;
var data_source = siteUrl + 'xml/menu.php' + url + '&_t=' + Math.random();
XMLHttpRequestObject.open( "GET", data_source );
XMLHttpRequestObject.onreadystatechange = function()
{
if ( XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200 )
{
var xmlDocument = XMLHttpRequestObject.responseXML;
delete XMLHttpRequestObject;
XMLHttpRequestObject = null;
names = xmlDocument.getElementsByTagName("name");
links = xmlDocument.getElementsByTagName("link");
list_sublinks(names, links);
}
}
XMLHttpRequestObject.send( null );
function list_sublinks(names, links)
{
var loopIndex, name, link, maxIndex = names.length;
container.innerHTML = '';
for ( loopIndex = 0; loopIndex < maxIndex; loopIndex++ )
{
name = names[loopIndex].firstChild.nodeValue;
link = links[loopIndex].firstChild.nodeValue;
container.innerHTML += '<div class="innerSubmenuDiv"><a href="' + link + '">' + name + '</a></div>';
}
}
}
function createNamedElement( type, name )
{
var element;
try
{
element = document.createElement('<'+type+' name="'+name+'">');
} catch (e) { }
if (!element || !element.name)
{
element = document.createElement(type)
element.name = name;
}
return element;
}
function display_node(node, siteUrl)
{
var nn = document.getElementById( node );
var sub_name = node.split('_')[1];
if ( 'none' == nn.style.display )
{
nn.style.display='block';
if ( '' == nn.innerHTML )
get_data( node, '?action=menu&ID=' + sub_name, siteUrl);
}
else
{
nn.style.display='none';
}
}
function stripSlashes(str)
{
return str.replace(/\\/g, '');
}
function createXmlHttpObj()
{
if ( window.XMLHttpRequest )
return new XMLHttpRequest();
else if ( window.ActiveXObject )
return new ActiveXObject("Microsoft.XMLHTTP");
else
{
alert( 'Please upgrade your browser' );
return false;
}
}
function getHtmlData( elemID, url )
{
var elem = document.getElementById( elemID );
if( !elem || !url )
return false;
var url = url + '&r=' + Math.random();
var oXMLHttpReq = createXmlHttpObj();
if( !oXMLHttpReq )
return false;
elem.innerHTML = '<div class="loading"><img src="'+urlIconLoading+'"></div>';
oXMLHttpReq.open( "GET", url );
oXMLHttpReq.onreadystatechange = function()
{
if ( oXMLHttpReq.readyState == 4 && oXMLHttpReq.status == 200 )
{
sNewText = oXMLHttpReq.responseText;
elem.innerHTML = sNewText;
aScrMatches = sNewText.match(/<script[^>]*javascript[^>]*>([^<]*)<\/script>/ig);
if( aScrMatches )
{
for( ind = 0; ind < aScrMatches.length; ind ++ )
{
sScr = aScrMatches[ind];
iOffset = sScr.match(/<script[^>]*javascript[^>]*>/i)[0].length;
sScript = sScr.substring( iOffset, sScr.length - 9 );
eval( sScript );
}
}
}
}
oXMLHttpReq.send( null );
}
function showFloatDesc( text )
{
descDiv = document.getElementById( 'FloatDesc' );
if ( descDiv )
{
descDiv.innerHTML = text;
descDiv.style.display = 'block';
}
}
function hideFloatDesc()
{
descDiv = document.getElementById( 'FloatDesc' );
if ( descDiv )
descDiv.style.display = 'none';
}
function moveFloatDesc( ev )
{
descDiv = document.getElementById( 'FloatDesc' );
if ( descDiv )
{
showPos = getPositionData( descDiv, ev );
descDiv.style.left = showPos['posX'] + 'px';
descDiv.style.top = showPos['posY'] + 'px';
}
}
function getPositionData(obj, showEvent)
{
if ( !showEvent )
showEvent = window.event;
var pos_X = 0, pos_Y = 0;
if ( showEvent )
{
if ( typeof(showEvent.pageX) == 'number' )
{
pos_X = showEvent.pageX;
pos_Y = showEvent.pageY;
}
else if ( typeof(showEvent.clientX) == 'number' )
{
pos_X = showEvent.clientX; pos_Y = showEvent.clientY;
if ( document.body &&
( document.body.scrollTop || document.body.scrollLeft ) &&
!( window.opera || window.debug || navigator.vendor == 'KDE' ) )
{
pos_X += document.body.scrollLeft;
pos_Y += document.body.scrollTop;
}
else if ( document.documentElement &&
( document.documentElement.scrollTop ||
document.documentElement.scrollLeft ) &&
!( window.opera || window.debug || navigator.vendor == 'KDE' ) )
{
pos_X += document.documentElement.scrollLeft;
pos_Y += document.documentElement.scrollTop;
}
}
}
var scroll_X = 0, scroll_Y = 0;
if ( document.body &&
( document.body.scrollTop || document.body.scrollLeft ) &&
!( window.debug || navigator.vendor == 'KDE' ) )
{
scroll_X = document.body.scrollLeft;
scroll_Y = document.body.scrollTop;
}
else if ( document.documentElement &&
( document.documentElement.scrollTop ||
document.documentElement.scrollLeft ) &&
!( window.debug || navigator.vendor == 'KDE' ) )
{
scroll_X = document.documentElement.scrollLeft;
scroll_Y = document.documentElement.scrollTop;
}
var win_size_X = 0, win_size_Y = 0;
if (window.innerWidth && window.innerHeight)
{
win_size_X = window.innerWidth;
win_size_Y = window.innerHeight;
}
else if ( document.documentElement &&
document.documentElement.clientWidth &&
document.documentElement.clientHeight )
{
win_size_X = document.documentElement.clientWidth;
win_size_Y = document.documentElement.clientHeight;
}
else if (document.body && document.body.clientWidth && document.body.clientHeight)
{
win_size_X = document.body.clientWidth;
win_size_Y = document.body.clientHeight;
}
pos_X += 15;
pos_Y += 20;
if (obj.offsetWidth && obj.offsetHeight)
{
if (pos_X - scroll_X + obj.offsetWidth + 5 > win_size_X)
pos_X -= (obj.offsetWidth + 25);
if (pos_Y - scroll_Y + obj.offsetHeight + 5 > win_size_Y)
pos_Y -= (obj.offsetHeight + 20);
}
var res = new Array;
res['posX'] = pos_X;
res['posY'] = pos_Y;
res['scrollX'] = scroll_X;
res['scrollY'] = scroll_Y;
res['winSizeX'] = win_size_X;
res['winSizeY'] = win_size_Y;
return res;
}
function addBookmark( title, url )
{
if (title == undefined)
title = document.title;
if (url == undefined)
url = top.location.href;
if (window.sidebar)
window.sidebar.addPanel(title, url, '');
else if(window.opera && window.print)
{
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
}
else if(document.all)
window.external.AddFavorite(url, title);
else if (navigator.appName=="Netscape")
alert( 'To bookmark this site press "Ctrl+D".' );
else
alert( 'Your browser doesn\'t support this feature' );
}
function AddFilesFields(sDeleteCapt) {
if ($("#browse_file_div").children( '[class="file_field"]' ).length >= 5) {
alert('5 files maximum');
return;
}
var el = $('<div style="margin-top:10px;" class="file_field"><input name="userfile[]" type="file" style="" />&nbsp;&nbsp;&nbsp;<a href="#">' + sDeleteCapt + '</a></div>');
$("#browse_file_div").append(el);
el.children('a').click( function(){
$(this).parent().remove();
return false;
} );
}
function changeBigPicTo(newBigImageName, newBigImageHref) {
var el;
el = document.getElementById('AdvBigImg');
el.style.backgroundImage = 'url(' + newBigImageName + ')';
el = document.getElementById('AdvBigImgFullSize');
el.href = newBigImageHref;
}
function moveScrollRightAuto( el_id, b ) {
if (b)
scrollTimerId = setInterval ("moveScrollRight('"+el_id+"')", 100);
else
clearInterval (scrollTimerId);
}
function moveScrollLeftAuto( el_id, b ) {
if (b)
scrollTimerId = setInterval ("moveScrollLeft('"+el_id+"')", 100);
else
clearInterval (scrollTimerId);
}
function moveScrollRight( el_id ) {
var step = 5;
var e = document.getElementById( el_id );
var left  = e.style.left ? parseInt( e.style.left ) : 0;
minLeft = e.parentNode.clientWidth - parseInt( e.clientWidth );
if ( (left-step) > minLeft ) {
e.style.left = left - step + "px";
}
else {
e.style.left = minLeft + "px";
moveScrollRightAuto ( el_id, false);
}
}
function moveScrollLeft( el_id ) {
var step = 5;
var e = document.getElementById( el_id );
var left = parseInt(e.style.left ? e.style.left : 0);
if (left + step < 0 ) {
e.style.left = left + step + "px";
}
else {
e.style.left = "0px";
moveScrollLeftAuto (false);
}
}
function addEvent( obj, evt, func )
{
if( !obj || !evt || !func )
return false;
if( obj.addEventListener )
obj.addEventListener( evt, func, false );
else if( obj.attachEvent )
obj.attachEvent( 'on' + evt, func );
}
function checkAll( formName, _pref, doCheck ) {
_form = document.forms[formName];
if( !_form )
return false;
for( ind = 0; ind < _form.length; ind ++ ) {
_elem = _form[ind];
if( _elem.type != 'checkbox' )
continue;
if( _elem.name.substr( 0, _pref.length ) != _pref )
continue;
_elem.checked = doCheck;
}
}
function emailCheck( str )
{
if (str.search( /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i ) == -1 )
return false;
else
return true;
}
function getBoonexId( formFrom, formTo )
{
if( !formFrom || !formTo )
return false;
var ID = formFrom.ID;
var Password = formFrom.Password;
if( !ID || !Password )
return false;
var oXMLHttpReq = createXmlHttpObj();
if( !oXMLHttpReq )
return false;
if( !ID.value.length )
{
alert( 'Please enter BoonEx ID' );
ID.focus();
return false;
}
if( !Password.value.length )
{
alert( 'Please enter Password' );
Password.focus();
return false;
}
formFrom.Submit.disabled = true;
formFrom.Submit.value = 'Wait...';
var sUrl = 'get_boonex_id.php?ID=' + encodeURIComponent(ID.value) + '&Password=' + encodeURIComponent(Password.value) + '&r=' + Math.random();
oXMLHttpReq.open( "GET", sUrl );
oXMLHttpReq.onreadystatechange = function()
{
if ( oXMLHttpReq.readyState == 4 && oXMLHttpReq.status == 200 )
{
var oXML = oXMLHttpReq.responseXML;
if( !oXML.getElementsByTagName( 'ID' ).length )
{
alert( 'Authorization failed. Try again.' );
return false;
}
var aFields = new Array();
aFields['Username'] = 'NickName[0]';
aFields['Email']    = 'Email[0]';
aFields['Password'] = 'Password[0],Password_confirm[0]';
aFields['Realname'] = 'Realname[0]';
aFields['DateOfBirth'] = 'DateOfBirth[0]';
aFields['Sex']      = 'Sex[0]';
aFields['Country']  = 'Country[0]';
aFields['City']     = 'City[0]';
aFields['ZIP']      = 'zip[0]';
aFields['Headline'] = 'Headline[0]';
aFields['DescriptionMe'] = 'DescriptionMe[0]';
aFields['tags']     = 'Tags';
for( var fieldFrom in aFields )
{
if( !oXML.getElementsByTagName( fieldFrom ).length )
continue;
var eFieldFrom = oXML.getElementsByTagName( fieldFrom )[0];
var sValue = eFieldFrom.firstChild.data;
if( fieldFrom == 'DateOfBirth' ) {
var aDate = sValue.split( '-' );
sValue = parseInt( aDate[2], 10 ) + '/' + parseInt( aDate[1], 10 ) + '/' + parseInt( aDate[0], 10 );
}
var aFieldsTo = aFields[fieldFrom].split( ',' );
for( var i in aFieldsTo )
{
fieldTo = aFieldsTo[i];
if( formTo[fieldTo] )
{
eFieldTo = formTo[fieldTo];
switch( eFieldTo.type )
{
case 'text':
case 'textarea':
case 'password':
case 'select-one':
eFieldTo.value = sValue;
break;
default:
if( typeof eFieldTo == 'object' )
for( n = 0; n < eFieldTo.length; n++ )
if( eFieldTo[n].value == sValue )
eFieldTo[n].checked = true;
}
}
}
}
}
}
oXMLHttpReq.send( null );
formFrom.Submit.disabled = false;
formFrom.Submit.value = 'Import';
}
function loadDynamicBlock( iBlockID, sUrl ) {
if( $ == undefined )
return false;
var $block = $( '#page_block_' + iBlockID );
$( '.boxContent', $block ).html(
'<div style="text-align: center;"><img src="' + urlIconLoading + '" alt="Loading..." /></div>'
);
$block.load( sUrl + '&pageBlock=' + iBlockID );
return true;
}
function showItemEditForm( element_id )
{
var editFormWrap = document.getElementById( element_id );
editFormWrap.style.width   = document.body.clientWidth + 30 + "px";
editFormWrap.style.height  = (window.innerHeight ? (window.innerHeight + 30) : screen.height) + "px";
editFormWrap.style.left    = getHorizScroll1() - 30 + "px";
editFormWrap.style.top     = getVertScroll1() - 30 + "px";
editFormWrap.style.display = 'block';
}
function getHorizScroll1()
{
if (navigator.appName == "Microsoft Internet Explorer")
return document.documentElement.scrollLeft;
else
return window.pageXOffset;
}
function getVertScroll1()
{
if (navigator.appName == "Microsoft Internet Explorer")
return document.documentElement.scrollTop;
else
return window.pageYOffset;
}
