/* 
     <summary>
        Validate Credentials - designed for Partly Managed, 
        the purpose is to coordinate between partner's credentials and oberon user account.
     </summary>
     <returns></returns>    
*/
function ValidateCredentials()
{
    //check if user is logged in ICQ client
    return CheckICQLogin();
}


function CheckICQLogin()
{
    /*
        This part was copied from ICQ
        ==============================
    */
    if(	typeof(XtrazDebug) == "undefined" )
    {	
	    XtrazDebug = new Object
	    XtrazDebug.alert = XtrazDebug.trace =  XtrazDebug.flush =
		    XtrazDebug.assert = XtrazDebug.start = 
		    XtrazDebug.catchWindowErrors = XtrazDebug.setUnique = Function();
    }

    var XtrazConnector;

    try {

	    top.XtrazConnector.test();
	    XtrazConnector = top.XtrazConnector;
    }
    catch (e) {	 // in case there is not top xtrazconnector, or that it is in a different domain
    //====== Begin conditional class definition ============
	    XtrazConnector = {
		    test : new Function(),
		    gTransID : 1,
		    gSequence : 0,
		    Owner : {},
		    buddies : null,
		    SessionID : -1,
		    PluginID : '',
		    icqConnector: null,
		    paramsObject : null,
		    initialData : null,

    // Events to broadcast
		    msgShutdown : 'shut!',
		    msgBuddyDisconnected : 'bDis', // sBuddy
		    msgBuddyQuit : 'bQuit', // sBuddy
		    msgBuddyStatus : 'bStatus' // sBuddy, nStatus
	    }

	    /// global functions
	    XtrazConnector.onInitData = function(owner, sequence, buddies ,initialData) {
		    var connector = XtrazConnector.getIcqConnector();
		    XtrazConnector.gSequence = sequence;
		    XtrazConnector.initialData = initialData;
		    XtrazConnector.buddies = buddies;
		    XtrazConnector.Owner.DisplayName = connector.GetIMOwnerData("DISPLAY_NAME");
		    XtrazConnector.Owner.ScreenName = owner.ScreenName;
	    }
    	
    	
	    XtrazConnector.icqConnectorInit = function () {
		    var connector = XtrazConnector.getIcqConnector();
		    connector.AttachEvent("OnInitData",XtrazConnector.onInitData);	
		    try{
			    top.icqConnector = connector;
		    }
		    catch(e){}		

		    var parms = XtrazConnector.getParams();
		    var id =  parms.id;
		    var mode = parms.mode;

		    if( id ){
			    try {
				    XtrazDebug.trace("initializing connector " , connector , " with id " , id);
				    connector.Initialize(id);
				    XtrazDebug.trace("done calling initialize");
			    } catch(e) {
				      XtrazDebug.trace("icqConnectorInit", e);
			    }
		    }
		    else {
			    XtrazDebug.trace("icqConnectorInit: missing ID");
		    }
	    }
    	
    	
    	
    	
    	
	    XtrazConnector.getIcqConnector = function () {
		    if (! XtrazConnector.icqConnector)
			    XtrazConnector.icqConnector = new ActiveXObject("MISB.DhtmlPluginWrapper");

		    return	XtrazConnector.icqConnector;
	    }

	    XtrazConnector.getICQConnector = XtrazConnector.getIcqConnector;
	    XtrazConnector.getConnector = XtrazConnector.getIcqConnector;

    	

    	
	    XtrazConnector.getParams = function() 
	    {
		    if (XtrazConnector.paramsObject)
				    return XtrazConnector.paramsObject;
			    var tmp = document.location.search;
			    var obj = new Object();
    		
			    if (tmp.length > 1) 
			    {
				    tmp = tmp.substring(1, tmp.length);
				    var pairs = tmp.split("&");
				    for( var i = 0; i < pairs.length; i++ )
				    {
					    var pair = pairs[i];
					    var ind = pair.indexOf('=');
					    if (ind > 0) 
					    {
						    var key = pair.substring(0, ind);
						    var val = pair.substring(ind + 1, pair.length);
						    obj[key] = val;
					    }
				    }
			    }
			    else
				    XtrazDebug.alert('getparams: no search string');
			    XtrazConnector.paramsObject = obj;
			    return obj;
	    }

    	

    	
	    XtrazConnector.getBuddyName = function() {
		    var ret;
		    if (XtrazConnector.buddies)
			    return XtrazConnector.buddies[0];
		    else
			    ret = '';
		    return ret;
	    }
    	
	    try{
		    XtrazConnector.icqConnectorInit();
		    }
	    catch(e){}  
    }
    /*
        Oberon Code - this part will try to connect to ICQ and return true/false
    */
    try
    {
        var connector = XtrazConnector.getIcqConnector();
        if (connector) 
        {
            var parms = XtrazConnector.getParams();
		    var id =  parms.id;
    		
            if( id )
            {
                return true;
            }
        }
        else
        {
            return false;
        }
    }
    catch(e)
    {
        return false;
    }
    
}