docs: public Time parse(String pStr) {
  	Time time = new Time();
  
  	int sec = 0;
  	int min = 0;
  	int pos = 0;
  	int skip = 0;
  
  	boolean onlyUseSeconds = false;
  
  	for (int i = 0; (i < formatter.length)
  		 && (pos + skip < pStr.length()) ; i++) {
  	    // Go to next offset
  	    pos += skip;
  	    
  	    if (formatter[i] instanceof MinutesFormatter) {
  		// Parse MINUTES
  		if ((i + 1) < formatter.length
  		    && formatter[i + 1] instanceof TextFormatter) {
  		    // Skip until next format element
  		    skip = pStr.indexOf(((TextFormatter) formatter[i + 1]).text, pos);
  		    // Error in format, try parsing to end
  		    if (skip < 0)
  			skip = pStr.length();
  		}
  		else if ((i + 1) >= formatter.length) {
  		    // Skip until end of string
  		    skip = pStr.length();
  		}
  		else {
  		    // Hope this is correct...
  		    skip = formatter[i].digits;
  		}
  
  		// May be first char
  		if (skip > pos)
  		    min = Integer.parseInt(pStr.substring(pos, skip));
  	    }
  	    else if (formatter[i] instanceof SecondsFormatter) {
  		// Parse SECONDS
  		if (formatter[i].digits == -1) {
  		    // Only seconds (or full TIME)
  		    if ((i + 1) < formatter.length
  			&& formatter[i + 1] instanceof TextFormatter) {
  			// Skip until next format element
  			skip = pStr.indexOf(((TextFormatter) formatter[i + 1]).text, pos);
  
  		    }
  		    else if ((i + 1) >= formatter.length) {
  			// Skip until end of string
  			skip = pStr.length();
  		    }
  		    else {
  			// Cannot possibly know how long?
  			skip = 0;
  			continue;					    
  		    }
  		    
  		    // Get seconds
  		    sec = Integer.parseInt(pStr.substring(pos, skip));
  		    //		    System.out.println("Only seconds: " + sec);
  
  		    onlyUseSeconds = true;
  		    break;
  		}
  		else {
  		    // Normal SECONDS
  		    if ((i + 1) < formatter.length
  			&& formatter[i + 1] instanceof TextFormatter) {
  			// Skip until next format element
  			skip = pStr.indexOf(((TextFormatter) formatter[i + 1]).text, pos);
  			
  		    }
  		    else if ((i + 1) >= formatter.length) {
  			// Skip until end of string
  			skip = pStr.length();
  		    }
  		    else {
  			skip = formatter[i].digits;
  		    }
  		    // Get seconds
  		    sec = Integer.parseInt(pStr.substring(pos, skip));
  		}
  	    }
  	    else if (formatter[i] instanceof TextFormatter) {
  		skip = formatter[i].digits;
  	    }
  	    
  	}
  
  	// Set the minutes part if we should
  	if (!onlyUseSeconds)
  	    time.setMinutes(min);
  
  	// Set the seconds part
  	time.setSeconds(sec);
  
  	return time;
      }