var iCount = 0;

/* function to fold or unfold a block, by changing the name of the parent class */
function fold(oElement)
{
	var oParent = oElement.parentNode;
	oParent.className = oParent.className == "unfold" ? "fold" : "unfold";
}

// get the position of the cursor
function getPosition(e) 
{
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) 
	{
        cursor.x = e.pageX-200;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

// allow the addition of multiple rows to add friends
function addFriendRows(iStart, iRows)
{
	var	oParentElement = document.getElementById("registerfield").parentNode;
	
	//increase row count for formfields
	iCount = (iCount == 0) ? iStart : iCount++;	

	for(var i = 0; i<iRows ; i++)
	{
		addFriendRow(oParentElement);
	}
}

// adds one form row to the add friends form
function addFriendRow(oParentElement)
{
	//increase row count
	iCount++;

	oNewElement = document.createElement("div");
	oNewElement.innerHTML += '<div class="formelement mediumbox"><input type="text" name="name'+iCount+'" class="textfield mediumbox" /></div>';
	oNewElement.innerHTML += '<div class="formelement bigbox"><input type="text" name="email'+iCount+'" class="textfield bigbox" /></div>';
	oNewElement.innerHTML += '<div class="formelement tinybox"><input type="radio" value="male" name="gender'+iCount+'" class="noborder" /></div>';
	oNewElement.innerHTML += '<div class="formelement tinybox" style="margin-right: 20px;"><input type="radio" value="female" name="gender'+iCount+'" class="noborder" /></div>';
	oNewElement.innerHTML += '<br class="left"/>';

	oParentElement.appendChild(oNewElement);
}

// show an error
function showError(sError)
{
	document.getElementById("message").style.display = "block";
	document.getElementById("error").innerHTML = sError;
}

// show a message
function showMessage(sMessage)
{
	document.getElementById("message").className     	= "feedback info";
	document.getElementById("message").style.display 	= "block";
	document.getElementById("message").innerHTML 		= sMessage;
}

// show an error
function showTabError(sError)
{
	document.getElementById("messagetabs").style.display = "block";
	document.getElementById("messagetabs").innerHTML = sError;
	//document.getElementById("error").innerHTML = sError;
}

// button mouseover/out fix
function setImage(oElement, sImage)
{
	oElement.src = sImage;
}

//profile checkboxes
function checkProfile()
{
	var oNobody = document.getElementById( "nobody" );
	var bChecked = oNobody.checked;
	var aCheckboxes = oNobody.parentNode.parentNode.getElementsByTagName("input");
	for( var i in aCheckboxes )
	{
		if(aCheckboxes[i].name != "nobody")
			aCheckboxes[i].disabled = bChecked;
	}
}

//Collect the selectbox and all inputfields and set the onclick-event to call activateSave function
function getSaveTriggers()
{
	document.getElementById( "relation" ).onclick = function() { activateSave( ); }
	var inputFields = document.getElementsByTagName( "input" );
	for ( var i=0;i<inputFields.length;++i )
	{
		if ( inputFields[i].id.indexOf( "savebtn" ) == -1 )
		inputFields[i].onfocus = function() { activateSave( ); }
	}
}

//Activate "Wijzigen bewaren"-button in addressbook
function activateSave( )
{
    document.getElementById( "savebtn" ).innerHTML = "<input id=\"savebtn\" class=\"right savechangesoffbtn button\" style=\"border:0px;\" type=\"image\" src=\"/img/buttons/wijzigingen.gif\" onmouseover=\"setImage(this, '/img/buttons/wijzigingen_b.gif');\" onmouseout=\"setImage(this, '/img/buttons/wijzigingen.gif');\" />";
    document.getElementById( "savebtn2" ).innerHTML = "<input id=\"savebtn2\" class=\"right savechangesoffbtn button\" style=\"border:0px;\" type=\"image\" src=\"/img/buttons/wijzigingen.gif\" onmouseover=\"setImage(this, '/img/buttons/wijzigingen_b.gif');\" onmouseout=\"setImage(this, '/img/buttons/wijzigingen.gif');\" />";
}

// Synopsis: [object] = parseURL( string URL );
function parseURL( sURL )
{
        /^((\w+):\/{2,3})?((\w+\.)?\w+\.\w+)(:(\d+))?(\/[^\?#]*)?(\?[^#]+)?(#.+)?/.exec( sURL );
        var nPort     = ( RegExp.$6 || 80 );
        var oReturn   = {
                url:sURL,
                protocol:( RegExp.$2 || "http" ),
                port:nPort,
                hostname:RegExp.$3,
                host:( RegExp.$3 + ( nPort != 80 ? ":" + nPort : "" ) ),
                pathname:RegExp.$7,
                query:RegExp.$8,
                anchor:RegExp.$9
        }
        if ( typeof RegExp.$8 == "string" && RegExp.$8 != "" )
        {
                var aQuery    = RegExp.$8.split( /[?&]/ );
                oReturn.query = {};
                if ( aQuery.length > 0 )
                {
                        for ( var i = 0; i < aQuery.length; ++i )
                                if ( aQuery[ i ].indexOf( "=" ) >= 0 )
                                {
                                        aQuery[ i ] = aQuery[ i ].split( /=/ );
                                        oReturn.query[ aQuery[ i ][ 0 ] ] = aQuery[ i ][ 1 ];
                                }
                }
        }
        return oReturn;
}

function switchCheckboxes( sName, bChecked )
{
	aCheckboxes = document.getElementsByTagName("input");
	for( var i=0; i<aCheckboxes.length ; i++)
	{
		if( !aCheckboxes[i].disabled && sName.indexOf( aCheckboxes[i].name ) )
			aCheckboxes[i].checked = bChecked;
	}
	return false;
}

function oneCheckboxChecked( sName )
{
	var bChecked = false;
	aCheckboxes = document.getElementsByTagName("input");
	for( var i=0; i<aCheckboxes.length ; i++)
	{
		if( sName.indexOf( aCheckboxes[i].name ) )
		{
			if( aCheckboxes[i].type == "checkbox" && !aCheckboxes[i].disabled && aCheckboxes[i].checked ) 
				bChecked = true;
		}
	}
	return bChecked;
}

function activateAddCalshare()
{
	if(oneCheckboxChecked( 'checked' ))
	{
		document.getElementById( "savebtn" ).style.display="block";
		document.getElementById( "savebtn2" ).style.display="block";
	}
	else
	{
		document.getElementById( "savebtn" ).style.display="none";
		document.getElementById( "savebtn2" ).style.display="none";
	}
	return false;
}